TokenFab 文档中心
大模型推理服务平台,兼容 OpenAI SDK,帮助开发者快速构建 AI 应用。
from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="https://api.tokenfab.cn/v1"
)
resp = client.chat.completions.create(
model="glm-5.2",
messages=[{"role": "user", "content": "hello, TokenFab"}]
)
print(resp.choices[0].message.content)获取 API Key
完成以下步骤创建 API 密钥,开始调用 TokenFab API。
1创建 API Key
- 访问 TokenFab 控制台,登录或注册。
- 进入 控制台 → API 密钥。
- 点击「创建 API Key」,输入备注后确认。
- 复制密钥(格式:
tk-xxxx...),关闭后不可再查看。
⚠️ 警告
请妥善保管 API Key,不要提交到代码仓库或在前端代码中硬编码。
2配置环境变量
Linux / macOS (Bash)
export TOKENFAB_API_KEY="your-api-key"Windows (PowerShell)
$env:TOKENFAB_API_KEY="your-api-key"后续示例中的 api_key 可直接传入你的密钥;如果使用上面的环境变量,请在代码中读取 TOKENFAB_API_KEY。
首次调用 API
使用 Python SDK 完成首次 API 调用。
安装依赖
pip install openai调用示例
from openai import OpenAI
client = OpenAI(api_key="your-api-key", base_url="https://api.tokenfab.cn/v1")
resp = client.chat.completions.create(model="glm-5.2", messages=[{"role":"user","content":"介绍一下 TokenFab 平台"}])
print(resp.choices[0].message.content)SDK 使用指南
TokenFab API 兼容 OpenAI SDK。
安装
pip install openai初始化
from openai import OpenAI
client = OpenAI(api_key="your-api-key", base_url="https://api.tokenfab.cn/v1")错误处理
try:
r = client.chat.completions.create(model="glm-5.2", messages=[{"role":"user","content":"你好"}])
except Exception as e:
print(f"错误: {e}")OpenAI SDK 兼容说明
TokenFab 提供 OpenAI 兼容接口,基础 Chat Completions 调用只需修改两行代码即可迁移;思考模式、联网搜索等扩展参数请按本页说明配置。
| 配置项 | OpenAI | TokenFab |
|---|---|---|
| api_key | sk-xxx... | tk-xxxx... |
| base_url | https://api.openai.com/v1 | https://api.tokenfab.cn/v1 |
💡 提示
OpenAI SDK 的兼容功能可直接使用;思考模式、联网搜索等 TokenFab 扩展参数请参照对应章节。
Responses API 接入
同一 base_url 下亦兼容 OpenAI Responses 协议(client.responses.create),内置工具仅此协议可用,鉴权与计费同 Chat Completions:
from openai import OpenAI
client = OpenAI(base_url="https://api.tokenfab.cn/v1", api_key="your-api-key")
resp = client.responses.create(
model="glm-5.2",
input="你好, TokenFab",
instructions="回答使用中文。")
print(resp.output_text)Anthropic SDK 兼容说明
TokenFab API 兼容 Anthropic SDK(Messages API),修改 base_url 即可将现有 Anthropic 应用迁移至 TokenFab。
⚠️ 提示
Anthropic 协议当前支持以下模型:glm-5.2、qwen3.7-max、qwen3.7-plus、kimi-k3
迁移方式
只需修改以下两个必需配置项;如客户端要求,也可设置可选的 ANTHROPIC_AUTH_TOKEN:
| 环境变量 | 说明 | TokenFab 配置值 |
|---|---|---|
ANTHROPIC_API_KEY | API 密钥 | tk-xxxx... |
ANTHROPIC_BASE_URL | 兼容端点地址 | https://api.tokenfab.cn/anthropic |
ANTHROPIC_AUTH_TOKEN | 认证令牌(可选,等价于 API_KEY) | tk-xxxx... |
快速接入
文本对话
import anthropic
client = anthropic.Anthropic(
api_key="your-api-key",
base_url="https://api.tokenfab.cn/anthropic",
)
message = client.messages.create(
model="glm-5.2",
max_tokens=1024,
messages=[{"role": "user", "content": "hello"}],
thinking={"type": "disabled"},
)
print(message.content[0].text)流式输出
with client.messages.stream(
model="glm-5.2",
max_tokens=1024,
messages=[{"role": "user", "content": "讲个故事"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)接入 Agent 工具
TokenFab API 兼容 OpenAI 接口格式,可轻松接入各类 AI 编程助手、Agent 框架和 IDE 插件。选择你正在使用的工具,按指引完成配置即可。
接入 Claude Code
Claude Code 是一个运行在您终端的 AI 编程助手,通过配置文件做模型替换,即可将 Claude Code 指向 TokenFab API,使用我们的模型获得更高级的编程体验。
从现有安装中迁移
如果您已安装了 Claude Code,只需通过以下步骤配置文件,即可完成配置:
Linux / Mac
export ANTHROPIC_BASE_URL="https://api.tokenfab.cn/anthropic"
export ANTHROPIC_AUTH_TOKEN="your-api-key"
export ANTHROPIC_DEFAULT_MODEL="glm-5.2"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm-5.2"
export ANTHROPIC_SMALL_FAST_MODEL="glm-5.2"
export CLAUDE_CODE_DEFAULT_HAIKU_MODEL="glm-5.2"
export CLAUDE_CODE_SUBAGENT_MODEL="glm-5.2"Windows (PowerShell)
$env:ANTHROPIC_BASE_URL="https://api.tokenfab.cn/anthropic"
$env:ANTHROPIC_AUTH_TOKEN="your-api-key"
$env:ANTHROPIC_DEFAULT_MODEL="glm-5.2"
$env:ANTHROPIC_DEFAULT_HAIKU_MODEL="glm-5.2"
$env:ANTHROPIC_SMALL_FAST_MODEL="glm-5.2"
$env:CLAUDE_CODE_DEFAULT_HAIKU_MODEL="glm-5.2"
$env:CLAUDE_CODE_SUBAGENT_MODEL="glm-5.2"提示
上方“从现有安装中迁移”一节中的内容为配置变量,其中 API Key 在控制台获取。
配置完成后,执行 claude --version 验证版本号。如果看到正确版本,则已可继续后续流程。
开始使用
cd /path/to/my-project
claudeWeb Search 功能
TokenFab API 支持 Claude Code 的 Web Search 功能。当模型判断你的提问需要搜索时,它会返回包含引用结果的搜索内容。由于不同模型对 Web Search 用法有所差异,您可以参考 Claude Code 官方文档说明。
模型映射
使用 Claude Code,我们可将传入的 Claude 模型名自动映射:
| Claude 模型 | 映射到 |
|---|---|
claude-opus-4 / claude-opus-4-1 | glm-5.2 |
claude-sonnet-4 / claude-haiku-4 | glm-5.2 |
通过修改 ~/.claude/settings.json 来对传入的 Claude 模型名进行自动映射。
接入 OpenClaw
OpenClaw 是一个开源的个人 AI 助手,可以接入飞书、微信等聊天工具,并通过 Skill 扩展能力。简单配置后,即可将 OpenClaw 指向 TokenFab API。
从现有安装中迁移
如果您已经安装了 OpenClaw,运行以下命令重新进入配置阶段,切换到我们的 TokenFab 提供商:
openclaw onboard --install-daemon然后按照提示操作:
- 遇到 I understand this is personally-by-default... 请选择 Yes
- 遇到 Skip onboarding by default? 请选择 No,继续完成配置
安装 OpenClaw
Linux / Mac
curl -fsSL https://openclaw.ai/install.sh | bashWindows (PowerShell)
iwr -useb https://openclaw.ai/install.ps1 | iex配置默认模型
首次安装完成后会自动进入配置阶段;已安装的用户可通过 openclaw onboard --install-daemon 进入。
- 遇到 I understand this is personally-by-default... 请选择 Yes
- 选择 Setup node 推荐选 QuickStart
- 遇到 ModelAuth provider 请选择 TokenFab
- 遇到 Enter API key:请输入你的 TokenFab API Key
- 遇到 Default model:请填写模型名(glm-5.2)
- 遇到 Skip permissions for... 请根据需要配置,新手可以选择 Skip for now
开始使用
打开 Web UI
openclaw dashboard在终端中对话
openclaw terminal在指定模型下对话
openclaw terminal --model glm-5.2接入 Hermes
Hermes 是 Nous Research 打造的开源自进化 AI Agent。它内置学习闭环,能够从经验中生成技能,在使用过程中持续优化,沉淀知识,并在合适的主题上逐步构建你偏好的动态模型。
安装 Hermes
快速安装
通过一行安装命令,你可以在两分钟内快速启动 Hermes Agent。
Linux / macOS / WSL2
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash唯一依赖就是 Git。命令会从 GitHub 克隆 Hermes 仓库并提供一套开箱即用的脚本和命令。
快速开始
- 执行
hermes setup - 选择 Quick Setup
- 当提示选择模型提供商时,选择 TokenFab
- 输入你的 TokenFab API Key
- Base URL 填写:
https://api.tokenfab.cn/v1 - 选择 glm-5.2 模型
- 继续完成其余配置选项
接入 WorkBuddy
WorkBuddy / CodeBuddy 是 AI Agent 与编程助手工具。它支持通过本地模型配置文件添加自定义模型,可以使用 OpenAI 兼容的 Chat Completions API 接入 TokenFab。
配置模型
在 WorkBuddy 的模型配置文件中,添加以下 JSON 配置,其中 API Key 在控制台获取。请将 ${{API_KEY}} 替换为你实际的 TokenFab API Key,不要保留占位符。
{
"models": [
{
"id": "deepseek-v4-pro",
"name": "DeepSeek V4 Pro",
"vendor": "TokenFab",
"url": "https://api.tokenfab.cn/v1/chat/completions",
"apiKey": "${{API_KEY}}",
"maxInputTokens": 128000,
"maxOutputTokens": 8192,
"supportsToolCall": true,
"supportsImages": false,
"relatedModels": {
"lite": "deepseek-v4-flash",
"reasoning": "deepseek-v4-pro"
}
},
{
"id": "deepseek-v4-flash",
"name": "DeepSeek V4 Flash",
"vendor": "TokenFab",
"url": "https://api.tokenfab.cn/v1/chat/completions",
"apiKey": "${{API_KEY}}",
"maxInputTokens": 128000,
"maxOutputTokens": 8192,
"supportsToolCall": true,
"supportsImages": false
}
],
"availableModels": [
"deepseek-v4-pro",
"deepseek-v4-flash"
]
}💡 提示
配置中的 url 使用 OpenAI 兼容的 Chat Completions 端点,确保 apiKey 替换为你实际的 TokenFab API Key,而非环境变量占位符。
代金券使用说明
查看、使用和管理您的优惠券
什么是代金券
代金券指 TokenFab 以虚拟券的形式给予客户的资金类权益,可用于抵扣客户使用产品的费用。代金券具有固定面额,可在额度范围内多次抵扣,直至余额用尽或超过有效期。
查看代金券
登录 TokenFab Console,进入 账单 > 代金券管理 页面,即可查看您账户下的全部代金券。
列表页提供以下筛选能力,帮助您快速定位代金券:
- 生效时间:按券的生效时间区间筛选
- 关键词搜索:按代金券名称或 ID 搜索
- 状态筛选:筛选可用、已用完、已过期、已作废的优惠券
代金券的属性如下:
| 属性 | 说明 |
|---|---|
| 代金券 ID | 代金券的唯一编号 |
| 面额 | 代金券的面额 |
| 余额 | 代金券的剩余可抵扣金额 |
| 使用产品 | 可参与代金券抵扣的产品范围,如全部产品,或指定产品 |
| 付款方式 | 可参与代金券抵扣的付款方式,如按量计费 |
| 有效期 | 代金券的有效使用期限 |
| 发放时间 | 代金券进入你账户的时间 |
| 状态 | 可用、已用完、已过期、已作废 |
点击列表操作列的查看详情,可进入代金券详情页,查看券的完整信息(摘要、适用产品、抵扣流水)。
如何使用代金券
代金券具有可抵扣的产品范围、可参与抵扣的付款方式、有效使用期限等使用条件,具体请查阅代金券详情。
抵扣规则
- 自动匹配:系统优先使用即将过期的优惠券。
- 多券抵扣:如果单张优惠券余额不足以抵扣整个账单,系统会自动使用下一张可用的代金券继续抵扣,直至账单金额完全抵扣或可用优惠券用尽。
- 余额支付:若代金券抵扣完毕后账单仍有剩余金额,账单剩余金额需由账户余额另行支付。
抵扣范围与限制
- 产品范围:仅抵扣券适用产品范围内的模型调用费用。适用产品为全部产品时可抵扣任意按量计费产品;为指定产品时仅抵扣对应产品费用。具体以券详情展示为准。
- 不可抵扣欠费:代金券无法用于抵扣历史欠费。欠费需自行充值还清。
查看抵扣明细
在代金券管理列表点击查看详情,进入券详情页后,可在「使用详情」中查看该券的全部抵扣流水,包括:抵扣流水 ID、抵扣时间、抵扣金额等。
使用详情支持按时间与交易类型筛选,并支持导出留存对账。
有效期规则
代金券的有效期分两种类型,以券详情展示为准:
- 固定时间段:券在指定的生效日期与失效日期之间可用。
- 发放后 N 天:自券发放进入账户当日起算 N 天,到期自动失效。
常见问题
为什么我的代金券没有抵扣账单?
常见原因包括:
- 适用产品限制:本笔消费的产品不在券的适用产品范围内
- 已过期:账单出账时间已超出券的有效期
- 余额不足:券已用完,系统自动使用其他可用券或账户余额
- 已作废:券被运营侧作废,余额已清零
- 欠费状态:账户存在欠费时,代金券无法抵扣欠费部分
- 账单未出账:按量付费账单结算存在延迟,请稍后查看
仍无法定位原因时,可在券详情页核对适用产品与有效期,或联系客服并提供券 ID(形如 VF15474540)排查。
代金券可以充值、提现或转入账户余额吗?
不可以。代金券不支持转换为现金、充值或转入账户余额,仅可用于按量付费账单的自动抵扣。账户充值请前往「充值 > 在线充值」。
代金券可以跨账号转让或共用吗?
不可以。代金券与发放时核对的租户账号绑定,不支持跨账号转让、共用或代付。发放至您账户的代金券仅可抵扣本账号的按量付费账单。
代金券过期后可以恢复或延期吗?
不可以。代金券过期后剩余余额自动清零,无法恢复、延期或补发。系统会按「优先即将到期」的顺序自动抵扣,帮助您减少过期损失。
领取代金券本身会计费吗?
不会。代金券进入您的账户不产生任何费用,也无需激活。仅在模型调用产生按量付费账单时才会触发抵扣。
代金券抵扣的费用可以开发票吗?
代金券抵扣部分不重复开票:发票金额按实际支付金额(账户余额支付部分)开具,代金券抵扣部分不计入开票金额。开票规则请参考「发票管理」页面说明。
TokenFab 域名变更公告
发布时间:2026 年 9 月 19 日
尊敬的 TokenFab 用户:
为规范网站域名管理、提升服务体验,TokenFab 官网域名将变更为 www.tokenfab.cn,原域名 www.tokenfab.com 将于 2026 年 9 月 24 日 18:00 停止使用。请您及时完成新域名配置和调整:
一、更新 API 接入地址:将代码、SDK 配置、环境变量中的 api.tokenfab.com/v1 替换为 api.tokenfab.cn/v1(如 OpenAI SDK 兼容配置中的 base_url);
二、更新网络白名单与书签:若您的企业防火墙、代理或网关配置了按域名的出站限制,请将新域名加入允许列表。并同步更新浏览器书签,将新官网 www.tokenfab.cn、新控制台 www.tokenfab.cn/console 加入收藏;
三、更新回调与集成:若您配置了 Webhook 回调或第三方集成,请将其更新为新域名,并验证连通性。
由此给您带来的不便,我们深表歉意,并感谢您一直以来的信任与支持。
2026 年 9 月 19 日
模型概览
了解 TokenFab 可用的模型及能力。所有模型共用同一套 API。
文本模型
| 模型 ID | 上下文 | 最大输出 | 特点 |
|---|---|---|---|
| glm-5.2 | 1M | 128K | 最新旗舰,1M 超长上下文,支持联网搜索 |
| glm-5.3 | 1M | — | 支持联网搜索与工具调用 |
| kimi-k3 | — | — | 旗舰模型,能力以接口返回为准 |
| kimi-k2.7-code | 128K | 128K | 编程能力突出,数学推理强 |
| kimi-k2.6 | — | — | 能力以接口返回为准 |
| deepseek-v4-pro | 1M | 384K | 深度推理与编程 |
| deepseek-v4-flash | 1M | 384K | 快速响应,适合编程与 RAG |
| qwen3.7-max | 1M | 64K | 旗舰模型,适合复杂推理与智能体 |
| qwen3.7-plus | 128K | 96K | 质量、速度与成本均衡 |
视频模型
| 模型 ID | 输入 | 支持场景 | 场景 |
|---|---|---|---|
| viduq3-pro | 文本 + 图片 | T2V / I2V / FLF2V | 质量优先,支持 540P / 720P / 1080P |
| viduq3-turbo | 文本 + 图片 | T2V / I2V / FLF2V | 速度与吞吐优先,适合高频试片 |
| happyhorse-1.1-t2v | 文本 | T2V | 文生视频,支持 720P / 1080P |
| happyhorse-1.1-i2v | 文本 + 图片 | I2V | 图生视频,支持 720P / 1080P |
| happyhorse-1.1-r2v | 文本 + 参考图 | R2V | 参考图一致性约束,支持 1-9 张参考图 |
视频接口的请求格式和模型参数请参阅视频生成场景说明。
场景推荐
🏆 综合最佳 — glm-5.3
1M 超大上下文,旗舰性能。
💻 编程 — deepseek-v4-pro
代码生成、调试、Review。
⚡ 高并发 — qwen3.7-max
毫秒级响应,适合客服、分类等简单任务。
Token 与上下文窗口
理解计费单位和上下文限制。
什么是 Token
Token 是模型处理文本的基本单位:
1
英文单词 ≈ 1 Token
1-2
中文汉字 ≈ 1-2 Token
usage
每次调用返回实际 Token 数
上下文窗口
模型一次处理的最大 Token 数 = 输入 + 输出 + 推理中间内容。
⚠️ 警告
超过上下文限制可能导致回答质量下降或报错。
长文本处理策略
- 使用 glm-5.2 等大上下文模型。
- 分段处理后合并结果。
- 结合关键词检索或外部检索服务保留相关片段。
- 先摘要提取关键信息。
流式输出
通过 SSE 实现逐 Token 返回。
启用流式输出
from openai import OpenAI
client = OpenAI(api_key="your-api-key", base_url="https://api.tokenfab.cn/v1")
stream = client.chat.completions.create(model="glm-5.2", messages=[{"role":"user","content":"讲个故事"}], stream=True)
for chunk in stream:
if chunk.choices:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)SSE 数据格式
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1784950000,"model":"glm-5.2","choices":[{"index":0,"delta":{"role":"assistant","content":"今天"},"finish_reason":null}]}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","created":1784950000,"model":"glm-5.2","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]思考模式
让支持该能力的模型在输出前先进行内部推理。当前示例使用 deepseek-v4-pro。
启用思考模式
from openai import OpenAI
client = OpenAI(api_key="your-api-key", base_url="https://api.tokenfab.cn/v1")
response = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[{"role": "user", "content": "2026年AI行业的最新趋势是什么?"}],
extra_body={"enable_thinking":True}
)
print(response.choices[0].message.reasoning)注意
思考模式仅适用于支持该能力的模型,例如 deepseek-v4-pro、glm-5.2、qwen3.7-max;具体以模型能力配置为准。思考模式下 temperature 等参数不生效。
Function Calling
让模型调用外部工具和 API,构建智能体应用。
工作原理
- 发送请求。携带用户问题和工具定义。
- 模型返回 tool_calls。函数名和参数。
- 执行工具。获取结果。
- 回传结果。再次调用获取最终回答。
完整示例
tools = [{"type":"function","function":{"name":"get_weather","description":"查询天气","parameters":{"type":"object","properties":{"city":{"type":"string"}},"required":["city"]}}}]
messages = [{"role":"user","content":"北京天气怎么样?"}]
r1 = client.chat.completions.create(model="glm-5.2", messages=messages, tools=tools)
tc = r1.choices[0].message.tool_calls[0]
result = "北京今天晴,25℃"
messages.append(r1.choices[0].message)
messages.append({"role":"tool","tool_call_id":tc.id,"content":result})
r2 = client.chat.completions.create(model="glm-5.2", messages=messages)
print(r2.choices[0].message.content)最佳实践
- 工具描述要清晰。影响调用准确性。
- 控制工具数量。过多会降低质量。
- 最小权限原则。
多轮对话
通过维护 messages 数组实现多轮上下文对话。
基本用法
messages = [{"role":"user","content":"北京天气怎么样?"}]
r1 = client.chat.completions.create(model="glm-5.2", messages=messages)
messages.append({"role":"assistant","content":r1.choices[0].message.content})
messages.append({"role":"user","content":"上海呢?"})
r2 = client.chat.completions.create(model="glm-5.2", messages=messages)Messages Role 类型
| role | 说明 |
|---|---|
| system | 全局指令(可选) |
| user | 用户输入 |
| assistant | 模型回复 |
| tool | 工具执行结果 |
JSON Mode / 结构化输出
让模型返回符合 JSON Schema 的结构化数据。
使用示例
r = client.chat.completions.create(model="glm-5.2", messages=[{"role":"user","content":"列出3种水果及价格"}],
response_format={"type":"json_schema","json_schema":{"name":"fruits","schema":{"type":"object","properties":{"fruits":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"number"}},"required":["name","price"]}}},"required":["fruits"]}}})
print(r.choices[0].message.content)支持的 JSON Schema 类型
| 类型 | 说明 |
|---|---|
| object | 嵌套对象 |
| string | 字符串 |
| number / integer | 数字 |
| array | 数组 |
| boolean | 布尔值 |
| enum | 枚举值 |
异步调用
通过异步客户端并发请求,提升高并发场景吞吐量。
Python 异步示例
import asyncio
from openai import AsyncOpenAI
client = AsyncOpenAI(api_key="your-api-key", base_url="https://api.tokenfab.cn/v1")
async def ask(q):
r = await client.chat.completions.create(model="glm-5.2", messages=[{"role":"user","content":q}])
print(r.choices[0].message.content)
async def main():
tasks = [ask(q) for q in ["总结AI", "翻译Hello", "推荐3本书"]]
await asyncio.gather(*tasks)
asyncio.run(main())💡 提示
适合批量处理。注意并发数不要超过模型限制。
联网搜索
启用联网搜索功能,让模型实时检索互联网信息,获取最新资讯与数据。
启用联网搜索
from openai import OpenAI
client = OpenAI(api_key="your-api-key", base_url="https://api.tokenfab.cn/v1")
response = client.chat.completions.create(
model="glm-5.2",
messages=[{"role": "user", "content": "2026年AI行业的最新趋势是什么?"}],
extra_body={"enable_web_search": True}
)
print(response.choices[0].message.content)参数说明
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| enable_web_search | boolean | False | 是否启用联网搜索 |
使用场景
- 实时信息查询。获取最新新闻、股价、天气等时效性信息。
- 事实核查。验证模型回答的准确性。
- 资料补充。补充训练截止日期后的新知识。
注意
联网搜索会增加响应延迟,仅在需要实时信息时开启。搜索会消耗额外 Token,计入总用量。
内置工具
通过 Responses API 使用联网搜索、代码执行和网页抽取。
工具名请写准确
web_search
检索公开网页并附来源。
curl -X POST https://api.tokenfab.cn/v1/responses \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.2",
"input": "今天的科技行业头条有哪些?",
"tools": [{"type": "web_search"}]
}'code_interpreter
让模型运行代码并返回结果。
curl -X POST https://api.tokenfab.cn/v1/responses \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.7-plus",
"input": "计算 2026 年 2 月的天数,并给出 3 的 20 次方的精确值。",
"tools": [{"type": "code_interpreter"}]
}'模型支持
web_extractor
读取指定网页并提取内容。
curl -X POST https://api.tokenfab.cn/v1/responses \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.2",
"input": "总结这个页面的要点:https://example.com",
"tools": [{"type": "web_extractor"}]
}'Chat Completions 与 enable_web_search 的区别
Chat Completions 只有联网搜索开关:
curl -X POST https://api.tokenfab.cn/v1/chat/completions \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.2",
"messages": [{"role": "user", "content": "今天的科技行业头条有哪些?"}],
"enable_web_search": true
}'如何选择
计费说明
| 工具 | 计费方式 |
|---|---|
| web_search | ¥0.03/次 |
| code_interpreter | 当前不单独计费 |
| web_extractor | 当前不单独计费 |
Chat Completions API
调用大语言模型进行对话生成。
端点
POST https://api.tokenfab.cn/v1/chat/completions请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | ✓ | 模型 ID |
| messages | array | ✓ | 消息数组 |
| stream | boolean | — | 流式输出 |
| temperature | number | — | 采样温度 |
| max_tokens | integer | — | 最大输出 |
| enable_web_search | boolean | — | 联网搜索 |
| tools | array | — | 工具定义 |
| response_format | object | — | JSON Mode |
| enable_thinking | boolean | — | 思考模式,适用于支持该能力的模型 |
请求示例
curl -X POST https://api.tokenfab.cn/v1/chat/completions \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.2",
"messages": [
{"role": "system", "content": "你是一个翻译助手"},
{"role": "user", "content": "把以下英文翻译成中文:Hello World"}
],
"temperature": 0.7,
"max_tokens": 1024
}'响应示例
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"model": "glm-5.2",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "你好世界"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 28,
"completion_tokens": 5,
"total_tokens": 33
}
}Responses API
OpenAI Responses 协议兼容接口。内置工具(web_search、code_interpreter、web_extractor)仅在此协议下可用;鉴权与计费同 Chat Completions。
实现说明
端点与鉴权
POST https://api.tokenfab.cn/v1/responses鉴权与 Chat Completions 完全一致:请求头携带 Authorization: Bearer your-api-key,无需单独申请密钥。
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | ✓ | 模型 ID,如 glm-5.2 |
| input | string | array | 条件必填 | 部分模型可只用 instructions;多轮也可用 previous_response_id(部分模型支持) |
| instructions | string | — | 系统级指令,等价于 system 消息 |
| stream | boolean | — | 流式输出,默认 false |
| max_output_tokens | integer | — | 最大输出 Token 数;部分模型与 reasoning 同用时需大于思考预算 |
| temperature | number | — | 采样温度,0–2 |
| top_p | number | — | 核采样,0–1 |
| tools | array | — | 内置工具与函数定义,如 {"type":"web_search"},见「功能指南 / 内置工具」 |
| tool_choice | string | object | — | 指定工具可用;none 暂不生效 |
| reasoning | object | — | 推理强度配置(部分模型支持) |
| previous_response_id | string | — | 仅部分模型支持;支持时传入上一条已保存响应 ID,未保存的 ID 返回 400 |
| store | boolean | — | 部分模型缺省即保存响应(如 glm-5.2);不希望保存请显式传 store:false |
请求示例
curl -X POST https://api.tokenfab.cn/v1/responses \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.2",
"input": "今天北京天气如何?请用一句话回答,并给出来源。",
"instructions": "回答使用中文。",
"stream": false,
"max_output_tokens": 16384,
"temperature": 0.7,
"top_p": 0.9,
"tools": [{"type": "web_search"}],
"tool_choice": {"type": "web_search"},
"reasoning": {"effort": "low"},
"store": false
}'完整参数示例
流式输出
curl -X POST https://api.tokenfab.cn/v1/responses \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.2",
"input": "解释什么是异步任务。",
"stream": true
}'流式输出
stream: true 后,服务端会分段返回文字。读取 response.output_text.delta 获取内容,收到 response.completed 即结束;预算耗尽会收到 response.incomplete。事件顺序:created → output_item.added → output_text.delta → output_text.done → completed。不同模型可能另有 reasoning 事件,未知事件可忽略。
响应结构
{
"id": "021793159415275682…",
"object": "response",
"created_at": 1793159420,
"completed_at": null,
"error": null,
"incomplete_details": null,
"instructions": null,
"max_output_tokens": null,
"max_tool_calls": null,
"model": "glm-5.2",
"output": [
{
"id": "ws_974c7f6d-b7a0-4596-b5ce-87e1650d9768",
"type": "web_search_call",
"status": "completed",
"action": {
"type": "search",
"query": "今天北京天气",
"sources": [
{ "type": "url", "url": "https://m.tianqi.com/tongzhou/", "title": "北京通州天气" },
{ "type": "url", "url": "http://tj.weather.com.cn/tqyw/10/4837553.shtml", "title": "今日天气" }
]
}
},
{
"id": "rs_7444b9666b1b528f…",
"type": "reasoning",
"role": "assistant",
"content": [{ "type": "reasoning_text", "text": "根据搜索结果,北京今天…" }]
},
{
"id": "msg_192d744501644341…",
"type": "message",
"status": "completed",
"role": "assistant",
"content": [{
"type": "output_text",
"text": "今天北京天气晴朗,气温约1~15℃…(来源:天气网、中国天气网)",
"annotations": [],
"logprobs": []
}]
}
],
"previous_response_id": null,
"prompt_cache_key": null,
"reasoning": null,
"safety_identifier": null,
"service_tier": null,
"status": "completed",
"stop_reason": "stop",
"tools": null,
"usage": {
"input_tokens": 2520,
"input_tokens_details": { "cached_read_tokens": 0, "cached_write_tokens": 0, "cached_tokens": 0 },
"output_tokens": 143,
"output_tokens_details": { "reasoning_tokens": 22, "num_search_queries": 1 },
"total_tokens": 2663
},
"extra_fields": {
"request_type": "responses",
"original_model_requested": "glm-5.2",
"latency": 5037,
"chunk_index": 0
}
}如何读取响应
- 正文:
message.content[].text - 思考:
content[].reasoning_text或summary[].summary_text - 工具:搜索看
web_search_call,代码执行看code_interpreter_call store、stop_reason等字段可能缺失;请求参数也不一定回显
与 Chat Completions 的差异与选型
| 维度 | Chat Completions | Responses API |
|---|---|---|
| 端点 | /v1/chat/completions | /v1/responses |
| 输入形态 | messages 数组(role + content) | input + instructions(可选) |
| 输出读取 | choices[0].message.content | output[](SDK 提供 output_text 便捷字段) |
| usage 字段 | prompt_tokens / completion_tokens | input_tokens / output_tokens |
| 内置工具 | enable_web_search 快捷开关 | tools 通用机制,可组合多个工具 |
| 服务端多轮状态 | 无此概念 | 部分模型支持:保存上一条响应后传入其 ID |
选型建议:沿用已有 Chat Completions 集成的无需迁移;需要使用内置工具或与新协议生态(如 Codex 类 Agent 工具)对齐时选 Responses API。
兼容性限制
以下为常见限制,以实际响应为准。
多轮续写支持情况随模型不同
stream_options 支持情况不统一
document 输入支持情况不统一
store 与多轮续写
思考文本有两种格式
content[].reasoning_text 和 summary[].summary_text。tool_choice: none 暂不生效
tools。模型支持范围
模型范围
GET /v1/models 为准。| 状态 | 模型 |
|---|---|
| 可用 | deepseek-v4-flash、deepseek-v4-pro、deepseek-v4.1-flash、deepseek-v4.1-flash-1017、glm-5.2、glm-5.3、glm-5.3-flash、kimi-k3、kimi-k3.1-pro、kimi-k3.1-pro-highspeed、qwen3.7-plus、qwen3.7-max、qwen3.8-flash、qwen3.8-max |
| 暂不可用 | glm5.3-xy 系列、kimi-k2.6、kimi-k2.7-code、qwen3.7-max-2026-06-08(调用会返回错误) |
| 不适用 | 视频模型(走视频生成接口) |
模型列表 API
查询当前可用模型。
端点
GET https://api.tokenfab.cn/v1/models请求示例
curl https://api.tokenfab.cn/v1/models \
-H "Authorization: Bearer your-api-key"响应示例
{"object":"list","data":[
{"id":"aicc-doubao-seedance-2-0","object":"model","owned_by":"tokenfab"},
{"id":"deepseek-v4-flash","object":"model","owned_by":"tokenfab"},
{"id":"deepseek-v4-pro","object":"model","owned_by":"tokenfab"},
{"id":"glm-5.2","object":"model","owned_by":"tokenfab"},
{"id":"glm-5.3","object":"model","owned_by":"tokenfab"},
{"id":"happyhorse-1.1-i2v","object":"model","owned_by":"tokenfab"},
{"id":"happyhorse-1.1-r2v","object":"model","owned_by":"tokenfab"},
{"id":"happyhorse-1.1-t2v","object":"model","owned_by":"tokenfab"},
{"id":"kimi-k2.6","object":"model","owned_by":"tokenfab"},
{"id":"kimi-k2.7-code","object":"model","owned_by":"tokenfab"},
{"id":"kimi-k3","object":"model","owned_by":"tokenfab"},
{"id":"occupancy-hold","object":"model","owned_by":"tokenfab"},
{"id":"qwen3.7-max","object":"model","owned_by":"tokenfab"},
{"id":"qwen3.7-max-2026-06-08","object":"model","owned_by":"tokenfab"},
{"id":"qwen3.7-plus","object":"model","owned_by":"tokenfab"},
{"id":"viduq3-pro","object":"model","owned_by":"tokenfab"},
{"id":"viduq3-turbo","object":"model","owned_by":"tokenfab"}
]}限速与并发
速率以账号粒度计算。
速率限制 (RPM / TPM)
| 模型 | RPM | TPM |
|---|---|---|
| glm-5.2 | 200 | 3,000,000 |
| deepseek-v4-pro | 15,000 | 1,200,000 |
| qwen3.7-plus | 30,000 | 5,000,000 |
| qwen3.7-max | 30,000 | 5,000,000 |
注意
如有更高并发需求请联系技术支持扩容。超限返回 HTTP 429。
错误码
API 调用常见错误码及排查方法。
错误响应格式
{"error":{"code":"invalid_api_key","message":"身份验证失败,请检查 API Key"}}常见错误码
| HTTP | code | 类型 | 说明 | 解决方式 |
|---|---|---|---|---|
| 401 | invalid_api_key | Unauthorized | API Key 无效 | 检查 Authorization |
| 403 | — | Forbidden | 无权访问 | 检查权限 |
| 404 | — | Not Found | 模型不存在 | 检查 model |
| 429 | — | Rate Limit | 超限 | 降低频率 |
| 500 | — | Server Error | 服务端异常 | 等待重试 |
常见问题
如何优化成本?
选择适合任务的模型,减少不必要上下文,合理设置 max_tokens,开发阶段用小模型测试。
如何处理超长文本?
使用 glm-5.2 等大上下文模型,分段处理+合并结果,结合关键词检索或外部检索服务保留相关片段。
返回 429 怎么办?
并发超限。降低调用频率、指数退避重试或申请扩容。
流式和非流式计费有区别吗?
无区别,均按实际 prompt_tokens + completion_tokens 计费。
环境变量不生效?
检查:是否持久化到配置文件、是否重启 IDE、是否用了 sudo。
支持哪些编程语言?
TokenFab API 兼容 OpenAI SDK,因此支持 Python、Node.js、Go、Java 等所有有 OpenAI SDK 的语言。也可直接用 HTTP 请求调用。
如何选择适合的模型?
综合任务用 glm-5.2(旗舰、1M 上下文);编程场景用 deepseek-v4-pro;高并发简单任务用 qwen3.7-max。详见模型概览。
数据安全如何保障?
API 通信全程 HTTPS 加密。平台不会存储您的请求内容用于训练。Responses API 部分模型默认保存响应以支持多轮续写,如不希望保存请显式传 store:false。API Key 请妥善保管,不要硬编码到前端代码中。
视频生成支持哪些模型?
支持 Vidu(viduq3-pro / viduq3-turbo)和 HappyHorse(1.1-t2v / 1.1-i2v / 1.1-r2v)系列模型,覆盖文生视频、首/尾帧生视频和多模态参考生视频三种场景;其中参考图生视频 R2V 使用 HappyHorse 1.1-r2v。详见视频场景总览。
LangChain 集成
TokenFab API 通过 OpenAI 兼容接口接入 LangChain。
Chat Model
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="glm-5.2", api_key="your-api-key", base_url="https://api.tokenfab.cn/v1")
response = llm.invoke("介绍一下深度学习")💡 提示
LlamaIndex、Semantic Kernel 等兼容 OpenAI SDK 的框架均可直接接入。
视频生成场景说明
围绕文生视频(T2V)、首/尾帧生视频(I2V / FLF2V)与多模态参考生视频(R2V),快速理解 TokenFab 已上线视频模型的适用场景、输入方式与模型选型。
三类视频生成入口
文生视频
只输入文本提示词,模型生成完整视频。适合无图片素材时的创意探索。
首/尾帧生视频
输入单张图片让画面动起来,或提供首尾帧控制起点、终点和中间过渡。
多模态参考生视频
使用图片、视频或音频作为主体、风格或动作参考,素材类型以模型能力为准。
模型-场景支持矩阵
| 模型 | T2V | 首/尾帧 | 多模态参考 | 定位 |
|---|---|---|---|---|
| viduq3-pro | ✅ | ✅ | — | 质量优先 |
| viduq3-turbo | ✅ | ✅ | — | 速度优先 |
| happyhorse-1.1-t2v | ✅ | — | — | 专注文生 |
| happyhorse-1.1-i2v | — | ✅ | — | 专注图生 |
| happyhorse-1.1-r2v | — | — | ✅ | 专注参考图 |
按需求选择场景
- 没有图片素材,只有文字创意 → 文生视频 T2V
- 有图片希望让它动起来,或已设计首尾帧控制过渡 → 首/尾帧生视频 I2V / FLF2V
- 需要保持角色/商品/品牌风格一致 → 多模态参考生视频 R2V
文生视频 T2V
只用 Prompt 从文字创意生成视频。下方以通用 POST /v1/videos 接口为例,具体端点与参数以所选模型的调用说明为准。
使用统一端点创建任务
curl -X POST https://api.tokenfab.cn/v1/videos \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1.1-t2v",
"prompt": "一只金色小狗在草地上奔跑,阳光明媚,镜头跟随",
"seconds": "5",
"size": "1080P"
}'
# 响应示例
# {"id":"vid-abc123","status":"queued","created_at":"2026-07-01T12:00:00Z"}模式选择规则
| 模式 | 必须传 | 必须省略 | 参考模型 |
|---|---|---|---|
| 文生视频 T2V | prompt | 省略 input_reference、last_frame、reference_images | happyhorse-1.1-t2v、viduq3-turbo |
| 首/尾帧生视频 I2V / FLF2V | input_reference + prompt;双帧追加 last_frame | 不要与 reference_images 组合 | happyhorse-1.1-i2v / viduq3-turbo |
| 多模态参考 R2V | reference_images + prompt | 不要传 last_frame;1-9 张 | happyhorse-1.1-r2v |
统一请求字段速查
| 字段 | 类型 | 用途 |
|---|---|---|
model | string | 必填,使用 /v1/models 返回的模型 ID,如 happyhorse-1.1-t2v、viduq3-turbo |
prompt | string | 必填,主体/场景/动作/镜头/风格/光影 |
input_reference | string | I2V源图或FLF2V首帧,公网URL或Base64 |
last_frame | string | FLF2V尾帧 |
reference_images | string[] | R2V参考图数组 |
seconds | string | 视频秒数,如 "3" |
size | string | 分辨率,如 720P、1080P |
watermark | boolean | 水印开关 |
negative_prompt | string | 不希望出现的内容描述 |
seed | integer | 可复现随机种子 |
异步生命周期
1. 创建
POST /v1/videos 返回 id
2. 轮询
GET /v1/videos/{id}
3. 完成
status=completed
4. 下载
status=completed 后取 videos[0].url(或 url)直接下载
轮询任务状态
# 查询任务状态
curl https://api.tokenfab.cn/v1/videos/vid-abc123 \
-H "Authorization: Bearer your-api-key"
# 响应示例(处理中,可能携带进度 progress)
# {"id":"vid-abc123","status":"in_progress","progress":45}
# 响应示例(失败)
# {"id":"vid-abc123","status":"failed","error":{"message":"..."}}
# 响应示例(已完成)
# {"id":"vid-abc123","status":"completed","videos":[{"url":"https://cdn.tokenfab.cn/...mp4"}],"url":"https://cdn.tokenfab.cn/...mp4"}
# 下载视频(url 取自上方完成响应,无需 API Key)
curl -o video.mp4 "https://cdn.tokenfab.cn/...mp4"注意
视频生成任务耗时较长。创建不是幂等的——网络超时后先排查已有任务,不要盲目重复 POST。
失败处理
任务处理失败时 HTTP 状态码通常仍是 200,请务必检查响应体中的 status 字段:status 为 failed 表示任务失败,可从 error 字段获取具体原因(如内容违规、生成超时等)。状态取值为 queued / in_progress / completed / failed。此外,上游取消或超时的任务还可能返回 cancelled / expired,二者同为终态——凡非 queued 或 in_progress 的状态,一律按终态停止轮询。
首/尾帧生视频 I2V / FLF2V
输入一张图片让画面动起来,或提供首尾帧控制从起点到终点的过渡;单帧、双帧及首尾帧的具体要求以所选模型为准。
使用统一端点创建任务
单帧输入示例
curl -X POST https://api.tokenfab.cn/v1/videos \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1.1-i2v",
"prompt": "镜头缓慢推进,女孩微微转头微笑",
"input_reference": "https://example.com/photo.jpg",
"seconds": "5",
"size": "1080P"
}'首尾双帧示例
curl -X POST https://api.tokenfab.cn/v1/videos \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "viduq3-turbo",
"prompt": "从白天到黑夜的城市天际线变化,灯光逐渐亮起",
"input_reference": "https://example.com/first_frame.jpg",
"last_frame": "https://example.com/last_frame.jpg",
"seconds": "5",
"size": "1080P"
}'接入检查清单
- 请求构造:单帧示例使用
model+input_reference+prompt;双帧追加last_frame。不同模型的首帧、尾帧要求以调用说明为准,不与reference_images混用。 - 素材要求:图片清晰、主体明确、遮挡少;双帧的主体、风格和构图尽量连续,跨度较大时在 Prompt 中补充运动路径。
- 图片格式:示例使用公网可访问 URL;按模型接口支持情况也可使用完整 Base64 Data URL。不要传本地路径或私有内网 URL。
- 模型选择:单图示例采用 HappyHorse I2V;双帧示例采用 ViduQ3-Turbo,也可按质量或速度需求选择支持该场景的模型。
生产接入建议
轮询退避
从2-5秒开始逐步退避,设置业务超时。
幂等与追踪
保存请求ID和返回的video_id,超时后先查日志。
安全边界
不要在前端暴露 API Token;控制公网 URL 有效期。
多模态参考生视频 R2V
使用图片、视频或音频作为主体、风格、构图或动作的一致性参考。支持的素材类型和数量以所选模型为准,下方保留图片参考的接入示例。
使用统一端点创建任务
curl -X POST https://api.tokenfab.cn/v1/videos \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1.1-r2v",
"prompt": "[Image 1] 中的人物在街上行走,保持穿搭风格一致",
"reference_images": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"seconds": "5",
"size": "1080P"
}'接入检查清单
- 请求构造:传入
model+reference_images+prompt,省略last_frame。 - 图片数量:HappyHorse 支持 1-9 张参考图;Vidu 不支持多模态参考生视频。
- Prompt 技巧:用 [Image 1]、[Image 2] 引用参考图顺序,说明哪些元素必须一致、哪些可以变化。
- 素材类型:需要视频、音频参考时,先确认所选模型支持,再按对应接口组织素材;参考素材不与首尾帧输入混用。
关键区别
首/尾帧生视频重点是让输入图动起来或控制起止过渡;R2V 重点是参考输入图的特征,生成仍保持一致性的新画面。