使用文档 · 快速上手与透传自检
拿到 API key 后,照本文从上到下跑一遍即可:先把 key 跑通,再用 30 秒确认请求是真透传到上游大模型,没有被换成廉价模型。
本文所有命令可直接复制运行,把示例里的 $KEY 换成你自己的 key 即可。
# 先把 key 和地址设成环境变量,后面命令直接复用
export KEY="sk-你的key"
export BASE="https://api.llmvalet.com"
一、查可用模型
curl -s $BASE/v1/models -H "Authorization: Bearer $KEY" | jq '.data[].id'
当前提供 Claude 与 OpenAI 两家官方直连模型。模型 ID 一律以 /v1/models 实际返回为准——model 字段必须填真实存在的 ID,填未上架的名字会返回 model not found。Claude 系常用 ID:
| 类别 | 模型 ID(示例,以接口返回为准) | 协议 |
|---|---|---|
| Claude | claude-opus-4-6(主力)· claude-sonnet-4-6(更省钱) | openai + anthropic |
| OpenAI | gpt-5.5(对话)· gpt-image-2(图像生成) | openai |
二、发起对话
2.1 curl(OpenAI 格式,所有模型通用)
curl -s $BASE/v1/chat/completions \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-4-6",
"messages": [{"role": "user", "content": "你好"}]
}' | jq
2.2 Python(openai SDK)
from openai import OpenAI
client = OpenAI(api_key="sk-你的key", base_url="https://api.llmvalet.com/v1")
resp = client.chat.completions.create(
model="claude-opus-4-6",
messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)
2.3 Node.js(openai SDK)
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-你的key",
baseURL: "https://api.llmvalet.com/v1",
});
const resp = await client.chat.completions.create({
model: "claude-opus-4-6",
messages: [{ role: "user", content: "你好" }],
});
console.log(resp.choices[0].message.content);
2.4 第三方客户端
任何支持「自定义 OpenAI 接口」的工具(Cherry Studio、ChatBox、NextChat、LobeChat、Cursor、Continue 等)填两个值即可:
- API Base:
https://api.llmvalet.com/v1(部分工具只填https://api.llmvalet.com,会自动补/v1) - API Key:你的 key
2.5 Anthropic 原生格式(仅 Claude 系)
如果你的工具走 Anthropic SDK / /v1/messages:
curl -s $BASE/v1/messages \
-H "x-api-key: $KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 100,
"messages": [{"role": "user", "content": "你好"}]
}' | jq
Python:Anthropic(api_key="...", base_url="https://api.llmvalet.com")。
2.6 图像生成(gpt-image-2)
图像模型走 /v1/images/generations(不是对话接口),返回 base64 图片(b64_json),需自行解码存盘。
curl -s $BASE/v1/images/generations \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"model":"gpt-image-2","prompt":"一只戴帽子的柴犬,扁平插画风","size":"1024x1024"}' \
| jq -r '.data[0].b64_json' | base64 -d > out.png
Python(openai SDK):
from openai import OpenAI
import base64
client = OpenAI(api_key="sk-你的key", base_url="https://api.llmvalet.com/v1")
resp = client.images.generate(
model="gpt-image-2",
prompt="一只戴帽子的柴犬,扁平插画风",
size="1024x1024",
)
open("out.png", "wb").write(base64.b64decode(resp.data[0].b64_json))
- 返回
b64_json(base64),需解码后才是图片;不要拿 gpt-image-2 去打/v1/chat/completions,会报错。 size支持1024x1024等(以模型实际支持为准)。- 按图像 token 计费(一张约几百 output token)。
三、透传自检(核心)
3.1 Claude 系:看响应 ID 前缀(30 秒,最强证据)
Claude 全系经 AWS Bedrock 透传。Bedrock 生成的消息 ID 固定带 bdrk 标记,这是上游原样返回、代理层无法凭空伪造的指纹:
curl -s $BASE/v1/chat/completions \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"model":"claude-opus-4-6","messages":[{"role":"user","content":"hi"}]}' \
| jq '{id, model, usage_source: .usage.usage_source}'
真实透传应返回类似:
{
"id": "msg_bdrk_01UJg2cryKPEob1aRUuZ61jC",
"model": "claude-opus-4-6",
"usage_source": "anthropic"
}
校验要点:
- ✅
id以msg_bdrk_开头 → 来自 AWS Bedrock 的 Claude,不是别的模型冒充。 - ✅
model与你请求的完全一致。 - ✅
usage.usage_source为anthropic→ 用量按 Anthropic 口径统计。
如果 id 不是 msg_ / msg_bdrk_ 开头,或返回结构明显不像 Anthropic,就要警惕被换成了其它模型。
3.2 OpenAI 系:看 Azure 响应头(gpt-5.5 等,30 秒)
OpenAI 系经 Azure OpenAI 透传。Azure 在响应头里留了一串自己独有的指纹,由本服务原样转发,代理伪造不出来:
curl -s -D - -o /dev/null $BASE/v1/chat/completions \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"model":"gpt-5.5","messages":[{"role":"user","content":"hi"}]}' \
| grep -iE "x-ms-|apim-request-id|azureml"
真实透传会看到(均为 Azure 专属):
x-ms-region: East US 2
x-ms-served-model: gpt-5.5-2026-04-24
x-ms-deployment-name: gpt-5.5
x-ms-rai-invoked: true
apim-request-id: 3654a7da-...
azureml-model-session: d20260604...
- ✅
x-ms-region(Azure 服务区域)、x-ms-served-model(Azure 实际返回的模型版本)——伪造不了真实区域和版本号。 - ✅
apim-request-id/azureml-model-session:Azure API Management / ML 的请求标识,Azure 专属。 - ✅
x-ms-rai-invoked: true:Azure 内容安全被调用——OpenAI 官方直连没有这个头。
看到这些 x-ms-* 头即为来自 Azure OpenAI 的真模型;若全无,警惕被换成了别的来源。
3.3 终极对账:和官方 key 比一致性(5 分钟,可选)
如果你手里有 Anthropic 官方 key,可用相同请求分别打官方和本代理,对比:
- 温度设 0 跑同一 prompt,对比输出风格/格式是否同源;
- 对比
usage.input_tokens/output_tokens是否一致(同一模型的 tokenizer 计数应当吻合); - 对比模型独有能力(如 Claude 的特定拒答边界)。
代理偷换成廉价模型时,token 计数、ID 格式、独有字段三者很难同时对上——这正是难以伪造的原因。
四、常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
model not found / 无可用渠道 | 该模型未上架或无渠道 | 用 /v1/models 列出的真实模型 ID;或联系服务方开通 |
401 unauthorized | key 错误/被禁用 | 检查 key,或在控制台重新生成 |
429 | 限流/余额不足 | 降低并发或充值 |
Claude 返回 id 不带 bdrk | 可能非 Bedrock 链路 | 按 §3 复核,必要时联系服务方核查 |
五、安全提醒
- API key 等同密码,不要提交进 git、贴进公开对话或前端代码。
- 怀疑泄露时,第一时间在控制台禁用并重置 key。
- 建议给不同用途的应用分配不同 key,方便追踪与吊销。