ThklumiThklumi
文档快速开始

快速开始

几分钟内完成第一次模型调用:创建密钥,发送一个请求,拿到模型回复。

你可以用它做什么

让你的 AI 编程助手来接入

把下面这段话粘贴到 Claude Code、Codex 或 Cursor。它会帮你配置密钥,并陪你完成第一次调用。

给 AI 助手的提示词
我想接入 Thklumi API。能替我运行的命令请直接运行,每一步用一句话说明在做什么;需要我亲自操作时,明确告诉我要做什么,并等我完成。

接口信息:
- Base URL(OpenAI 兼容):https://api.thklumi.com/v1
- 鉴权:请求头 Authorization: Bearer $THKLUMI_API_KEY
- 接入文档:/docs

步骤:
1. API 密钥:先检查环境变量 THKLUMI_API_KEY。如果没有,引导我到 /api-keys 创建密钥,并让我自己在终端里 export。绝对不要让我把密钥粘贴到对话里。用 GET https://api.thklumi.com/v1/models 确认密钥可用。
2. 问我想做什么,再选择合适的接口:Chat Completions(大多数场景)、Responses API 或 Anthropic Messages。
3. 发起第一次调用,把模型的回复展示给我。

接入协议与鉴权

同一把 sk- 密钥可以走 OpenAI、Anthropic、Gemini 三种原生协议,外加 OpenAI 兼容的图像接口,按你用的 SDK 或工具选择即可。每个模型支持哪些协议取决于它的上游渠道;协议不匹配时接口会返回 404。

协议端点鉴权请求头SDK 的 Base URL
OpenAI Chat CompletionsPOST /v1/chat/completionsAuthorization: Bearer sk-…https://api.thklumi.com/v1
OpenAI ResponsesPOST /v1/responsesAuthorization: Bearer sk-…https://api.thklumi.com/v1
Anthropic MessagesPOST /v1/messagesx-api-key: sk-… anthropic-version: 2023-06-01https://api.thklumi.com
Gemini 原生POST /v1beta/models/{model}:generateContentx-goog-api-key: sk-… 或 Authorization: Bearer sk-…https://api.thklumi.com
图像生成 / 编辑POST /v1/images/generations POST /v1/images/editsAuthorization: Bearer sk-…https://api.thklumi.com/v1
模型列表GET /v1/modelsAuthorization: Bearer sk-…https://api.thklumi.com/v1

最容易踩的坑:OpenAI SDK 的 base_url 要带 /v1;Anthropic SDK、Claude Code、google-genai SDK、Gemini CLI 都用根地址,不带 /v1。调用 Claude 优先用 Anthropic 原生协议,调用 Gemini 优先用 Gemini 原生协议,缓存、思考等能力都会原样保留。

第一次调用

Base URLhttps://api.thklumi.com/v1鉴权请求头Authorization: Bearer sk-…

1

设置密钥

在 API 密钥页点击「新建密钥」,复制后放进环境变量。不要写死在前端代码或公开仓库里;生产和测试建议各用一把密钥,方便单独停用。

export THKLUMI_API_KEY="sk-你的密钥"
2

发送请求

把 OpenAI SDK 的 base_url 指向 Thklumi,model 填模型 id,messages 沿用 OpenAI 格式。

curl https://api.thklumi.com/v1/chat/completions \
  -H "Authorization: Bearer $THKLUMI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-flash",
    "messages": [
      {"role": "user", "content": "用一句话介绍你自己"}
    ]
  }'
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "model": "deepseek-v4-flash",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "你好!我是一个 AI 助手,可以回答问题、写作和写代码。" },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 12, "completion_tokens": 21, "total_tokens": 33 }
}
3

读取结果

回复在 choices[0].message.content。想边生成边显示,就设置 stream: true,服务端会返回标准 SSE 数据流,以 data: [DONE] 结束。

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="")
data: {"choices":[{"index":0,"delta":{"content":"1. "}}]}

data: {"choices":[{"index":0,"delta":{"content":"确认密钥只放在后端"}}]}

data: [DONE]

更多接口

Responses API

Responses 是 OpenAI 的新接口,目前主要支持 GPT 系列模型。网关不做协议转换,请求体原样转发给上游(instructions、reasoning、tools、previous_response_id 等字段都支持);多轮对话直接回传上一轮的 response id 即可。

curl https://api.thklumi.com/v1/responses \
  -H "Authorization: Bearer $THKLUMI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "input": "请用三句话解释什么是 API 网关"
  }'

Responses 流式

设置 stream: true 后返回标准 Responses 流式事件:response.created → 多个 response.output_text.delta → response.completed,用量在最后的 response.completed 里。

stream = client.responses.create(
    model="gpt-5.5",
    input="写一个三步上线检查清单",
    stream=True,
)

for event in stream:
    if event.type == "response.output_text.delta":
        print(event.delta, end="")
event: response.created
data: {"type":"response.created","response":{"id":"resp_abc123","status":"in_progress"}}

event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":"1. "}

event: response.completed
data: {"type":"response.completed","response":{"id":"resp_abc123","status":"completed","usage":{...}}}

大多数场景:client.chat.completions.create()

DeepSeek、GLM、Kimi、Gemini 以及绝大多数 OpenAI 兼容模型都支持。普通聊天、流式输出、生产业务优先选它,兼容性最高。

GPT 系列:client.responses.create()

OpenAI 新接口,请求原样转发到支持 Responses 的上游渠道。目前主要是 GPT 系列;模型不支持时返回 404,可改用 chat.completions。

Anthropic 原生协议

我们提供 Anthropic 原生 Messages 接口(/v1/messages)。anthropic 官方 SDK、Claude Code 无需改代码,只要把 Base URL 指向本站、密钥用 sk- 开头即可;鉴权走 x-api-key(也兼容 Authorization: Bearer),model 填 claude-* 别名。请求直通 Anthropic 原生上游,anthropic-version 与 anthropic-beta 请求头原样转发,提示词缓存、扩展思考、工具调用都可正常使用。max_tokens 为必填。

curl https://api.thklumi.com/v1/messages \
  -H "x-api-key: $THKLUMI_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "用一句话介绍你自己"}
    ]
  }'
{
  "id": "msg_abc123",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4-6",
  "content": [{ "type": "text", "text": "你好!我是 Claude,一个 AI 助手。" }],
  "stop_reason": "end_turn",
  "usage": { "input_tokens": 14, "output_tokens": 18 }
}

记住:Anthropic SDK / Claude Code 用根地址 https://api.thklumi.com(不带 /v1),SDK 会自动补上 /v1/messages;这点和 OpenAI SDK 需要带 /v1 不一样。

Anthropic 流式(SSE)

设置 "stream": true。事件顺序:message_start → content_block_start → 若干 content_block_delta → content_block_stop → message_delta(含 stop_reason 与输出用量)→ message_stop。用官方 SDK 时直接用 messages.stream() 即可。

with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "写一个三步上线检查清单"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="")
event: message_start
data: {"type":"message_start","message":{"id":"msg_abc123","usage":{"input_tokens":16,"output_tokens":1}}}

event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"1. "}}

event: content_block_stop
data: {"type":"content_block_stop","index":0}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":42}}

event: message_stop
data: {"type":"message_stop"}

Gemini 原生协议

我们提供 Gemini 原生 generateContent 接口,google-genai SDK 和 Gemini CLI 只要改 Base URL 和密钥即可。模型名写在 URL 路径里;请求体(contents、systemInstruction、generationConfig、tools 等)原样转发给 Gemini 上游。鉴权用 x-goog-api-key,也兼容 Authorization: Bearer。

curl "https://api.thklumi.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $THKLUMI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {"role": "user", "parts": [{"text": "用一句话介绍你自己"}]}
    ]
  }'
{
  "candidates": [
    {
      "content": { "role": "model", "parts": [{ "text": "你好!我是 Gemini,一个 AI 助手。" }] },
      "finishReason": "STOP"
    }
  ],
  "usageMetadata": { "promptTokenCount": 8, "candidatesTokenCount": 12, "totalTokenCount": 20 },
  "modelVersion": "gemini-3.5-flash",
  "responseId": "gen-abc123"
}

Base URL 用根地址 https://api.thklumi.com(不带 /v1 也不带 /v1beta),SDK 会自己补 /v1beta/models/…。计费时思考 token(thoughtsTokenCount)按输出计。

Gemini 流式(SSE)

用 streamGenerateContent 并带上 ?alt=sse(google-genai SDK 和 Gemini CLI 默认就是这样)。每个 data 分片都是一个完整的 GenerateContentResponse,usageMetadata 为累计值。不支持不带 alt=sse 的 JSON 数组流。

curl "https://api.thklumi.com/v1beta/models/gemini-3.5-flash:streamGenerateContent?alt=sse" \
  -H "x-goog-api-key: $THKLUMI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {"role": "user", "parts": [{"text": "写一个三步上线检查清单"}]}
    ]
  }'

图像生成(GPT Image)

兼容 OpenAI Images API:POST /v1/images/generations,请求体填 model 和 prompt,size、quality、n、background、output_format 等参数原样转发。结果在 data[].b64_json(Base64 图片)。出图通常要几十秒,客户端超时建议设到 300 秒。

curl https://api.thklumi.com/v1/images/generations \
  -H "Authorization: Bearer $THKLUMI_API_KEY" \
  -H "Content-Type: application/json" \
  --max-time 300 \
  -d '{
    "model": "gpt-image-2",
    "prompt": "一只在键盘上打字的橘猫,插画风格",
    "size": "1024x1024"
  }'
{
  "created": 1760000000,
  "data": [
    { "b64_json": "iVBORw0KGgoAAAANSUhEUgAA..." }
  ]
}

编辑图像

POST /v1/images/edits,使用 multipart/form-data:model、prompt 为表单字段,image 为图片文件(可传多张),可选 mask。

curl https://api.thklumi.com/v1/images/edits \
  -H "Authorization: Bearer $THKLUMI_API_KEY" \
  --max-time 300 \
  -F model=gpt-image-2 \
  -F image=@cat.png \
  -F prompt="给这只猫戴一顶圣诞帽"

按实际返回的张数计费,单价见模型页;上游失败未出图不收费。暂不支持 stream(partial_images)。上传文件总大小上限 12MB。

快速模式(Fast mode)

在 Chat Completions 或 Responses 请求里加上 "service_tier": "fast",GPT 系列会走上游的优先处理通道,生成速度明显更快。旧写法 "priority" 同样有效,两者等价。

curl https://api.thklumi.com/v1/chat/completions \
  -H "Authorization: Bearer $THKLUMI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "service_tier": "fast",
    "messages": [
      {"role": "user", "content": "用一句话介绍你自己"}
    ]
  }'
  • 按标准价的 2 倍计费,只在上游确认按快速模式处理时才加价:响应里的 service_tier 为 "priority" 时按 2 倍收,上游降级为 "default" 时按标准价收。
  • 响应里的 service_tier 显示为 "priority" 是正常现象,代表本次请求确实走了快速通道。
  • 仅支持快速模式的 GPT 模型有效;其它模型会忽略这个参数并按标准价计费。
  • 计费依据会记在请求日志里,可在日志页按 request_id 核对。

可用模型

用下面的接口实时拉取当前账号可调用的完整模型列表;请求时 model 字段直接填返回里的 id(全小写)。也可以在模型页查看别名、价格与能力。

curl https://api.thklumi.com/v1/models \
  -H "Authorization: Bearer $THKLUMI_API_KEY"
{
  "object": "list",
  "data": [
    { "id": "deepseek-v4-flash", "object": "model" },
    { "id": "gpt-5.5", "object": "model" },
    { "id": "claude-sonnet-4-6", "object": "model" }
  ]
}

已覆盖 Anthropic Claude、OpenAI GPT、Google Gemini、DeepSeek、GLM、Kimi 等主流模型。标注 free 的为限时福利版本,可用模型以接口返回为准。 打开模型页 →

在 Agent 与桌面工具中接入

不想直接写 HTTP 请求?下面这些编程 Agent 和桌面客户端都能直接接入 Thklumi,按工具选对协议和 Base URL 即可。先看这张总表,再看对应工具的分步配置。

工具走的协议Base URL
Claude Code(终端 / VS Code)Anthropic Messageshttps://api.thklumi.com
Codex(CLI / IDE / ChatGPT 桌面版的 Codex 模式)OpenAI Responseshttps://api.thklumi.com/v1
Gemini CLIGemini 原生https://api.thklumi.com
Cherry StudioOpenAI / Anthropic / Gemini 任选https://api.thklumi.com
ClineAnthropic 或 OpenAI 兼容https://api.thklumi.com(Anthropic) https://api.thklumi.com/v1(OpenAI 兼容)
OpenCodeOpenAI 兼容https://api.thklumi.com/v1
CursorOpenAI 兼容(仅聊天)https://api.thklumi.com/v1
ChatGPT 聊天(网页 / 桌面)不支持自定义接口—

Claude Code

Claude Code 走 Anthropic 原生协议,提示词缓存、扩展思考、工具调用都会完整保留。Base URL 用根地址(不带 /v1),Claude Code 会自己拼 /v1/messages。

  1. 推荐写进用户级配置文件 ~/.claude/settings.json(Windows:%USERPROFILE%\.claude\settings.json),终端和 IDE 里启动的 Claude Code 都会读取。也可以用环境变量,见下方 bash / PowerShell 标签。
  2. 密钥用 ANTHROPIC_AUTH_TOKEN(以 Authorization: Bearer 发送)。用 ANTHROPIC_API_KEY 也可以,但首次启动会弹窗让你确认是否使用该密钥,选「否」之后会被静默忽略。
  3. 把 ANTHROPIC_DEFAULT_OPUS_MODEL / SONNET / HAIKU 设成模型页或 GET /v1/models 里存在的 claude-* 模型。Claude Code 默认会请求最新的官方模型名,本站没有对应模型时会报 404;HAIKU 用于后台小任务,可换成更便宜的模型。
  4. 启动 claude 后输入 /status,看到「Anthropic base URL」一行显示本站地址、「Auth token」一行显示 ANTHROPIC_AUTH_TOKEN,就说明已经走 Thklumi。
  5. VS Code 扩展:在 VS Code 的用户设置(settings.json)里加 claudeCode.environmentVariables,这是官方推荐的可靠位置。
  6. 排查时可以先用最下面的 cURL 直接请求一次:返回 {"id":"msg_…"} 说明地址和密钥都对;返回 401 说明密钥或请求头不对。
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.thklumi.com",
    "ANTHROPIC_AUTH_TOKEN": "sk-你的密钥",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-8",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-6",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-sonnet-4-6"
  }
}
"claudeCode.environmentVariables": [
  { "name": "ANTHROPIC_BASE_URL", "value": "https://api.thklumi.com" },
  { "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-你的密钥" },
  { "name": "ANTHROPIC_DEFAULT_SONNET_MODEL", "value": "claude-sonnet-4-6" }
]
curl -sS https://api.thklumi.com/v1/messages \
  -H "Authorization: Bearer sk-你的密钥" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-4-6","max_tokens":16,"messages":[{"role":"user","content":"ping"}]}'
  • 不要把密钥写进项目里的 .claude/settings.json(会被提交到 Git),用用户级配置或 .claude/settings.local.json。
  • 配置文件里的 env 会覆盖终端里 export 的同名变量。
  • 要切回 Claude 官方账号:删掉上面这些变量,在 Claude Code 里执行 /logout,再 /login。
  • Claude 桌面应用不读取这些环境变量和 settings.json,需在应用内 Help → Troubleshooting → Enable Developer Mode 后,到 Developer → Configure Third-Party Inference 里配置。
  • 如果遇到 anthropic-beta 相关的「Unexpected value」报错,可加环境变量 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1。

Codex(CLI / IDE 扩展 / ChatGPT 桌面版 Codex 模式)

Codex 只支持 OpenAI Responses 协议(wire_api = "chat" 已被官方移除),因此只能使用支持 Responses 的模型,目前主要是 GPT 系列。CLI、IDE 扩展和 ChatGPT 桌面版里的 Codex 模式共用同一个配置文件。

  1. 编辑用户级配置 ~/.codex/config.toml(Windows:%USERPROFILE%\.codex\config.toml),加入下面的 model_provider 配置。注意 model_provider 写在项目里的 .codex/config.toml 不生效。
  2. base_url 要带 /v1,Codex 会自己拼 /responses;model 填模型页里支持 Responses 的模型 id,例如 gpt-5.5。
  3. 把密钥放进环境变量 THKLUMI_API_KEY(名字要和 env_key 一致),不要写进 config.toml。
  4. 从桌面图标打开的 Codex / ChatGPT 应用读不到终端里 export 的变量,推荐写进 ~/.codex/.env,或用 PowerShell 设成用户级环境变量后完全重启应用。
  5. 改完配置后重启 Codex(CLI 重开终端,IDE 扩展重启 VS Code,桌面应用完全退出再打开)。
# 顶层字段必须写在第一个 [表] 之前
model = "gpt-5.5"
model_provider = "thklumi"

[model_providers.thklumi]
name = "Thklumi"
base_url = "https://api.thklumi.com/v1"
wire_api = "responses"
env_key = "THKLUMI_API_KEY"
# 写进 ~/.zshrc 或 ~/.bashrc
export THKLUMI_API_KEY="sk-你的密钥"

codex
  • ~/.codex/.env 里以 CODEX_ 开头的变量会被忽略,所以变量名不要用 CODEX_ 前缀。
  • provider id 不能用 openai、ollama、lmstudio 这几个保留名;第三方网关不要设置 requires_openai_auth。
  • Codex 0.134.0 起 --profile 读取的是 ~/.codex/<名字>.config.toml,旧教程里写在 config.toml 内的 [profiles.x] 已不生效。
  • Codex 云端任务必须登录 ChatGPT 账号,无法走 Thklumi。

Gemini CLI

Gemini CLI 走 Gemini 原生协议。Base URL 用根地址,CLI 会自己拼 /v1beta/models/…。

  1. 设置 GOOGLE_GEMINI_BASE_URL、GEMINI_API_KEY 两个环境变量。
  2. 额外设置 GEMINI_API_KEY_AUTH_MECHANISM=bearer,让 CLI 用 Authorization: Bearer 发送密钥。
  3. 启动时用 -m 指定模型页里存在的 Gemini 模型,例如 gemini -m gemini-3.5-flash。
export GOOGLE_GEMINI_BASE_URL="https://api.thklumi.com"
export GEMINI_API_KEY="sk-你的密钥"
export GEMINI_API_KEY_AUTH_MECHANISM="bearer"

gemini -m gemini-3.5-flash
  • 不要用 Google 账号登录方式启动,那样请求会直接发到 Google,不经过 Thklumi。

Cherry Studio

Cherry Studio 支持多种提供商类型,同一把密钥可以按模型分别建 OpenAI、Anthropic、Gemini 三个提供商,各走原生协议。

  1. 打开 设置 → 模型服务 → 添加,填写名称,并选择提供商类型: · OpenAI:DeepSeek、GLM、Kimi 等大多数模型 · OpenAI-Response:GPT 系列 · Anthropic:Claude 系列 · Gemini:Gemini 系列
  2. API 地址统一填 https://api.thklumi.com,Cherry Studio 会自动补上版本路径(OpenAI / Anthropic 补 /v1,Gemini 补 /v1beta)。填之前确认输入框下方的「预览」地址是否正确。
  3. API 密钥填 sk- 开头的 Key,然后点击「管理」或「添加」模型,模型 id 填模型页里的 id。
  4. 点击「检查」测试连通性,成功后在对话页选这个提供商下的模型即可。
  • 地址末尾加 # 表示原样使用、不自动补版本路径,一般不需要。
  • 旧版(1.x)文档里「地址以 / 结尾就不补 /v1」的规则在 2.x 已不适用,以预览地址为准。

Cline(VS Code)

Cline 可以走 Anthropic 原生协议(推荐用于 Claude),也可以走 OpenAI 兼容协议(用于其它模型)。

  1. 调用 Claude:API Provider 选「Anthropic」,勾选「Use custom base URL」,填 https://api.thklumi.com,API Key 填 sk- 密钥,再选择模型。
  2. 调用其它模型:API Provider 选「OpenAI Compatible」,Base URL 填 https://api.thklumi.com/v1,API Key 填 sk- 密钥,Model ID 填模型页里的 id。
  3. OpenAI Compatible 模式下可以在 Model Configuration 里补充上下文长度、是否支持图片等信息,Cline 会据此控制上下文。
  • Roo Code 已于 2026 年 5 月停止维护,建议迁移到 Cline。

OpenCode

OpenCode 通过自定义 provider 接入,全局配置在 ~/.config/opencode/opencode.json,也可以放在项目根目录的 opencode.json。

  1. 按下面的示例添加 provider,options.baseURL 填 https://api.thklumi.com/v1。
  2. 密钥用 {env:THKLUMI_API_KEY} 从环境变量读取,不要直接写进配置文件。
  3. models 里列出你要用的模型 id(以模型页为准)。
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "thklumi": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Thklumi",
      "options": {
        "baseURL": "https://api.thklumi.com/v1",
        "apiKey": "{env:THKLUMI_API_KEY}"
      },
      "models": {
        "deepseek-v4-flash": { "name": "DeepSeek V4 Flash" },
        "gpt-5.5": { "name": "GPT-5.5" }
      }
    }
  }
}
  • GPT 系列如需走 Responses 协议,可把 npm 换成 @ai-sdk/openai。

Cursor

Cursor 对自定义接口的支持有限,只适合在聊天里使用。

Cursor 的自定义密钥只对聊天模型生效,Tab 补全和后台 Agent 仍使用 Cursor 自己的模型;所有请求会先经过 Cursor 的服务器。Agent 模式使用自定义地址时可能发送 Responses 格式请求,部分模型会失败。

  1. 打开 Settings → Models,在 OpenAI API Key 处填 sk- 密钥;如果你的版本有「Override OpenAI Base URL」,填 https://api.thklumi.com/v1。
  2. 点击「Add model」添加模型页里的模型 id,然后在聊天(Ask 模式)里选择它。
  • 部分新版本和套餐已不显示「Override OpenAI Base URL」,这种情况下无法接入。

ChatGPT 网页版 / 桌面版

ChatGPT 的聊天功能(chatgpt.com 和桌面应用的普通对话)不支持自定义 API 地址或第三方密钥,无法接入 Thklumi。

  1. ChatGPT 桌面应用里的 Codex 模式会读取 ~/.codex/config.toml,可以按上面「Codex」一节配置后使用。
  2. 想要类似 ChatGPT 的聊天界面,可以用本站的「调试台」,或用 Cherry Studio 这类客户端接入。

凡是支持自定义 OpenAI Base URL 的客户端都可这样接入。如果工具是在界面里填写,把「API 地址 / Base URL」填 https://api.thklumi.com/v1,「密钥」填 sk- 开头的 Key 即可。

继续构建

上线前检查清单

  • 密钥只放后端

    不要把 sk- 密钥写到浏览器代码、App 客户端或公开 Git 仓库。前端应请求你自己的后端。

  • 按模型选协议

    Claude 走 /v1/messages,GPT 可用 chat.completions 或 responses,其余模型用 chat.completions。

  • 给 429/502/503 加重试

    推荐最多重试 2 到 3 次,并使用指数退避;用户取消请求时要及时停止流式连接。

  • 放宽超时

    大模型首字可能要几十秒,客户端读超时建议 300 秒以上,并优先使用流式。

  • 上线后看请求日志

    通过日志页检查模型、状态码、token 和花费。出现异常时用 request_id 快速定位。

故障排查

400请求参数不合法
看错误信息里指出的字段,例如 /v1/messages 缺少必填的 max_tokens,或 messages 为空。
401密钥不对,或没带鉴权请求头
OpenAI 格式用 Authorization: Bearer sk-...,Anthropic 格式用 x-api-key: sk-...。不要拿 OpenAI 的 sk-proj 或 Anthropic 官方的 sk-ant 密钥调用 Thklumi。
402余额不足
到控制台充值或降低模型成本。测试环境建议先用便宜模型确认链路。
403账号不可用
账号被停用或封禁时,所有 API 调用都会被拒绝。请登录网页端查看账号状态或联系支持。
404模型名不存在、该模型不支持当前协议,或接口路径写错
检查 base_url 是否以 /v1 结尾(Anthropic SDK 除外),模型名是否和 GET /v1/models 一致;Responses 目前主要支持 GPT 系列。
429请求太频繁
给客户端加退避重试。生产环境不要无限重试,避免把余额打空。
502上游模型服务返回错误
先重试一次;如果固定某个模型一直报错,换模型并把 request_id 发给我们。
503该模型当前没有可用渠道
稍后再试,或换同系列的其他模型。

常见问题

调用返回 401 怎么办?
先看协议和请求头是否对应:OpenAI 格式用 Authorization: Bearer sk-...,Anthropic 格式用 x-api-key: sk-...,Gemini 格式用 x-goog-api-key: sk-...(Gemini CLI 需设置 GEMINI_API_KEY_AUTH_MECHANISM=bearer)。再确认密钥复制完整、没有多余空格,且没有在控制台被删除;最后检查 base_url 是否该带 /v1。
用 Claude 效果差或成本高?
调用 Claude 请走 Anthropic 原生协议(/v1/messages)。通过 OpenAI 兼容格式调用可能用不上提示词缓存和扩展思考,长对话的成本会明显更高。
模型报 not found?
模型名以模型页或 GET /v1/models 返回的 id 为准(全小写,注意 - 和 . 的区别)。Claude 系列请用 claude-* 别名;另外确认这个模型支持你用的协议,比如 Responses 目前主要支持 GPT 系列。
第一个字迟迟不出来?
Opus 等大模型在思考阶段有几秒到几十秒延迟是正常现象,不代表失败。建议开启流式(stream),并把客户端读超时放宽到 300 秒以上,别用默认的十几秒。
密钥怎么放才安全?
只放在服务端的环境变量或密钥托管里,别硬编码、别提交 Git、别打进前端包。一旦怀疑外泄,先去控制台删掉旧 Key 再建新的。
下一篇模型广场