# 计算输入 Token 数

```{raw} html
<div class="mo-api-page-show-toc" aria-hidden="true"></div>
```

计算 Messages 请求的输入 Token 数，不生成回复。

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

## 调用前准备

1. 准备用于 Genesis 调用的个人访问令牌或服务账号 API Key。创建和权限配置参阅[管理 Genesis 访问凭据](../../../../guides/genesis/api-keys.md#选择凭据类型)。
2. 通过[查询可调用模型](../models.md)选择支持 Messages 的模型。

## 请求体

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

:::::::{div} mo-api-tabs
::::::{tab-set}
:::::{tab-item} 输入示例

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

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

以下字段覆盖文本消息；计数请求不需要设置输出 Token 上限。

::::{div} mo-api-parameter-table

| 参数 | 类型 | 是否必填 | 说明 |
| --- | --- | --- | --- |
| `model` | string | 是 | 所选模型的 ID，取自模型查询结果中的 `data[].id`。 |
| `messages` | array of object | 是 | 按对话顺序排列的非空消息列表。 |
| `messages[].role` | string | 是 | 消息角色，文本对话使用 `user` 或 `assistant`。 |
| `messages[].content` | string 或 array of object | 是 | 文本内容或文本块列表。 |
| `messages[].content[].type` | string | 文本块中必填 | 文本块填写 `text`。 |
| `messages[].content[].text` | string | 文本块中必填 | 非空文本内容。 |

::::

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

## 成功响应

成功时返回消息输入的 Token 数。

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

```json
{
  "input_tokens": 12
}
```

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

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `input_tokens` | integer | 输入 Token 数，为非负整数。 |

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

## 错误响应

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

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

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

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

| 字段 | 类型 | 说明 |
| --- | --- | --- |
| `error` | object | 错误信息。 |
| `error.message` | string | 错误原因；示例表示缺少模型 ID。 |
| `error.type` | string | 错误类别，模型服务返回时可能省略。 |
| `error.code` | string 或 null | 错误代码，模型服务返回时可能省略。 |

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

## 后续操作

确认输入长度后，使用相同模型和消息[创建 Message](anthropic-messages.md)。
