跳到主要内容

从 OpenAI 迁移到图灵

如果你的代码已经用 OpenAI Python / Node.js / Java SDK,迁过来通常只需改两处:base_url 和 api_key。下面是最小 diff 与常见迁移场景。

核心 diff(Python)​

from openai import OpenAI

client = OpenAI(
- api_key=os.environ["OPENAI_API_KEY"],
+ api_key=os.environ["TURING_API_KEY"],
+ base_url="https://live-turing.cn.llm.tcljd.com/api/v1",
)

Node.js​

import OpenAI from "openai";

const client = new OpenAI({
- apiKey: process.env.OPENAI_API_KEY,
+ apiKey: process.env.TURING_API_KEY,
+ baseURL: "https://live-turing.cn.llm.tcljd.com/api/v1",
});

cURL​

-curl https://api.openai.com/v1/chat/completions \
+curl https://live-turing.cn.llm.tcljd.com/api/v1/chat/completions \
- -H "Authorization: Bearer $OPENAI_API_KEY" \
+ -H "Authorization: Bearer $TURING_API_KEY" \
-H "Content-Type: application/json" \
-d '{...}'

就这些。对普通 Chat Completions 请求,剩下的代码(messages、tools、stream、response_format 等)不用改。GPT-6 系列(Astra / Sol / Luna)的 reasoning 和工具调用请改用 Responses API,并按下方参数限制处理。


模型名的选择​

OpenAI 的模型名在图灵平台上加 turing/ 前缀。示例优先列近 6 个月推荐使用的模型;旧模型迁移请以 模型列表 / 聊天 的可用状态为准:

OpenAI 原名图灵平台名
gpt-6-astraturing/gpt-6-astra
gpt-6-solturing/gpt-6-sol
gpt-6-lunaturing/gpt-6-luna
gpt-5.6 / gpt-5.6-solturing/gpt-5.6-sol
gpt-5.6-terraturing/gpt-5.6-terra
gpt-5.6-lunaturing/gpt-5.6-luna
gpt-5.5turing/gpt-5.5
gpt-5.4turing/gpt-5.4
gpt-5.4-minituring/gpt-5.4-mini
gpt-5.4-nanoturing/gpt-5.4-nano
text-embedding-3-smallturing/text-embedding-3-small

图灵平台还支持跨厂商模型(用同一套 OpenAI SDK 调用 Claude / Gemini / Qwen),模型名没有 turing/ 前缀例如 claude-sonnet-5、qwen-plus-latest。完整列表见 模型列表 / 聊天。

GPT-6 系列提供兼容别名:裸 gpt-6-astra / gpt-6-sol / gpt-6-luna 会路由到对应的 turing/ 模型。GPT-5.6 系列也提供兼容别名:裸 gpt-5.6 会路由到旗舰型号 Sol,裸 gpt-5.6-sol / terra / luna 也会路由到对应的 turing/ 模型。新代码仍建议显式使用完整平台模型 ID,便于日志和配置保持一致。


功能对照表​

功能OpenAI 原生图灵平台
Chat Completions✅✅ 完全兼容
Responses API✅✅(见 OpenAI Responses)
GPT-6 Astra 支持原生 web_search;其它内置工具改用 function 或 MCP
流式 SSE✅✅
工具调用✅✅
Structured Output (response_format)✅✅
Vision / Multimodal✅✅(图像 + 音频 + 视频 + 文件)
Assistants / Threads✅⚠ Turing Assistant 规划中;临时请用 Chat Completions + 自己管状态
Embeddings✅✅
Images✅✅(/v1/images/generations、/edits、/scales)
Audio Speech (TTS)✅✅
Audio Transcriptions (STT)✅✅(异步任务模型,见 STT)
Realtime✅✅(WebSocket)
Fine-tuning✅❌ 不提供
Batch API✅⚠ 未公开

图灵新增:turing_options​

迁过来后,你可以在顶层加一个 turing_options 字段享受平台能力:

response = client.chat.completions.create(
model="turing/gpt-5.4-mini",
messages=[...],
extra_body={
"turing_options": {
"timeout": 30,
"max_retries": 2,
"fallbacks": ["turing/claude-sonnet-5"]
}
}
)
字段作用
timeout服务端超时(0–300s)
max_retries自动重试次数(1–3),仅对 429/5xx/超时
fallbacks主模型失败时自动切备用模型

详见 超时、重试与 Fallback。


常见 gotchas​

  • 模型名前缀:多数 Azure 模型忘加 turing/ 会返回 404;GPT-6 系列(裸 gpt-6-astra / gpt-6-sol / gpt-6-luna)与 GPT-5.6 系列已配置兼容别名,裸 gpt-6 不可用;跨厂商的 claude-*、gemini-* 也不要求该前缀
  • GPT-6 参数:GPT-6 Astra / Sol / Luna 通过 Responses API 调用工具;不要发送 temperature、top_p 或 logprobs,推理强度使用 reasoning.effort 的 low / medium / high / xhigh / max
  • Assistants API:目前不支持,迁过来的 Assistants 代码要改造成 Chat Completions + 本地状态
  • top_logprobs:部分厂商(非 OpenAI)不返回
  • logit_bias:部分小模型忽略
  • Responses 的 web_search 内置工具:GPT-6 Astra 支持,使用方式见 联网搜索 → GPT-6 Astra;其它模型请改用 tools 自定义函数 + 独立搜索端点
  • OpenAI SDK 默认超时:客户端也有超时,建议 OpenAI(timeout=60) 显式设得比 turing_options.timeout 长

迁移后立刻能用的平台能力​

  • 跨厂商切模型:同一段代码换模型名即可从 GPT 切到 Claude / Gemini / Qwen
  • Fallback 链:主模型 429 时自动切备用
  • 统一计费:计费与用量 一个面板看所有厂商花费
  • 请求追踪:X-Turing-Trace-Id 给排查带来一致性
  • Prompt 缓存:Claude 的 cache_control 在这里也能用,降 90% 输入成本

See also​