API 文档
Ablatehub 提供兼容 OpenAI 的对话接口。你可以直接使用现有的 OpenAI SDK 或任何兼容 OpenAI 格式的客户端,只需要换掉接口地址和密钥。
快速开始
- 注册账号,登录后进入控制台的 API 密钥页面,创建一个密钥。密钥只在创建时显示一次,请立即保存。
- 在你的应用里把接口地址设为
https://api.ablatehub.com/v1,把密钥填进 API Key。 - 在控制台确认账户有余额后即可调用。
curl https://api.ablatehub.com/v1/chat/completions \
-H "Authorization: Bearer $ABLATEHUB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "GLM-5.3-Flash-Ablatehub",
"messages": [{"role": "user", "content": "你好"}]
}'from openai import OpenAI
client = OpenAI(
base_url="https://api.ablatehub.com/v1",
api_key="sk-...", # 你的 Ablatehub 密钥
)
resp = client.chat.completions.create(
model="GLM-5.3-Flash-Ablatehub",
messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.ablatehub.com/v1",
apiKey: process.env.ABLATEHUB_API_KEY,
});
const resp = await client.chat.completions.create({
model: "GLM-5.3-Flash-Ablatehub",
messages: [{ role: "user", content: "你好" }],
});
console.log(resp.choices[0].message.content);认证
所有请求都需要在请求头里携带密钥:
Authorization: Bearer sk-xxxxxxxxxxxxxxxx- 密钥在控制台创建,每个账号最多 10 个,可以随时停用或删除。停用或删除后,使用该密钥的请求会立即返回
401。 - 请把密钥放在服务端环境变量里,不要写进网页前端、手机应用或公开的代码仓库。
- 密钥一旦泄露,请立即在控制台删除并重新创建。
模型与计费
调用时把 model 设为下表中的名称。价格单位是美元 / 每百万 tokens,按实际用量从账户余额扣除。
| 模型名称 | 输入 | 输出 | 缓存输入 |
|---|---|---|---|
GLM-5.3-Ablatehub | $4.00 | $6.00 | $0.70 |
GLM-5.3-Flash-Ablatehub | $0.50 | $1.60 | $0.30 |
DeepSeek-V4.1-Flash-Ablatehub | $1.20 | $3.20 | $0.30 |
Qwen3.8-Flash-Next-Ablatehub | $0.36 | $1.20 | $0.18 |
费用 = 未命中缓存的输入 tokens × 输入价 + 命中缓存的输入 tokens × 缓存输入价 + 输出 tokens × 输出价。每次调用的明细可以在控制台的调用记录里查看。
也可以通过接口获取当前可用的模型:
curl https://api.ablatehub.com/v1/models \
-H "Authorization: Bearer $ABLATEHUB_API_KEY"对话接口
POST https://api.ablatehub.com/v1/chat/completions
| 参数 | 类型 | 说明 |
|---|---|---|
model | string | 必填。模型名称,见上表。 |
messages | array | 必填。对话消息列表,每项包含 role(system / user / assistant / tool)和 content。 |
max_tokens | integer | 最多生成的 tokens 数。 |
temperature、top_p | number | 采样参数。 |
stop | string / array | 遇到这些字符串时停止生成。 |
stream | boolean | 是否流式返回,见下文。 |
tools | array | 可调用的工具(函数)定义,见下文。 |
response_format | object | 设为 {"type": "json_object"} 可要求输出 JSON。 |
返回示例:
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "GLM-5.3-Flash-Ablatehub",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "你好!有什么可以帮你的吗?" },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 14, "completion_tokens": 17, "total_tokens": 31 }
}部分模型会在 message 里额外返回 reasoning_content(思考过程)。思考部分也计入输出 tokens。如果 max_tokens 设得太小,可能出现 content 为空、finish_reason 为 length 的情况,请适当调大。
流式输出
设置 "stream": true 后,结果会以 Server-Sent Events 的形式逐段返回,最后以 data: [DONE] 结束。加上 "stream_options": {"include_usage": true} 可以在最后收到一段包含用量的数据。
curl https://api.ablatehub.com/v1/chat/completions \
-H "Authorization: Bearer $ABLATEHUB_API_KEY" \
-H "Content-Type: application/json" \
-N \
-d '{
"model": "GLM-5.3-Flash-Ablatehub",
"messages": [{"role": "user", "content": "从 1 数到 5"}],
"stream": true,
"stream_options": {"include_usage": true}
}'每一段形如:
data: {"id":"chatcmpl-...","object":"chat.completion.chunk","model":"GLM-5.3-Flash-Ablatehub","choices":[{"index":0,"delta":{"content":"1"},"finish_reason":null}]}
data: [DONE]工具调用
通过 tools 传入函数定义,模型会在需要时返回 tool_calls。你执行函数后,把结果以 role: "tool" 的消息追加回去,再请求一次即可。
{
"model": "GLM-5.3-Flash-Ablatehub",
"messages": [{"role": "user", "content": "巴黎今天天气怎么样?"}],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "查询城市天气",
"parameters": {
"type": "object",
"properties": { "city": { "type": "string" } },
"required": ["city"]
}
}
}]
}模型返回的 message.tool_calls[0].function.arguments 是 JSON 字符串,finish_reason 为 tool_calls。
JSON 输出
设置 "response_format": {"type": "json_object"},并在提示词里明确要求输出 JSON,模型会返回合法的 JSON 字符串。
用量与缓存
每次响应的 usage 字段包含 prompt_tokens、completion_tokens 和 total_tokens。当请求的前缀与近期请求相同,部分输入会命中缓存,命中的数量会出现在 usage.prompt_tokens_details.cached_tokens 里,这部分按更低的缓存输入价计费。
- 要提高命中率,请把固定不变的内容(系统提示词、长文档、工具定义)放在
messages的最前面,把每次变化的内容放在最后。 - 缓存是否命中取决于近期是否有相同前缀的请求,不能保证每次都命中。
- 控制台的调用记录会显示每次调用的输入、其中缓存、输出和费用。
错误码
出错时返回 JSON:{"error": {"message": "...", "type": "...", "code": "..."}}。
| HTTP | code | 含义与处理 |
|---|---|---|
| 400 | invalid_text_request 等 | 请求参数有误,例如缺少 messages。请根据 message 修改请求。 |
| 401 | invalid_api_key | 密钥缺失、写错、已停用或已删除。 |
| 402 | insufficient_quota | 账户余额不足。请联系支持充值。 |
| 404 | model_not_found | 模型名称不存在,请使用上表中的名称(区分大小写)。 |
| 429 | rate_limit_exceeded | 请求过于频繁。请稍后重试,并在重试时逐步拉长间隔。 |
| 502 | service_unavailable | 服务暂时不可用。请稍后重试。 |
限制与说明
获取支持
遇到问题、需要充值或有其他需求,请通过 Telegram 联系我们。反馈问题时请附上请求的时间、使用的模型和返回的错误信息,但不要发送你的完整密钥。