TensorFusion Docs

客户端接入(Claude Code / Codex CLI / SDK)

一键脚本把 Claude Code、Codex CLI 指向网关,以及 OpenAI / Anthropic SDK 配置。

把现成的 AI 客户端指向无界模型云(Wujie Model Cloud)只需切换 Base、Key——数据面是 https://api.tos.run,鉴权用以 gk_ 开头的网关 API Key。下面给出 Claude Code、Codex CLI 的一键安装脚本,以及 OpenAI / Anthropic SDK 的手动配置。

私有化部署接入方式一致,把 api.tos.run 换成你自己的数据面域名即可 → 企业私有化部署

所有接入的 Base 都是数据面 https://api.tos.run(不是控制台 https://ai.tos.run)。控制台只用于浏览器登录、建 Key、看用量。

Codex CLI

一键安装脚本会写入 ~/.codex/config.toml 的命名 provider 段 [model_providers.tos-run],并把 Key 写入独立环境变量 TOS_API_KEY

curl -fsSL https://tos.run/install/codex.sh | bash -s -- --key gk_YOUR_KEY
irm https://tos.run/install/codex.ps1 -OutFile setup-codex.ps1
.\setup-codex.ps1 -Key gk_YOUR_KEY

脚本写入的 ~/.codex/config.toml 等价于:

model_provider = "tos-run"
model = "gpt-5.3-codex"
model_reasoning_effort = "medium"
preferred_auth_method = "apikey"

[model_providers.tos-run]
name = "Tensor Gateway"
base_url = "https://api.tos.run/v1"
env_key = "TOS_API_KEY"
wire_api = "responses"
request_max_retries = 0
stream_max_retries = 0

关键点:

  • base_url = https://api.tos.run/v1wire_api = responses(Codex 的 responses 协议)。
  • env_key = TOS_API_KEY:Codex 从该环境变量读取 Key(脚本会写入 ~/.zshrc / ~/.bashrc)。
  • model_provider = tos-run:把默认 provider 切到网关命名段,否则 Codex 会路由到内置 openai provider 并 401。
  • 具体 model 以控制台展示的可用模型为准,建议作为配置项管理。

不要复用 OPENAI_API_KEY 作为网关 Key。Codex 内置 openai provider 读取 OPENAI_API_KEY,复用会(1)覆盖你真实的 OpenAI Key,(2)让 Codex 无法区分 Key 归属。一定要用独立的 TOS_API_KEY

如果还没装 Codex:npm install -g @openai/codex

Claude Code

一键安装脚本会写入 ~/.claude/settings.jsonenv 块,把 Claude Code 指向网关的 Anthropic 兼容端点。

curl -fsSL https://tos.run/install/claude.sh | bash -s -- --key gk_YOUR_KEY

脚本写入的 ~/.claude/settings.json 等价于(已存在的其它键会被保留 / 合并):

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.tos.run",
    "ANTHROPIC_AUTH_TOKEN": "gk_YOUR_KEY"
  }
}

关键点:

  • ANTHROPIC_BASE_URL = https://api.tos.run(注意是数据面,不带 /v1,Claude Code 自行拼接 /v1/messages)。
  • ANTHROPIC_AUTH_TOKEN = gk_YOUR_KEY:以 Authorization: Bearer 形式发往网关。

不要设置全局 ANTHROPIC_API_KEY——它的优先级高于 settings.jsonenv 块,会绕过网关把请求发到原生 Anthropic。同理,shell 里导出的 ANTHROPIC_BASE_URL 若指向别处也会覆盖 settings.json。安装脚本检测到这类冲突会发出警告,按提示 unset ANTHROPIC_API_KEY / unset ANTHROPIC_BASE_URL 即可。

如果还没装 Claude Code:npm install -g @anthropic-ai/claude-code

OpenAI SDK

OpenAI 兼容接口,base_urlhttps://api.tos.run/v1,Key 用 gk_ 网关 Key。

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.tos.run/v1",
    api_key=os.environ["TOS_API_KEY"],  # gk_ 开头的网关 Key
)

resp = client.chat.completions.create(
    model="qwen-plus",        # 具体模型以控制台为准
    messages=[{"role": "user", "content": "用一句话介绍一下你自己。"}],
)
print(resp.choices[0].message.content)
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.tos.run/v1",
  apiKey: process.env.TOS_API_KEY, // gk_ 开头的网关 Key
});

const resp = await client.chat.completions.create({
  model: "qwen-plus", // 具体模型以控制台为准
  messages: [{ role: "user", content: "用一句话介绍一下你自己。" }],
});
console.log(resp.choices[0].message.content);

部分 OpenAI 兼容客户端会从环境变量 OPENAI_API_KEY 自动读取 Key——它的优先级通常更高,可能绕过你在代码里设的网关 Key。建议显式传入 api_key,并用独立的 TOS_API_KEY 存放网关 Key。

Anthropic SDK

Anthropic 原生 Messages 接口,base_urlhttps://api.tos.run(SDK 会拼接 /v1/messages)。网关在数据面接受 Authorization: Bearer gk_...,因此用 auth_token 传入网关 Key。

import os
from anthropic import Anthropic

client = Anthropic(
    base_url="https://api.tos.run",
    auth_token=os.environ["TOS_API_KEY"],  # → Authorization: Bearer gk_...
)

msg = client.messages.create(
    model="claude-sonnet-4-x",  # 具体模型以控制台为准
    max_tokens=1024,
    messages=[{"role": "user", "content": "用三句话介绍一下你自己。"}],
)
print(msg.content)
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://api.tos.run",
  authToken: process.env.TOS_API_KEY, // → Authorization: Bearer gk_...
});

const msg = await client.messages.create({
  model: "claude-sonnet-4-x", // 具体模型以控制台为准
  max_tokens: 1024,
  messages: [{ role: "user", content: "用三句话介绍一下你自己。" }],
});
console.log(msg.content);

统一用 gk_ 开头的网关 Key,不要混用原生厂商 Key。Anthropic 原生 Messages 的参数、流式与工具调用细节见 Claude 对话 API;错误处理与重试见 错误码与错误处理限流与配额

目录