TokenFab 文档中心

大模型推理服务平台,兼容 OpenAI SDK,帮助开发者快速构建 AI 应用。

first_call.py
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

  1. 访问 TokenFab 控制台,登录或注册。
  2. 进入 控制台 → API 密钥
  3. 点击「创建 API Key」,输入备注后确认。
  4. 复制密钥(格式: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.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 调用只需修改两行代码即可迁移;思考模式、联网搜索等扩展参数请按本页说明配置。

配置项OpenAITokenFab
api_keysk-xxx...tk-xxxx...
base_urlhttps://api.openai.com/v1https://api.tokenfab.cn/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_KEYAPI 密钥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)

接入 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
claude

Web Search 功能

TokenFab API 支持 Claude Code 的 Web Search 功能。当模型判断你的提问需要搜索时,它会返回包含引用结果的搜索内容。由于不同模型对 Web Search 用法有所差异,您可以参考 Claude Code 官方文档说明。

模型映射

使用 Claude Code,我们可将传入的 Claude 模型名自动映射:

Claude 模型映射到
claude-opus-4 / claude-opus-4-1glm-5.2
claude-sonnet-4 / claude-haiku-4glm-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 | bash

Windows (PowerShell)

iwr -useb https://openclaw.ai/install.ps1 | iex

配置默认模型

首次安装完成后会自动进入配置阶段;已安装的用户可通过 openclaw onboard --install-daemon 进入。

  1. 遇到 I understand this is personally-by-default... 请选择 Yes
  2. 选择 Setup node 推荐选 QuickStart
  3. 遇到 ModelAuth provider 请选择 TokenFab
  4. 遇到 Enter API key:请输入你的 TokenFab API Key
  5. 遇到 Default model:请填写模型名(glm-5.2
  6. 遇到 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 仓库并提供一套开箱即用的脚本和命令。

快速开始

  1. 执行 hermes setup
  2. 选择 Quick Setup
  3. 当提示选择模型提供商时,选择 TokenFab
  4. 输入你的 TokenFab API Key
  5. Base URL 填写:https://api.tokenfab.cn/v1
  6. 选择 glm-5.2 模型
  7. 继续完成其余配置选项

接入 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 Console · 代金券使用说明最后更新:2026-08-28 · 时间口径 UTC+8

TokenFab 域名变更公告

发布时间:2026 年 9 月 19 日

尊敬的 TokenFab 用户:

为规范网站域名管理、提升服务体验,TokenFab 官网域名将变更为 www.tokenfab.cn,原域名 www.tokenfab.com 将于 2026 年 9 月 21 日 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.21M128K最新旗舰,1M 超长上下文,支持联网搜索
glm-5.31M支持联网搜索与工具调用
kimi-k3旗舰模型,能力以接口返回为准
kimi-k2.7-code128K128K编程能力突出,数学推理强
kimi-k2.6能力以接口返回为准
deepseek-v4-pro1M384K深度推理与编程
deepseek-v4-flash1M384K快速响应,适合编程与 RAG
qwen3.7-max1M64K旗舰模型,适合复杂推理与智能体
qwen3.7-plus128K96K质量、速度与成本均衡

视频模型

模型 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,构建智能体应用。

工作原理

  1. 发送请求。携带用户问题和工具定义。
  2. 模型返回 tool_calls。函数名和参数。
  3. 执行工具。获取结果。
  4. 回传结果。再次调用获取最终回答。

完整示例

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())

💡 提示

适合批量处理。注意并发数不要超过模型限制。

Chat Completions API

调用大语言模型进行对话生成。

端点

POST https://api.tokenfab.cn/v1/chat/completions

请求参数

参数类型必填说明
modelstring模型 ID
messagesarray消息数组
streamboolean流式输出
temperaturenumber采样温度
max_tokensinteger最大输出
enable_web_searchboolean联网搜索
toolsarray工具定义
response_formatobjectJSON Mode
enable_thinkingboolean思考模式,适用于支持该能力的模型

请求示例

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
  }
}

模型列表 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)

模型RPMTPM
glm-5.22003,000,000
deepseek-v4-pro15,0001,200,000
qwen3.7-plus30,0005,000,000
qwen3.7-max30,0005,000,000

注意

如有更高并发需求请联系技术支持扩容。超限返回 HTTP 429。

错误码

API 调用常见错误码及排查方法。

错误响应格式

{"error":{"code":"invalid_api_key","message":"身份验证失败,请检查 API Key"}}

常见错误码

HTTPcode类型说明解决方式
401invalid_api_keyUnauthorizedAPI Key 无效检查 Authorization
403Forbidden无权访问检查权限
404Not Found模型不存在检查 model
429Rate Limit超限降低频率
500Server 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.cn/v1")
response = llm.invoke("介绍一下深度学习")

💡 提示

LlamaIndex、Semantic Kernel 等兼容 OpenAI SDK 的框架均可直接接入。

视频生成场景说明

围绕文生视频(T2V)、图生视频(I2V)、参考图生视频(R2V)与首尾帧生视频(FLF2V),快速理解 TokenFab 已上线视频模型的适用场景、输入方式与模型选型。

四类视频生成入口

T2V

文生视频

只输入文本提示词,模型生成完整视频。适合无图片素材时的创意探索。

I2V

图生视频

输入图片+提示词,让静态画面产生镜头运动、角色动作。

R2V

参考图生视频

参考图约束人物/商品/风格,降低主体与风格漂移。

FLF2V

首尾帧生视频

首帧+尾帧,模型补全中间过渡。适合转场、故事板补间。

模型-场景支持矩阵

模型T2VI2VR2VFLF2V定位
viduq3-pro质量优先
viduq3-turbo速度优先
happyhorse-1.1-t2v专注文生
happyhorse-1.1-i2v专注图生
happyhorse-1.1-r2v专注参考图

按需求选择场景

  1. 没有图片素材,只有文字创意 → 文生视频 T2V
  2. 有一张商品图/海报,希望让它动起来 → 图生视频 I2V
  3. 需要保持角色/商品/品牌风格一致 → 参考图生视频 R2V
  4. 已设计首帧和尾帧,控制起点与终点 → 首尾帧生视频 FLF2V

文生视频 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"}

模式选择规则

模式必须传必须省略参考模型
文生视频 T2Vprompt省略 input_referencelast_framereference_imageshappyhorse-1.1-t2v、viduq3-turbo
图生视频 I2Vinput_reference + prompt省略 last_framereference_imageshappyhorse-1.1-i2v
参考图 R2Vreference_images + prompt不要传 last_frame;1-9 张happyhorse-1.1-r2v
首尾帧 FLF2Vinput_reference + last_frame + prompt不要与 reference_images 组合viduq3-turbo

统一请求字段速查

字段类型用途
modelstring必填,使用 /v1/models 返回的模型 ID,如 happyhorse-1.1-t2v、viduq3-turbo
promptstring必填,主体/场景/动作/镜头/风格/光影
input_referencestringI2V源图或FLF2V首帧,公网URL或Base64
last_framestringFLF2V尾帧
reference_imagesstring[]R2V参考图数组
secondsstring视频秒数,如 "3"
sizestring分辨率,如 720P、1080P
watermarkboolean水印开关
negative_promptstring不希望出现的内容描述
seedinteger可复现随机种子

异步生命周期

1. 创建

POST /v1/videos 返回 id

2. 轮询

GET /v1/videos/{id}

3. 完成

status=completed

4. 下载

GET /v1/videos/{id}/content

轮询任务状态

# 查询任务状态
curl https://api.tokenfab.cn/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.cn/...mp4"}

# 下载视频
curl -O https://api.tokenfab.cn/v1/videos/vid-abc123/content \
  -H "Authorization: Bearer your-api-key"

注意

视频生成任务耗时较长。创建不是幂等的——网络超时后先排查已有任务,不要盲目重复 POST。

图生视频 I2V

输入一张图片并搭配提示词,让静态画面产生镜头运动、角色动作或环境变化。

使用统一端点创建任务

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"
  }'

接入检查清单

  • 请求构造:传入 model + input_reference + prompt,省略 last_framereference_images
  • 素材要求:图片清晰、主体明确、遮挡少;Prompt 中说明镜头运动方向和希望保持的元素。
  • 图片格式:只接受公网可访问 URL 或完整 Base64 Data URL。不要传本地路径或私有内网 URL。

生产接入建议

轮询退避

从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] 引用参考图顺序,说明哪些元素必须一致、哪些可以变化。

关键区别

I2V 重点是让输入图动起来;R2V 重点是参考输入图的特征,生成仍保持一致性的新画面。

首尾帧生视频 FLF2V

同时提供首帧和尾帧,由模型补全从A到B的中间过渡。适合产品转场、姿态变化、Before/After、故事板补间。

使用统一端点创建任务

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 + last_frame + prompt,禁止与 reference_images 同时传。
  • 素材建议:首尾帧主体、风格、构图应尽量连续。若两帧跨度较大,在 Prompt 中补充运动路径。
  • 推荐模型:ViduQ3-Pro(质量优先)或 ViduQ3-Turbo(速度优先)。