GLM-5.3正式上线,立即体验
立即体验

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

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

配置项OpenAITokenFab
api_keysk-xxx...tk-xxxx...
base_urlhttps://api.openai.com/v1https://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_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 月 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.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())

💡 提示

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

内置工具

通过 Responses API 使用联网搜索、代码执行和网页抽取。

工具名请写准确

未知工具名可能被忽略,不会报错;请使用本页列出的名称。

检索公开网页并附来源。

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

模型支持

qwen3.7-plus / qwen3.7-max 可用;glm-5.2 / glm-5.3 暂不支持。

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

如何选择

需要多个工具时用 Responses API;只需要联网搜索时,继续用 enable_web_search。

计费说明

工具计费方式
web_search¥0.03/次
code_interpreter当前不单独计费
web_extractor当前不单独计费

Chat Completions API

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

端点

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

请求参数

参数类型必填说明
modelstring✓模型 ID
messagesarray✓消息数组
streamboolean—流式输出
temperaturenumber—采样温度
max_tokensinteger—最大输出
enable_web_searchboolean—联网搜索
toolsarray—工具定义
response_formatobject—JSON 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
  }
}

Responses API

OpenAI Responses 协议兼容接口。内置工具(web_search、code_interpreter、web_extractor)仅在此协议下可用;鉴权与计费同 Chat Completions。

实现说明

Responses API 通过协议转换层提供,不同模型可能有差异,以实际响应为准。

端点与鉴权

POST https://api.tokenfab.cn/v1/responses

鉴权与 Chat Completions 完全一致:请求头携带 Authorization: Bearer your-api-key,无需单独申请密钥。

请求参数

参数类型必填说明
modelstring✓模型 ID,如 glm-5.2
inputstring | array条件必填部分模型可只用 instructions;多轮也可用 previous_response_id(部分模型支持)
instructionsstring—系统级指令,等价于 system 消息
streamboolean—流式输出,默认 false
max_output_tokensinteger—最大输出 Token 数;部分模型与 reasoning 同用时需大于思考预算
temperaturenumber—采样温度,0–2
top_pnumber—核采样,0–1
toolsarray—内置工具与函数定义,如 {"type":"web_search"},见「功能指南 / 内置工具」
tool_choicestring | object—指定工具可用;none 暂不生效
reasoningobject—推理强度配置(部分模型支持)
previous_response_idstring—仅部分模型支持;支持时传入上一条已保存响应 ID,未保存的 ID 返回 400
storeboolean—部分模型缺省即保存响应(如 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
  }'

完整参数示例

示例为单次调用,并显式传 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 CompletionsResponses API
端点/v1/chat/completions/v1/responses
输入形态messages 数组(role + content)input + instructions(可选)
输出读取choices[0].message.contentoutput[](SDK 提供 output_text 便捷字段)
usage 字段prompt_tokens / completion_tokensinput_tokens / output_tokens
内置工具enable_web_search 快捷开关tools 通用机制,可组合多个工具
服务端多轮状态无此概念部分模型支持:保存上一条响应后传入其 ID

选型建议:沿用已有 Chat Completions 集成的无需迁移;需要使用内置工具或与新协议生态(如 Codex 类 Agent 工具)对齐时选 Responses API。

兼容性限制

以下为常见限制,以实际响应为准。

多轮续写支持情况随模型不同

glm-5.2、deepseek-v4-pro、qwen3.7-plus/max、qwen3.8-flash/max 可用;deepseek-v4-flash 会忽略,其他模型可能返回 400/403。

stream_options 支持情况不统一

glm-5.2 两种模式均返回 400;glm-5.3 非流式返回 400;其他模型支持。为兼容所有模型,建议不要携带。

document 输入支持情况不统一

deepseek-v4-flash、glm-5.2 返回 400;部分模型虽返回 200 也可能忽略文档内容。请把内容作为文本放进 input。

store 与多轮续写

部分模型缺省即保存响应(如 glm-5.2);不希望保存请显式传 store:false。未保存的响应 ID 无法续写。

思考文本有两种格式

兼容 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)

模型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
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

文生视频

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

I2V / FLF2V

首/尾帧生视频

输入单张图片让画面动起来,或提供首尾帧控制起点、终点和中间过渡。

R2V

多模态参考生视频

使用图片、视频或音频作为主体、风格或动作参考,素材类型以模型能力为准。

模型-场景支持矩阵

模型T2V首/尾帧多模态参考定位
viduq3-pro✅✅—质量优先
viduq3-turbo✅✅—速度优先
happyhorse-1.1-t2v✅——专注文生
happyhorse-1.1-i2v—✅—专注图生
happyhorse-1.1-r2v——✅专注参考图

按需求选择场景

  1. 没有图片素材,只有文字创意 → 文生视频 T2V
  2. 有图片希望让它动起来,或已设计首尾帧控制过渡 → 首/尾帧生视频 I2V / FLF2V
  3. 需要保持角色/商品/品牌风格一致 → 多模态参考生视频 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"}

模式选择规则

模式必须传必须省略参考模型
文生视频 T2Vprompt省略 input_reference、last_frame、reference_imageshappyhorse-1.1-t2v、viduq3-turbo
首/尾帧生视频 I2V / FLF2Vinput_reference + prompt;双帧追加 last_frame不要与 reference_images 组合happyhorse-1.1-i2v / viduq3-turbo
多模态参考 R2Vreference_images + prompt不要传 last_frame;1-9 张happyhorse-1.1-r2v

统一请求字段速查

字段类型用途
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. 下载

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 重点是参考输入图的特征,生成仍保持一致性的新画面。