消息与流式调用¶
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-Key 的 api_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"],
)
请求结构¶
字段 |
是否必填 |
说明 |
|---|---|---|
|
是 |
支持 Messages 的模型 ID |
|
是 |
最大输出 Token 数 |
|
是 |
Anthropic 消息列表;角色为 |
|
否 |
系统指令;可使用字符串或内容块数组 |
|
否 |
设为 |
|
否 |
扩展思考配置;仅在模型和当前服务配置支持时使用 |
建议携带 anthropic-version,并从「使用」页复制当前值;未传时以服务的默认版本为准。不要添加未在当前示例中出现的 Anthropic beta Header。
组织对话¶
Messages 请求至少需要目标模型、消息列表和模型要求的输出限制。消息按时间顺序排列,每条消息的内容可以由一个或多个内容块组成。系统指令、图像内容块和其他扩展能力是否可用,取决于目标模型。
不要在 /messages 与 /chat/completions 之间直接复用序列化后的请求体:
Messages |
Chat Completions |
|---|---|
Anthropic 原生请求与 |
OpenAI 兼容请求与 |
Anthropic 原生 SSE 事件 |
|
SDK 使用 Genesis 源地址配置 |
SDK 使用 Genesis Base URL 配置 |
如果应用需要在两种接口间切换,先在内部定义统一消息模型,再为每个端点实现独立适配层。
工具能力¶
工具调用取决于端点、模型和当前服务配置。一个模型可用于 Chat Completions,不代表它也能在 Messages 中调用工具。先在控制台确认该端点,再用最小工具请求验证;若返回 5xx,保留脱敏的请求 ID、端点、模型 ID 和状态码后排查,不要猜测参数或改用未公开的路径。
流式调用¶
启用流式输出后,按事件类型累计内容块,并在收到原生终止事件后完成消息。常见事件包括 message_start、content_block_delta 和 message_stop。解析器应允许一个内容块拆分为多个网络分片,并保留最终事件中的停止原因和用量。连接中断后的重试可能形成第二次请求,不能直接拼接两次流。
流式处理的通用注意事项见返回结果、分页与流式响应。模型是否支持 Messages 及其具体字段,应先在模型详情和调试页确认。