模型端点
Anthropic、OpenAI 和 Gemini 格式的 LLM 端点参考,并列出每个端点接受和返回的 Lovely Router 请求头。
创建消息#
/v1/messages使用 Anthropic Messages API 让模型生成响应。设置 stream 即可接收服务器发送事件(SSE)。思考、工具、图像和提示缓存均按 Anthropic 文档所述原样透传。指南:Anthropic Messages。
请求头
x-api-keystring必填你的 Lovely Router 密钥。也可以使用 Authorization: Bearer。
anthropic-versionstring默认 2023-06-01转发给模型。
anthropic-betastring原样转发。
x-lovely-groupstring本次请求使用的渠道分组,例如 claude-value。密钥已绑定分组时忽略此项。
x-session-idstring对话的固定 id,用于把每一轮都路由到持有其缓存的渠道。
请求体参数
modelstring必填来自 GET /v1/models 的模型 id,例如 claude-sonnet-5.5。claude-sonnet-5-5 等其他写法会解析为同一个模型。
messagesarray必填到目前为止的对话,user 与 assistant 轮次交替出现。
max_tokensinteger必填最多生成的 token 数。
systemstring or array系统提示词。文本块支持 cache_control。
streamboolean默认 false以服务器发送事件(SSE)流式返回响应。
thinkingobject模型的扩展思考设置。
output_configobject输出设置,例如 effort 和 format。
toolsarray模型可以调用的工具。
tool_choiceobject模型如何选择工具。
metadataobject请求元数据。
curl https://lovelyrouter.com/v1/messages \
-H "x-api-key: $LOVELY_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-5.5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello, Claude"}]
}'{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-5-5",
"content": [
{"type": "text", "text": "Hello! How can I help you today?"}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 10,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0,
"output_tokens": 12
}
}计算消息 token 数#
/v1/messages/count_tokens估算一次消息请求的输入 token 数,但不实际执行。免费,余额为零时也可使用。计数是近似值:可用于检查上下文窗口和做预算;实际调用的费用以其 usage 为准。Anthropic 的 token 计数指南。
请求头
x-api-keystring必填你的 Lovely Router 密钥。也可以使用 Authorization: Bearer。
x-lovely-groupstring用于校验模型是否可用的渠道分组。密钥已绑定分组时忽略此项。
请求体参数
modelstring必填模型 id,与 POST /v1/messages 相同。
messagesarray必填要计数的消息。
systemstring or array计入计数的系统提示词。
toolsarray计入计数的工具定义。
curl https://lovelyrouter.com/v1/messages/count_tokens \
-H "x-api-key: $LOVELY_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model": "claude-sonnet-5.5",
"messages": [{"role": "user", "content": "Hello, Claude"}]}'{
"input_tokens": 24
}创建聊天补全#
/v1/chat/completions使用 OpenAI Chat Completions API 生成响应。GET /v1/models 中的每个模型都接受这种格式。流式请求总会被设置 stream_options.include_usage: true,因此最后一个数据块会带有 usage。指南:OpenAI Chat Completions。
请求头
Authorizationstring必填Bearer 加上你的 Lovely Router 密钥。
openai-betastring原样转发。
x-lovely-groupstring本次请求使用的渠道分组,例如 gpt-value。密钥已绑定分组时忽略此项。
x-session-idstring对话的固定 id,用于把每一轮都路由到持有其缓存的渠道。
请求体参数
modelstring必填来自 GET /v1/models 的模型 id,例如 gpt-6.1-sol。
messagesarray必填到目前为止的对话:system 或 developer、user、assistant 和 tool 消息。
streamboolean默认 false以服务器发送事件(SSE)流式返回响应,以 data: [DONE] 结束。
max_completion_tokensinteger生成 token 数的上限,包括推理 token。
reasoning_effortstring推理模型的思考程度。可选值取决于模型。
toolsarray模型可以调用的函数。
tool_choicestring or object模型如何选择工具。
response_formatobject要求输出 JSON,或输出符合指定 JSON Schema 的内容。
prompt_cache_keystring提高缓存命中率。也会用作路由所用的对话 id。
userstring终端用户 id。未发送更具体的标识时,用作路由所用的对话 id。
curl https://lovelyrouter.com/v1/chat/completions \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"messages": [{"role": "user", "content": "Hello!"}]
}'{
"id": "chatcmpl-B9MHDbslfkBeAs8l4bebGdFOJ6PeG",
"object": "chat.completion",
"created": 1791700000,
"model": "gpt-6.1-sol",
"choices": [
{
"index": 0,
"message": {"role": "assistant", "content": "Hello! How can I help?"},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21,
"prompt_tokens_details": {"cached_tokens": 0},
"completion_tokens_details": {"reasoning_tokens": 0}
}
}创建响应#
/v1/responses使用 OpenAI Responses API 生成响应,Codex CLI 使用的就是这个 API。仅为 GPT 模型提供;其他模型返回 404。响应不会被存储:请在 input 中发送完整的对话。指南:Responses API。
请求头
Authorizationstring必填Bearer 加上你的 Lovely Router 密钥。
openai-betastring原样转发。
x-lovely-groupstring本次请求使用的渠道分组,例如 gpt-value。密钥已绑定分组时忽略此项。
x-session-idstring对话的固定 id,用于把每一轮都路由到持有其缓存的渠道。
请求体参数
modelstring必填来自 GET /v1/models 的 GPT 模型 id,例如 gpt-6.1-sol。
inputstring or array必填提示词,或以输入项列表表示的对话。
instructionsstring系统指令。响应会原样返回你发送的内容,未发送时为 null。
streamboolean默认 false以类型化的服务器发送事件(SSE)流式返回,以 response.completed(带有 usage)结束。
max_output_tokensinteger生成 token 数的上限,包括推理 token。
reasoningobject推理设置,例如 effort。可选值取决于模型。
toolsarray模型可以调用的函数和其他工具。
storeboolean请发送 false:响应不会被保留以供之后获取。
prompt_cache_keystring提高缓存命中率。也会用作路由所用的对话 id。
curl https://lovelyrouter.com/v1/responses \
-H "Authorization: Bearer $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"input": "Hello!",
"store": false
}'生成内容#
/v1beta/models/{model}:generateContent使用 Gemini API 生成响应。指南:Gemini。
路径参数
modelstring必填模型 id,例如 gemini-3.1-pro。gemini-3.1-pro-preview 等 Google 的写法会解析为同一个模型。
请求头
x-goog-api-keystring必填你的 Lovely Router 密钥。也可以使用 Authorization: Bearer 或 ?key= 查询参数。
x-lovely-groupstring本次请求使用的渠道分组,例如 gemini-value。密钥已绑定分组时忽略此项。
x-session-idstring对话的固定 id,用于把每一轮都路由到持有其缓存的渠道。
请求体参数
contentsarray必填到目前为止的对话,由 user 和 model 轮次组成,每一轮由 parts 构成。
systemInstructionobject系统指令,即一个由文本 part 组成的 content 对象。
generationConfigobject输出设置:maxOutputTokens、temperature、responseMimeType、thinkingConfig 等。
toolsarray函数声明及其他工具。
toolConfigobject模型如何选择函数。
safetySettingsarray按类别设置的安全阈值。
curl "https://lovelyrouter.com/v1beta/models/gemini-3.1-pro:generateContent" \
-H "x-goog-api-key: $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{"contents": [{"role": "user", "parts": [{"text": "Hello!"}]}]}'{
"candidates": [
{
"content": {"role": "model", "parts": [{"text": "Hello! How can I help?"}]},
"finishReason": "STOP",
"index": 0
}
],
"usageMetadata": {
"promptTokenCount": 3,
"candidatesTokenCount": 7,
"thoughtsTokenCount": 96,
"totalTokenCount": 106
},
"responseId": "mFHoaNC1Lo3HqtsP"
}流式生成内容#
/v1beta/models/{model}:streamGenerateContent请求与 generateContent 相同,但以流的形式返回。加上 alt=sse 即可接收服务器发送事件(SSE),每个事件包含一段部分响应;SDK 会自动帮你加上。不加时,响应是一个以流方式传输的 JSON 数组。参见流式输出。
查询参数
altstring设为 sse 以接收服务器发送事件。推荐使用。
路径参数、请求头和请求体与生成内容相同。
curl -N "https://lovelyrouter.com/v1beta/models/gemini-3-flash:streamGenerateContent?alt=sse" \
-H "x-goog-api-key: $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{"contents": [{"role": "user", "parts": [{"text": "Count to three."}]}]}'data: {"candidates":[{"content":{"role":"model","parts":[{"text":"One, two,"}]}}],"usageMetadata":{"promptTokenCount":5,"candidatesTokenCount":4,"totalTokenCount":9}}
data: {"candidates":[{"content":{"role":"model","parts":[{"text":" three."}]},"finishReason":"STOP"}],"usageMetadata":{"promptTokenCount":5,"candidatesTokenCount":7,"totalTokenCount":12}}计算 Gemini token 数#
/v1beta/models/{model}:countTokens估算 contents 中的 token 数,但不运行模型。免费,余额为零时也可使用。计数是近似值。Gemini 参考文档。
请求体参数
contentsarray必填要计数的内容,结构与 generateContent 相同。
路径参数和请求头与生成内容相同。
curl "https://lovelyrouter.com/v1beta/models/gemini-3.1-pro:countTokens" \
-H "x-goog-api-key: $LOVELY_API_KEY" \
-H "content-type: application/json" \
-d '{"contents": [{"role": "user", "parts": [{"text": "Hello, Gemini"}]}]}'{
"totalTokens": 18
}列出模型#
/v1/models列出你当前可调用的所有模型,包括上下文长度、官方标价以及提供该模型的渠道分组。无需 API 密钥。返回结构同时兼容 OpenAI 和 Anthropic SDK 的 models.list()。字段含义见模型与价格。
响应字段
dataarray每个模型一个对象。
has_moreboolean始终为 false:整个列表一次性返回。
curl https://lovelyrouter.com/v1/models{
"object": "list",
"data": [
{
"id": "claude-sonnet-5.5",
"object": "model",
"type": "model",
"display_name": "Claude Sonnet 5.5",
"created": 1700000000,
"created_at": "2025-01-01T00:00:00Z",
"owned_by": "Anthropic",
"context_length": 1000000,
"pricing": {
"input": 2,
"output": 10,
"cache_read": 0.1,
"cache_write": 2.5,
"unit": "USD per 1M tokens"
},
"groups": ["claude-value"]
}
],
"has_more": false,
"first_id": "claude-fable-5.1",
"last_id": "gpt-5.6-luna"
}以 Gemini 格式列出模型#
/v1beta/models以 Gemini API 的结构列出可通过 Gemini 端点调用的模型。无需 API 密钥。Google Gen AI SDK 的 models.list() 会调用它。价格只在 GET /v1/models 中提供。
curl https://lovelyrouter.com/v1beta/models{
"models": [
{
"name": "models/gemini-3.1-pro",
"displayName": "Gemini 3.1 Pro",
"inputTokenLimit": 1048576,
"supportedGenerationMethods": ["generateContent", "streamGenerateContent", "countTokens"]
}
]
}