先把输出限到128个令牌:低预算读懂Anthropic Messages API
01 / 先设128个输出令牌,别拿长文测试接口
熟悉OpenAI聊天接口的人,第一次看到Anthropic Messages API,通常会卡在三个地方:system不在messages数组里,content不一定是字符串,回复也没有choices。先把这三处搞清楚,比直接搬运完整项目便宜。
第一次测试只发送一句短问题,把max_tokens设为128。这个数字是输出上限,不是固定收费数量,也不是整次请求的总令牌上限;输入仍然需要计费。短请求的目的,是确认鉴权、模型标识和响应解析,不是评价模型能力。
02 / 请求地址相似,不代表请求体可以照搬
这里对照的是OpenAI的Chat Completions接口。Anthropic官方Messages接口使用POST /v1/messages,官方域名是api.anthropic.com。常规API密钥请求需要x-api-key、anthropic-version和Content-Type请求头;版本头可使用2023-06-01,内容类型为application/json。
OpenAI常见的Authorization: Bearer写法不能直接当作Anthropic官方鉴权格式。使用中转服务时,请以该服务的接口文档为准:域名、鉴权方式、原生路由支持范围都可能不同。
尤其别把/chat/completions简单替换成/messages就上线。路径只是入口,真正需要迁移的是请求字段和响应解析。
03 / 把system搬到顶层,保留user和assistant
最小请求体可以长这样,其中MODEL_ID必须替换为服务端实际支持的模型标识,不能原样发送:
{"model":"MODEL_ID","max_tokens":128,"system":"请用简体中文简短回答。","messages":[{"role":"user","content":"用一句话解释什么是令牌。"}]}
- ■ model:选择模型。展示名称不一定等于接口标识,先查模型列表。
- ■ max_tokens:Messages请求中的必填输出上限,不要直接照搬其他接口的字段名。
- ■ system:顶层指令,不要再塞入role为system的消息。
- ■ messages:聊天历史,基础角色是user和assistant。
多轮对话时,需要把相关历史再次提交。上一次返回的消息id并不意味着下一次请求会自动加载那段聊天。每轮都带完整长历史,可能让输入费用持续增加;小预算测试先保留必要上下文即可。
04 / 读取content数组,而不是choices里的字符串
一个简化后的响应可能是:
{"role":"assistant","content":[{"type":"text","text":"令牌是模型处理文本时使用的基本单位。"}],"stop_reason":"end_turn","usage":{"input_tokens":32,"output_tokens":18}}
这里的32和18只是解释字段的示意数值,不是实测结果或费用承诺。与OpenAI常见的choices[0].message.content不同,你需要遍历content数组,取出type为text的块,再读取text字段。
只取content[0].text适合最简单的演示,却不适合作为通用解析器。图片、工具调用等内容也通过内容块表示。工具调用使用tool_use块,工具结果使用tool_result块;不要把其他接口的tool角色消息不加修改地搬过来。
05 / 看stop_reason,分清结束和被截断
- ■ end_turn:模型完成了这一轮回答。
- ■ max_tokens:输出触及限制,内容可能没写完。
- ■ tool_use:模型请求调用工具,需要你的程序继续处理。
如果128个输出令牌不够,先检查是否只是测试题太长,再决定是否提高上限。不要看到截断就反复重发整段历史:重复请求也可能重复产生输入费用。刚开始先关闭流式输出,等普通响应解析正确后,再处理流式事件。
06 / 用实际用量核账,再决定走哪种接口
普通无缓存请求的费用,可以按“输入令牌数×输入单价+输出令牌数×输出单价”核算,并注意单价是否按百万令牌标示。启用缓存后,读取、写入可能采用不同价格,不能只看一个总令牌数。
CheapRelay按实际令牌用量计费,包括缓存读取和写入,没有月费,也没有订阅。如果你只想继续使用OpenAI SDK,可以先查看其https://api.cheapapirelay.com下的/v1兼容接口,而不必为了换模型立刻重写成Messages格式。
如果项目确实需要Anthropic原生格式,则先核对中转服务是否支持对应路由、字段和工具行为,不能由“兼容OpenAI”推断出“原生Messages也兼容”。想用小请求核对真实账单,可以注册CheapRelay,先跑通一次短问答,再逐步增加上下文和输出预算。
注册 价格自己试,注册就送试用额度。
顺手再看
| 日期 | 货架 | 语言 | 标题 |
|---|---|---|---|
| 2026-10-28 | 协议细节 | ZH | 每月固定费 0 元:别让 SSE 解析错误浪费 token 从字节解码、跨块换行到事件拼接,逐步拆解 SSE 解析。先用本地测试覆盖边界,再接入真实 AI 流,减少小预算项目的无效重试。 |
| 2026-10-28 | 少花一点 | ZH | 输出从1000减到200词元:示例每次省0.0032元 预算很小时,先管住回答长度。用一笔明确标注的假设账单,学会写长度要求、设置输出上限,并检查回答缩短后是否真的省钱。 |
| 2026-10-28 | 少花一点 | ZH | 先定5元预算:用AI生成20条样本,再扩成1000条测试数据 从5元自定预算出发,让AI只处理难编的样本,再用脚本扩充数据;附提示词、令牌成本算法和检查步骤,适合第一次尝试的新手。 |
| 2026-10-28 | 低成本上手 | ZH | 先设1美元上限,批量写100条商品描述 用表格、低价按量计费API和一个小脚本,零经验也能低成本批量生成商品描述。 |
| 2026-10-28 | 模型比价 | ZH | 1美元预算,Gemini 3.8 Flash每次回答多少钱 用真实Token账单计算Gemini 3.8 Flash与Gemini 3.1 Pro的单次成本,适合预算只有1美元的新手。 |
| 2026-10-28 | 省钱用编码 Agent | ZH | 预算0.90元:用Codex CLI只重构一个小函数 把一次小重构的预算定为0.90元:先核对接口与计费,再限制文件、上下文和尝试次数。附新手操作顺序,不把预算冒充实测账单。 |