一个端点,
所有模型。
Tare 是挡在你所有模型前面的一层 OpenAI 兼容网关 —— 我们的,和你自己带来的。一个 base URL、一把 key,每一个 token 都算得清。
快速开始快速上手
快速上手
1. 创建 key
控制台 → API Keys → 创建。完整的 key 只显示一次,平台仅存储哈希,列表中显示的是
ak-…3f2a。
2. 配置客户端 base URL
任何 OpenAI 兼容的客户端只需改两个配置。
Code / Terminal
curl https://tare.jamerly.ai/v1/chat/completions \
-H "Authorization: Bearer $TARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "GLM 5.1",
"messages": [{"role": "user", "content": "hello"}]
}'
Code / Terminal
from openai import OpenAI
client = OpenAI(
base_url="https://tare.jamerly.ai/v1",
api_key=os.environ["TARE_API_KEY"],
)
3. 流式
传 stream: true,返回 SSE,以 data: [DONE] 结束。上游为 Anthropic 时该终止符
由 Tare 补齐(Anthropic 自身不发送),否则手写 SSE 解析的客户端会一直等待。
[!TIP]
用量在最后一帧。Tare 强制打开 stream_options.include_usage 并覆盖你的设置:
没有用量就无法计费和归因。
[!WARNING]
首字节之前可能先收到若干 SSE 注释(以 : 开头的行)。
大输入的调用里,上游要先把提示词读完才开始生成,首字节可能等上几十秒 (实测中位数之外有相当一部分超过 10 秒,最慢接近 80 秒)。这期间连接上没有任何字节, 客户端和沿途的代理会把它当成一条死连接掐掉。Tare 在静默约 5 秒后开始每隔几秒发一个 SSE 注释,让每一跳都知道连接还活着。
SSE 规范要求解析器忽略以 : 开头的行,所以标准 SDK 不用做任何事。
只有手写解析的客户端需要注意:不要把注释行当成 数据帧去 JSON 解析。
model 字段
填平台侧的模型名,不是上游的名字,映射由 Tare 完成。回包里始终是你请求的那个名字 —— 即使中途故障转移换了上游,也不会出现你没请求过的模型名。
文档最后更新于 2026 年 9 月 20 日 06:31(UTC+8)