消息与流式调用

Messages 提供 Anthropic 原生请求和事件形态。已有 Anthropic SDK,或需要 content[] 响应和原生流式事件的应用可使用此接口。

请求方式

POST

接口地址

$GENESIS_BASE_URL/messages

身份认证

UC PAT 和 Genesis 服务账号 API Key 都使用 Authorization: Bearer <ACCESS_TOKEN>。详见接口地址与身份认证

接入约定

原始 HTTP 调用使用:

Authorization: Bearer <ACCESS_TOKEN>

请求与响应采用 Anthropic Messages 的字段结构,业务结果位于 content[]。流式调用返回该生态的原生事件,而不是 Chat Completions 的 choices[].delta

Genesis「使用」页提供 Messages 代码示例。使用官方 Anthropic SDK 时,SDK 的 base_url 必须配置为 Genesis origin/root,而不是包含 /v1 的 OpenAI 兼容 Base URL;SDK 会自行追加 /v1/messages。UC PAT 与 Genesis 服务账号 API Key 都必须经 Authorization: Bearer 发送,因此在官方 Python SDK 中使用 auth_token,不要将 PAT 传给会发送 X-Api-Keyapi_key 参数:

export GENESIS_MESSAGES_ORIGIN="${GENESIS_BASE_URL%/v1}"
import os
from anthropic import Anthropic

client = Anthropic(
    auth_token=os.environ["GENESIS_ACCESS_TOKEN"],
    base_url=os.environ["GENESIS_MESSAGES_ORIGIN"],
)

请求结构

字段

是否必填

说明

model

支持 Messages 的模型 ID

max_tokens

最大输出 Token 数

messages

Anthropic 消息列表;角色为 userassistant

system

系统指令;可使用字符串或内容块数组

stream

设为 true 后返回 Anthropic 原生 SSE 事件

thinking

扩展思考配置;仅在模型和当前服务配置支持时使用

建议携带 anthropic-version,并从「使用」页复制当前值;未传时以服务的默认版本为准。不要添加未在当前示例中出现的 Anthropic beta Header。

组织对话

Messages 请求至少需要目标模型、消息列表和模型要求的输出限制。消息按时间顺序排列,每条消息的内容可以由一个或多个内容块组成。系统指令、图像内容块和其他扩展能力是否可用,取决于目标模型。

不要在 /messages/chat/completions 之间直接复用序列化后的请求体:

Messages

Chat Completions

Anthropic 原生请求与 content[] 响应

OpenAI 兼容请求与 choices[] 响应

Anthropic 原生 SSE 事件

data: 增量与 [DONE]

SDK 使用 Genesis 源地址配置

SDK 使用 Genesis Base URL 配置

如果应用需要在两种接口间切换,先在内部定义统一消息模型,再为每个端点实现独立适配层。

工具能力

工具调用取决于端点、模型和当前服务配置。一个模型可用于 Chat Completions,不代表它也能在 Messages 中调用工具。先在控制台确认该端点,再用最小工具请求验证;若返回 5xx,保留脱敏的请求 ID、端点、模型 ID 和状态码后排查,不要猜测参数或改用未公开的路径。

流式调用

启用流式输出后,按事件类型累计内容块,并在收到原生终止事件后完成消息。常见事件包括 message_startcontent_block_deltamessage_stop。解析器应允许一个内容块拆分为多个网络分片,并保留最终事件中的停止原因和用量。连接中断后的重试可能形成第二次请求,不能直接拼接两次流。

流式处理的通用注意事项见返回结果、分页与流式响应。模型是否支持 Messages 及其具体字段,应先在模型详情和调试页确认。

最后更新于