# Messages（Anthropic）

使用 Anthropic Messages 请求形态调用 Genesis 模型，并返回内容块形式的生成结果。

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

## 调用前准备

准备具有 Genesis 权限的[访问凭据](../../../../guides/genesis/api-keys.md#选择凭据类型)和支持 Messages 形态的模型 ID。

## 请求体

将 `$GENESIS_ACCESS_TOKEN` 替换为访问令牌或服务账号 API Key，将 `$MODEL_ID` 替换为要调用的模型 ID。

:::::::{div} mo-api-tabs
::::::{tab-set}
:::::{tab-item} 请求示例

```bash
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": "用一句话解释数据血缘。"
      }
    ],
    "stream": false
  }'
```

:::::
:::::{tab-item} 参数说明

::::{tab-set}
:::{tab-item} 参数

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `model` | string | 是 | 要调用的 Messages 模型 ID。 |
| `max_tokens` | integer | 是 | 本次请求允许的最大输出 Token 数。 |
| `messages` | array of object | 是 | 按对话顺序传入的消息列表。 |
| `stream` | boolean | 否 | 设为 `true` 时返回 Anthropic Messages SSE 事件。 |

:::
:::{tab-item} 消息项

下面表格展开示例中 `messages` 数组的每一项；每一行是该数组项的一个字段。

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `role` | string | 是 | 消息角色。 |
| `content` | string | 是 | 消息的文本内容。 |

:::
::::

:::::
::::::
:::::::

## 成功响应

服务返回内容块形式的生成结果。

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例

```json
{
  "id": "<MESSAGE_ID>",
  "type": "message",
  "role": "assistant",
  "model": "<MODEL_ID>",
  "content": [
    {
      "type": "text",
      "text": "数据血缘描述数据从来源、处理到消费环节的关系。"
    }
  ],
  "stop_reason": "end_turn"
}
```

:::::
:::::{tab-item} 字段说明

::::{tab-set}
:::{tab-item} 通用字段

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `id` | string | 本次 Messages 请求的标识。 |
| `type` | string | 响应对象类型，示例为 `message`。 |
| `role` | string | 响应消息的角色，示例为 `assistant`。 |
| `model` | string | 实际处理请求的模型 ID。 |
| `content` | array of object | 内容块列表。 |
| `stop_reason` | string 或 null | 当前生成结束原因。 |

:::
:::{tab-item} 内容项

下面表格展开示例中 `content` 数组的每一项；每一行是该数组项的一个字段。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `type` | string | 内容块类型。 |
| `text` | string | 内容块类型为 `text` 时的生成文本。 |
| `thinking` | string | 内容块类型为 `thinking` 时的推理内容。 |

:::
::::

:::::
::::::
:::::::

## 错误响应

:::::::{div} mo-api-tabs mo-api-response-tabs
::::::{tab-set}
:::::{tab-item} 响应示例

```json
{
  "error": {
    "message": "<可读错误信息>",
    "type": "<错误类型，可能省略>",
    "code": "<错误代码，可能省略>"
  }
}
```

:::::
:::::{tab-item} 字段说明

::::{tab-set}
:::{tab-item} 通用字段

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `error` | object | 错误对象。 |

:::
:::{tab-item} 错误对象

下面表格展开示例中 `error` 对象；每一行是该对象的一个字段。

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `message` | string | 可读错误信息。 |
| `type` | string | 模型服务返回的错误类别，可能省略。 |
| `code` | string 或 null | 模型服务返回的错误代码，可能省略。 |

:::
::::

:::::
::::::
:::::::
