创建 Message

使用 Anthropic Messages 请求格式生成回复,返回文本或推理内容块。

POST https://token.moi.matrixorigin.cn/v1/messages

调用前准备

  1. 准备用于 Genesis 调用的个人访问令牌或服务账号 API Key。创建和权限配置参阅管理 Genesis 访问凭据

  2. 通过查询可调用模型,选择 capabilities 包含 messages 的模型。

请求体

将示例中的 $GENESIS_ACCESS_TOKEN$MODEL_ID 分别替换为访问凭据和所选模型的 ID。

curl -X POST \
  "https://token.moi.matrixorigin.cn/v1/messages" \
  -H "Authorization: Bearer $GENESIS_ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "'"$MODEL_ID"'",
  "max_tokens": 256,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Reply with OK."
        }
      ]
    }
  ],
  "stream": false
}'

以下字段覆盖文本消息。图像、文档、工具和显式推理配置需要相应模型能力。

参数

类型

是否必填

说明

model

string

所选模型的 ID,取自模型查询结果中的 data[].id

max_tokens

integer

允许生成的最大 Token 数,应为正整数。

messages

array of object

按对话顺序排列的非空消息列表。

messages[].role

string

消息角色,文本对话使用 userassistant

messages[].content

string 或 array of object

文本内容或文本块列表。

messages[].content[].type

string

文本块中必填

文本块填写 text

messages[].content[].text

string

文本块中必填

非空文本内容。

stream

boolean

设为 true 返回 Messages SSE 事件。

成功响应

非流式请求返回生成的消息,内容可包含文本块或推理块。

{
  "id": "msg-example",
  "type": "message",
  "role": "assistant",
  "model": "MODEL_ID",
  "content": [
    {
      "type": "text",
      "text": "OK"
    }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 12,
    "output_tokens": 1
  }
}

字段

类型

说明

id

string

本次消息的标识。

type

string

对象类型 message

role

string

消息角色 assistant

model

string

处理请求的模型。

content

array of object

生成的内容块。按类型读取文本或推理内容。

content[].type

string

块类型;文本为 text,推理内容为 thinking

content[].text

string

文本块中的生成文本。

content[].thinking

string

推理块中的内容。

content[].signature

string

推理块返回的签名,存在时保留原值。

stop_reason

string 或 null

结束原因,例如 end_turnmax_tokens

usage

object

本次调用的 Token 用量。

usage.input_tokens

integer

输入 Token 数。

usage.output_tokens

integer

输出 Token 数。

usage.cache_creation_input_tokens

integer

模型返回的缓存写入 Token 数,可能省略。

usage.cache_read_input_tokens

integer

模型返回的缓存读取 Token 数,可能省略。

流式响应

在请求体中将 stream 设为 true,逐段接收模型生成的内容。服务通过服务器发送事件(SSE)返回增量结果,发送 message_stop 后结束消息。

curl -N -X POST \
  "https://token.moi.matrixorigin.cn/v1/messages" \
  -H "Authorization: Bearer $GENESIS_ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "'"$MODEL_ID"'",
  "max_tokens": 256,
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Reply with OK."
        }
      ]
    }
  ],
  "stream": true
}'
event: message_start
data: {"type":"message_start","message":{"id":"msg-example","type":"message","role":"assistant","content":[],"usage":{"input_tokens":12,"output_tokens":0}}}

event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"OK"}}

event: content_block_stop
data: {"type":"content_block_stop","index":0}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":1}}

event: message_stop
data: {"type":"message_stop"}

字段

类型

说明

type

string

事件类型,与 SSE 的事件名一致;例如 message_startcontent_block_deltamessage_stop

message

object

message_start 中的初始消息,字段含义见上方成功响应。

index

integer

内容块的序号,用于关联同一内容块的开始、增量和结束事件。

content_block

object

content_block_start 中的初始内容块;文本块包含类型和初始文本。

content_block.type

string

初始内容块类型,文本块为 text

content_block.text

string

文本块的初始文本。

delta

object

内容增量或消息状态更新,按事件类型读取。

delta.type

string

内容增量类型,文本增量为 text_delta

delta.text

string

本次返回的增量文本,追加到同一内容块。

delta.thinking

string

推理增量事件中的内容,存在时读取。

delta.stop_reason

string

message_delta 返回的生成结束原因。

usage

object

message_delta 返回的 Token 用量,存在时读取。

usage.output_tokens

integer

已生成的输出 Token 数。

按完整 SSE 事件缓冲并解析响应。message_start 表示消息开始;按内容块序号处理 content_block_startcontent_block_deltacontent_block_stopmessage_delta 可返回结束原因和用量,message_stop 表示消息结束。未收到 message_stop 就断开连接时,已收到的内容可能不完整。

错误响应

缺少必填模型 ID 时返回 HTTP 400。补充模型 ID 后重新提交。

{
  "error": {
    "message": "missing required parameter: model",
    "type": "invalid_request",
    "code": "invalid_request"
  }
}

字段

类型

说明

error

object

错误信息。

error.message

string

错误原因;示例表示缺少模型 ID。

error.type

string

错误类别,模型服务返回时可能省略。

error.code

string 或 null

错误代码,模型服务返回时可能省略。

后续操作

在生成前检查消息输入长度时,使用计算输入 Token 数

最后更新于