TensorFusion Docs

Claude 对话 API

无界模型云 Claude 系列模型,支持 Anthropic 原生 Messages 与 OpenAI 兼容接口。

无界模型云提供 Claude 系列对话模型,覆盖最新一代 Opus、Sonnet、Haiku。可用两种形态接入:Anthropic 原生 Messages 接口与 OpenAI 兼容接口,两套接口共享同一账户、同一 Key 和同一计费体系。

概览

  • Anthropic 原生 MessagesPOST https://api.tos.run/v1/messages,适合已经使用 Anthropic SDK 或 Claude 生态工具链的应用,可直接复用 messagessystemtoolsthinkingcache_control 等原生能力。
  • OpenAI 兼容POST https://api.tos.run/v1/chat/completions,适合已有 OpenAI 兼容客户端的应用,零改造切换到 Claude。
  • 模型族包含 Claude Opus、Sonnet、Haiku 三档:Opus 面向复杂编程与深度推理,Sonnet 面向通用任务与日常编码,Haiku 面向高并发与快速响应。

实际可用的模型 ID、版本与区域以控制台展示为准。建议在代码中把模型 ID 作为配置项,便于跟随控制台更新切换到新版本。

鉴权与 Base

API 数据面 Base 为 https://api.tos.run(浏览器控制台是 https://ai.tos.run不要用作 API Base)。两种形态都用 Authorization: Bearer 鉴权头:

形态端点鉴权头
Anthropic 原生https://api.tos.run/v1/messagesAuthorization: Bearer $AI_TOS_API_KEY
OpenAI 兼容https://api.tos.run/v1/chat/completionsAuthorization: Bearer $AI_TOS_API_KEY

原生 Messages 请求还需带 anthropic-version: 2023-06-01content-type: application/json。在控制台创建 API Key 后,将其存入环境变量 AI_TOS_API_KEY 再发起调用。

网关只接受 Authorization: Bearer gk_... 鉴权头(OpenAI 与 Anthropic 两条路径都用 Bearer),不接受入站 x-api-key。用 Anthropic SDK 时请传 auth_token / authToken(会发 Authorization: Bearer),而不是 api_key(会发 x-api-key,导致 401)。完整配置见 客户端接入

Messages 调用

Anthropic 原生形态。max_tokens 为必填项,用于限制单次响应的最大输出 token。

curl https://api.tos.run/v1/messages \
  -H "Authorization: Bearer $AI_TOS_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-x",
    "max_tokens": 1024,
    "system": "你是一个简洁的中文助手。",
    "messages": [
      { "role": "user", "content": "用三句话介绍一下你自己。" }
    ]
  }'
import os, requests

resp = requests.post(
    "https://api.tos.run/v1/messages",
    headers={
        "Authorization": f"Bearer {os.environ['AI_TOS_API_KEY']}",
        "anthropic-version": "2023-06-01",
        "content-type": "application/json",
    },
    json={
        "model": "claude-sonnet-4-x",
        "max_tokens": 1024,
        "system": "你是一个简洁的中文助手。",
        "messages": [
            {"role": "user", "content": "用三句话介绍一下你自己。"}
        ],
    },
)
print(resp.json())
const resp = await fetch("https://api.tos.run/v1/messages", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.AI_TOS_API_KEY}`,
    "anthropic-version": "2023-06-01",
    "content-type": "application/json",
  },
  body: JSON.stringify({
    model: "claude-sonnet-4-x",
    max_tokens: 1024,
    system: "你是一个简洁的中文助手。",
    messages: [{ role: "user", content: "用三句话介绍一下你自己。" }],
  }),
});
console.log(await resp.json());

OpenAI 兼容调用

如果已有 OpenAI 兼容客户端,只需切换 Base、Key 和模型 ID 即可使用 Claude。system 提示在该形态下作为 role: "system" 的消息传入。

curl https://api.tos.run/v1/chat/completions \
  -H "Authorization: Bearer $AI_TOS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-x",
    "messages": [
      { "role": "system", "content": "你是一个简洁的中文助手。" },
      { "role": "user", "content": "用三句话介绍一下你自己。" }
    ]
  }'

参数

以下参数适用于 Anthropic 原生 Messages 接口。

参数类型必填说明
modelstring模型 ID,如 claude-opus-4-x / claude-sonnet-4-x / claude-haiku-4-x,以控制台展示为准。
messagesarray对话消息数组,每项含 roleuser / assistant)与 content(字符串或内容块数组)。
max_tokensinteger单次响应最大输出 token 数。
systemstring系统提示,定义模型角色与全局约束。
temperaturenumber采样温度,范围 01,值越高输出越发散。
top_pnumber核采样阈值,与 temperature 二选一调节即可。
stop_sequencesarray自定义停止序列,命中即停止生成。
streamboolean是否以 SSE 流式返回,默认 false
toolsarray工具(函数)定义列表,用于函数调用。
tool_choiceobject工具选择策略,如 { "type": "auto" } 或指定某个工具。
thinkingobject扩展思考配置,开启后模型先输出思考过程再给结论。

OpenAI 兼容接口使用 OpenAI 标准字段(messagesmax_tokenstemperaturetop_pstopstreamtoolstool_choice 等)。

流式

设置 stream: true 后,响应以 Server-Sent Events(SSE)逐块返回,便于实时渲染。主要事件类型:

  • message_start:消息开始,携带初始的 message 元信息。
  • content_block_delta:内容增量,文本片段在 delta.text 中。
  • message_delta:消息级增量,携带 stop_reason 与累计 usage
  • message_stop:消息结束。
curl https://api.tos.run/v1/messages \
  -H "Authorization: Bearer $AI_TOS_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-x",
    "max_tokens": 1024,
    "stream": true,
    "messages": [
      { "role": "user", "content": "写一首关于云的短诗。" }
    ]
  }'

工具调用

通过 tools 声明可调用的函数,模型在需要时返回 tool_use 内容块。应用执行工具后,把结果以 tool_result 块回填到下一轮 messages 中,模型据此给出最终回答。

curl https://api.tos.run/v1/messages \
  -H "Authorization: Bearer $AI_TOS_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-x",
    "max_tokens": 1024,
    "tools": [
      {
        "name": "get_weather",
        "description": "查询指定城市的天气",
        "input_schema": {
          "type": "object",
          "properties": {
            "city": { "type": "string", "description": "城市名称" }
          },
          "required": ["city"]
        }
      }
    ],
    "messages": [
      { "role": "user", "content": "合肥今天天气怎么样?" }
    ]
  }'

模型返回的 tool_use 块包含 idnameinput。执行工具后,按如下结构回填结果并再次请求:

{
  "role": "user",
  "content": [
    {
      "type": "tool_result",
      "tool_use_id": "toolu_xxx",
      "content": "晴,26°C"
    }
  ]
}

提示缓存

对系统提示、长文档等稳定且重复出现的内容,可在内容块上添加 cache_control 命中提示缓存,降低输入成本并提升响应速度。

{
  "system": [
    {
      "type": "text",
      "text": "(大段固定的业务背景与规则……)",
      "cache_control": { "type": "ephemeral" }
    }
  ]
}

缓存写入会产生 cache_creation_input_tokens,后续命中的部分计入 cache_read_input_tokens,缓存命中输入按更低的价格计费。

响应与用量

原生 Messages 响应的关键字段:

字段说明
content[]内容块数组,type: text 为文本,type: tool_use 为工具调用。
stop_reason停止原因,如 end_turnmax_tokenstool_usestop_sequence
usage.input_tokens非缓存输入 token 数。
usage.output_tokens输出 token 数。
usage.cache_creation_input_tokens写入缓存的输入 token 数。
usage.cache_read_input_tokens命中缓存的输入 token 数。
{
  "id": "msg_xxx",
  "type": "message",
  "role": "assistant",
  "content": [
    { "type": "text", "text": "你好,我是一个中文助手……" }
  ],
  "stop_reason": "end_turn",
  "usage": {
    "input_tokens": 24,
    "output_tokens": 38,
    "cache_creation_input_tokens": 0,
    "cache_read_input_tokens": 0
  }
}

计费

Claude 系列遵循无界模型云的 LLM 计费规则,按 token 计量,单位为 1M token:

  • input_tokens(非缓存输入)、cached_input_tokens(缓存命中输入)、output_tokens 分别计费。
  • 缓存命中输入按较低价格计费;有显式缓存价格时使用显式行,否则按同档输入价格的较低折扣计费。
  • 上下文档位按本次请求输入 token 判断:≤128k≤256k>256k,不同档位单价不同。
  • 推理(扩展思考)、工具结果、检索上下文最终都会体现在输入或输出 token 中。

具体单价、可用模型与折扣以控制台 / 组织价格为准。组织专属价格、合同折扣和控制台实时价格优先级更高。

接入建议

  • 生产环境把 API Key 放在服务端,不要暴露到浏览器或客户端。
  • 给不同应用使用不同 Key,便于审计、限额和停用。
  • 先按真实业务样本估算 token,再设置额度与告警;工具调用、检索上下文与思考 token 都要纳入预算。
  • 把模型 ID 作为配置项管理,跟随控制台更新平滑切换到新版本。

目录