创建消息(Anthropic 兼容)
与 Anthropic Messages API 兼容。把官方 SDK 的 `base_url` 指向 `https://api.jucode.cn/anthropic`,或给 Claude Code 设置 `ANTHROPIC_BASE_URL`,即可直接使用。 注意路径**不在** `/v1` 下——完整路径是 `/anthropic/v1/messages`。 ### 两条执行路径,行为不同 **原生路径**——当路由到的上游本身就是 Anthropic 时,你的原始请求字节会被 直接转发(仅改写 `model`)。所有字段,包括本文档未列出的 `top_k`、`thinking`、`cache_control` 等,都会保留。 **桥接路径**——当路由到的是非 Anthropic 上游(如 OpenAI 兼容厂商)时,网关 会把请求降级翻译成 Chat Completions,再把响应还原成 Anthropic 格式。此时 **只有下列字段会保留**,其余字段被静默丢弃: `model` `max_tokens` `system` `messages` `stream` `temperature` `top_p` `stop_sequences` `tools` `tool_choice` `metadata` 你无法预先知道会走哪条路径——它取决于后台的模型路由配置。如果你依赖某个 Anthropic 专有参数,请确认该模型确实路由到 Anthropic 上游。 ### 与官方 API 的差异 - `max_tokens` 在官方 API 中是必填的,本网关**不强制**。仅当 `> 0` 时才转发。 - 桥接路径下 `message_start` 事件的 `usage` 字段恒为 `0`,真实用量在结尾的 `message_delta` 中给出。 - 桥接路径的 SSE **没有 `[DONE]` 哨兵**,以 `event: message_stop` 结束。 - 上游返回的 `reasoning_content`(DeepSeek 系非标准字段)会被转换成 Anthropic 的 `thinking` 块。 - **认证失败(401)返回的是 OpenAI 格式的错误体**,不是 Anthropic 格式。这是 因为认证中间件在进入本路由的处理器之前就已拒绝。Anthropic SDK 的错误解析 可能无法识别该响应体。
与 Anthropic Messages API 兼容。把官方 SDK 的 base_url 指向
https://api.jucode.cn/anthropic,或给 Claude Code 设置
ANTHROPIC_BASE_URL,即可直接使用。
注意路径不在 /v1 下——完整路径是 /anthropic/v1/messages。
两条执行路径,行为不同
原生路径——当路由到的上游本身就是 Anthropic 时,你的原始请求字节会被
直接转发(仅改写 model)。所有字段,包括本文档未列出的
top_k、thinking、cache_control 等,都会保留。
桥接路径——当路由到的是非 Anthropic 上游(如 OpenAI 兼容厂商)时,网关 会把请求降级翻译成 Chat Completions,再把响应还原成 Anthropic 格式。此时 只有下列字段会保留,其余字段被静默丢弃:
model max_tokens system messages stream temperature top_p
stop_sequences tools tool_choice metadata
你无法预先知道会走哪条路径——它取决于后台的模型路由配置。如果你依赖某个 Anthropic 专有参数,请确认该模型确实路由到 Anthropic 上游。
与官方 API 的差异
max_tokens在官方 API 中是必填的,本网关不强制。仅当> 0时才转发。- 桥接路径下
message_start事件的usage字段恒为0,真实用量在结尾的message_delta中给出。 - 桥接路径的 SSE 没有
[DONE]哨兵,以event: message_stop结束。 - 上游返回的
reasoning_content(DeepSeek 系非标准字段)会被转换成 Anthropic 的thinking块。 - 认证失败(401)返回的是 OpenAI 格式的错误体,不是 Anthropic 格式。这是 因为认证中间件在进入本路由的处理器之前就已拒绝。Anthropic SDK 的错误解析 可能无法识别该响应体。
Authorization: Bearer sk-juc-...
前缀必须是恰好 Bearer (首字母大写 + 单个空格)。bearer、BEARER
或用制表符分隔都会被判为无效。
除 API Key 外,也接受 OAuth 设备访问令牌(仅限 oauth_access 类型的 JWT;
普通网页会话令牌会被拒绝)。
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Anthropic Messages 请求。走原生路径时全部字段保留;走桥接路径时只有下列 显式字段保留。
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/anthropic/v1/messages" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-5", "max_tokens": 1024, "messages": [ { "role": "user", "content": "用一句话解释什么是幂等性" } ] }'{ "id": "msg_01a2b3c4d5e6f7a8b9c0d1e2", "type": "message", "role": "assistant", "model": "string", "content": [ {} ], "stop_reason": "end_turn", "stop_sequence": "string", "usage": { "input_tokens": 0, "output_tokens": 0, "cache_read_input_tokens": 0, "cache_creation_input_tokens": 0 }}