Anthropic Messages
调用 Claude Messages,读取内容块并处理 Anthropic 流事件。
POST https://enterprise.beefapi.com/v1/messages
Claude 接入优先使用 Messages 协议。使用企业 Key,包含 anthropic-version 请求头。Anthropic SDK 的 Base URL 应是企业根地址,不带 /v1。
请求示例
curl --fail-with-body https://enterprise.beefapi.com/v1/messages \
-H "x-api-key: $BEEFAPI_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-4-6","max_tokens":512,"messages":[{"role":"user","content":"用一句话解释 API 网关。"}]}'| 字段 | 类型 | 说明 |
|---|---|---|
model | string | 必填,企业目录中的 Claude 型号 |
max_tokens | integer | 必填,输出 token 上限;模型可能提前结束 |
messages | array | 必填,用户和助手消息 |
system | string 或支持的内容块 | 可选,系统提示放顶层,不用 system 角色消息代替 |
stream | boolean | 可选,开启 Anthropic SSE |
tools | array | 可选,工具定义,需按模型和协议支持情况使用 |
返回内容块
示例响应(省略部分字段):
{
"id":"msg_example",
"type":"message",
"role":"assistant",
"model":"claude-sonnet-4-6",
"content":[{"type":"text","text":"API 网关统一接收请求并把它们转发到合适的服务。"}],
"stop_reason":"end_turn",
"usage":{"input_tokens":18,"output_tokens":20}
}遍历 content 中 type: text 的块读取文字。其他块可能是工具使用或思考内容,不能假设所有块都有 text。工具使用由应用处理,回传对应的 tool_result;不要将 Messages 工具结构直接改名当作 OpenAI tool_calls。
stop_reason 表明停止原因。达到输出上限与正常结束不是同一情况;需要更长回答时,先确认型号的上限与费用。
流式处理
添加 "stream": true。事件包括消息、内容块的开始/增量/结束,最终以 message_stop 结束;请使用 Anthropic SDK 或对应 SSE 解析器。不要等待 Chat Completions 的 [DONE] 作为此协议唯一结束信号。
客户端接入 提供 Python 示例。若收到 401/403,先核对企业 Key 和域名;收到参数错误则检查 max_tokens、模型 ID 及内容块格式,见 错误排查。