TokenFab 文档中心
大模型推理服务平台,兼容 OpenAI SDK,帮助开发者快速构建 AI 应用。
from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="https://api.tokenfab.com/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配置环境变量
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.com/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.com/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.com/v1 |
💡 提示
OpenAI SDK 的兼容功能可直接使用;思考模式、联网搜索等 TokenFab 扩展参数请参照对应章节。
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.com/anthropic |
ANTHROPIC_AUTH_TOKEN | 认证令牌(可选,等价于 API_KEY) | tk-xxxx... |
快速接入
文本对话
import anthropic
client = anthropic.Anthropic(
api_key="your-api-key",
base_url="https://api.tokenfab.com/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.com/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.com/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.com/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.com/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.com/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 可用的模型及能力。所有模型共用同一套 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.com/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.com/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.com/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.com/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,计入总用量。
Chat Completions API
调用大语言模型进行对话生成。
端点
POST https://api.tokenfab.com/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.com/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
}
}模型列表 API
查询当前可用模型。
端点
GET https://api.tokenfab.com/v1/models请求示例
curl https://api.tokenfab.com/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 加密。平台不会存储您的请求内容用于训练,数据仅在推理期间临时处理。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.com/v1")
response = llm.invoke("介绍一下深度学习")💡 提示
LlamaIndex、Semantic Kernel 等兼容 OpenAI SDK 的框架均可直接接入。
视频生成场景说明
围绕文生视频(T2V)、图生视频(I2V)、参考图生视频(R2V)与首尾帧生视频(FLF2V),快速理解 TokenFab 已上线视频模型的适用场景、输入方式与模型选型。
四类视频生成入口
文生视频
只输入文本提示词,模型生成完整视频。适合无图片素材时的创意探索。
图生视频
输入图片+提示词,让静态画面产生镜头运动、角色动作。
参考图生视频
参考图约束人物/商品/风格,降低主体与风格漂移。
首尾帧生视频
首帧+尾帧,模型补全中间过渡。适合转场、故事板补间。
模型-场景支持矩阵
| 模型 | T2V | I2V | R2V | FLF2V | 定位 |
|---|---|---|---|---|---|
| viduq3-pro | ✅ | ✅ | — | ✅ | 质量优先 |
| viduq3-turbo | ✅ | ✅ | — | ✅ | 速度优先 |
| happyhorse-1.1-t2v | ✅ | — | — | — | 专注文生 |
| happyhorse-1.1-i2v | — | ✅ | — | — | 专注图生 |
| happyhorse-1.1-r2v | — | — | ✅ | — | 专注参考图 |
按需求选择场景
- 没有图片素材,只有文字创意 → 文生视频 T2V
- 有一张商品图/海报,希望让它动起来 → 图生视频 I2V
- 需要保持角色/商品/品牌风格一致 → 参考图生视频 R2V
- 已设计首帧和尾帧,控制起点与终点 → 首尾帧生视频 FLF2V
文生视频 T2V
只用 Prompt 从文字创意生成视频。所有视频生成统一通过 POST /v1/videos 提交异步任务。
使用统一端点创建任务
curl -X POST https://api.tokenfab.com/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 | input_reference + prompt | 省略 last_frame 与 reference_images | happyhorse-1.1-i2v |
| 参考图 R2V | reference_images + prompt | 不要传 last_frame;1-9 张 | happyhorse-1.1-r2v |
| 首尾帧 FLF2V | input_reference + last_frame + prompt | 不要与 reference_images 组合 | viduq3-turbo |
统一请求字段速查
| 字段 | 类型 | 用途 |
|---|---|---|
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. 下载
GET /v1/videos/{id}/content
轮询任务状态
# 查询任务状态
curl https://api.tokenfab.com/v1/videos/vid-abc123 \
-H "Authorization: Bearer your-api-key"
# 响应示例(处理中)
# {"id":"vid-abc123","status":"processing","progress":45}
# 响应示例(已完成)
# {"id":"vid-abc123","status":"completed","url":"https://cdn.tokenfab.com/...mp4"}
# 下载视频
curl -O https://api.tokenfab.com/v1/videos/vid-abc123/content \
-H "Authorization: Bearer your-api-key"注意
视频生成任务耗时较长。创建不是幂等的——网络超时后先排查已有任务,不要盲目重复 POST。
图生视频 I2V
输入一张图片并搭配提示词,让静态画面产生镜头运动、角色动作或环境变化。
使用统一端点创建任务
curl -X POST https://api.tokenfab.com/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"
}'接入检查清单
- 请求构造:传入
model+input_reference+prompt,省略last_frame和reference_images。 - 素材要求:图片清晰、主体明确、遮挡少;Prompt 中说明镜头运动方向和希望保持的元素。
- 图片格式:只接受公网可访问 URL 或完整 Base64 Data URL。不要传本地路径或私有内网 URL。
生产接入建议
轮询退避
从2-5秒开始逐步退避,设置业务超时。
幂等与追踪
保存请求ID和返回的video_id,超时后先查日志。
安全边界
不要在前端暴露 API Token;控制公网 URL 有效期。
参考图生视频 R2V
参考图作为主体、商品、风格或构图的一致性约束,生成符合参考特征的新视频。重点是降低生成过程中的主体与风格漂移。
使用统一端点创建任务
curl -X POST https://api.tokenfab.com/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] 引用参考图顺序,说明哪些元素必须一致、哪些可以变化。
关键区别
I2V 重点是让输入图动起来;R2V 重点是参考输入图的特征,生成仍保持一致性的新画面。
首尾帧生视频 FLF2V
同时提供首帧和尾帧,由模型补全从A到B的中间过渡。适合产品转场、姿态变化、Before/After、故事板补间。
使用统一端点创建任务
curl -X POST https://api.tokenfab.com/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+last_frame+prompt,禁止与reference_images同时传。 - 素材建议:首尾帧主体、风格、构图应尽量连续。若两帧跨度较大,在 Prompt 中补充运动路径。
- 推荐模型:ViduQ3-Pro(质量优先)或 ViduQ3-Turbo(速度优先)。