把 OpenAI SDK 接到 Thklumi
如果你已经会调用 OpenAI,那么接入 Thklumi 只需要改两处:把 base_url 换成 Thklumi 的地址,把 api_key 换成你在控制台创建的 sk-lumi 密钥。模型名称可以继续用你在模型页看到的别名,例如 deepseek-v4-flash、gpt-5.5。
最重要的一句话
SDK 不用换,业务代码也不用大改。只要把 base URL 设置为 https://api.thklumi.com/v1,再使用你的 Thklumi API Key 就可以开始请求。
先选对接口
现在很多模型厂商还主要支持旧版 OpenAI 协议。Thklumi 会同时兼容新旧两种调用方式:老项目继续用 chat.completions,新项目也可以用 responses.create。
大多数模型:用 client.chat.completions.create()
DeepSeek、DMX、很多 OpenAI-compatible 中转商都支持这个接口。普通聊天、流式输出、绝大多数业务场景都先选它。
新 OpenAI 模型:用 client.responses.create()
新版 OpenAI SDK 可以继续使用 responses.create。即使上游暂时只支持 chat.completions,Thklumi 也会在网关层完成协议转换。
创建 API 密钥
普通对话调用
这是最推荐的接入方式。你只需要把 OpenAI SDK 的 base_url 指向 Thklumi,model 填模型别名,messages 按 OpenAI 原格式传入即可。
from openai import OpenAI
client = OpenAI(
api_key="sk-lumi-你的密钥",
base_url="https://api.thklumi.com/v1",
)
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[
{"role": "user", "content": "用一句话介绍你自己"}
],
)
print(response.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-lumi-你的密钥",
baseURL: "https://api.thklumi.com/v1",
});
const response = await client.chat.completions.create({
model: "deepseek-v4-flash",
messages: [
{ role: "user", content: "用一句话介绍你自己" },
],
});
console.log(response.choices[0].message.content);curl https://api.thklumi.com/v1/chat/completions \
-H "Authorization: Bearer sk-lumi-你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-flash",
"messages": [
{"role": "user", "content": "用一句话介绍你自己"}
]
}'流式返回
如果你希望像 ChatGPT 一样边生成边显示,把 stream 设置为 true。服务端会返回 SSE 数据流,前端或后端按 chunk 逐段读取。
stream = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "写一个三步上线检查清单"}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")Responses API
Responses 是 OpenAI 新接口。Thklumi 会优先调用上游原生 Responses;如果上游暂不支持,会自动转换到 chat.completions 再把结果包装回 Responses 格式。
response = client.responses.create(
model="gpt-5.5",
input="请用三句话解释什么是 API 网关",
)
print(response.output_text)常见错误怎么排查
上线前检查清单
密钥只放后端
不要把 sk-lumi 密钥写到浏览器代码、App 客户端或公开 Git 仓库。前端应请求你自己的后端。
默认使用 chat.completions
除非模型明确要求 Responses API,否则优先接 chat.completions,兼容性最高。
给 429/502 加重试
推荐最多重试 2 到 3 次,并使用指数退避;用户取消请求时要及时停止流式连接。
上线后看请求日志
通过日志页检查模型、状态码、token 和花费。出现异常时用 request_id 快速定位。