API 文档
几分钟内即可开始使用我们兼容 OpenAI 的无审查 API。使用您生成的 glm API 密钥向我们的单模型端点发送请求。
认证与请求头
你的 glm api key 授权每个请求。在 Authorization 页眉作为 Bearer 令牌。这是官方 OpenAI SDK 使用的标准方法,适用于任何支持 OpenAI 兼容认证的客户。通过仪表板使用 Google 或邮箱注册后,您将立即获得此密钥。
妥善保管您的密钥。它提供对您预存信用的完全访问权限。如果丢失,请生成新密钥;旧密钥将立即失效。任何时间,每个账户只能有一个活跃密钥。
聊天完成端点
使用 POST /v1/chat/completions 端点。所有请求的基础 URL 为 https://api.apiglm.com/v1. 您必须将模型 ID 指定为 uncensored 在请求体中。此端点处理标准的对话轮次并返回生成的文本。
每个请求从您的预付费余额中消耗 token。错误和拒绝不会扣除您的信用额度。该模型接受消息序列,允许在上下文窗口内进行多轮对话。
curl https://api.apiglm.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "list the features"}]
}'
模型端点
通过调用验证可用模型和端点配置 GET /v1/models. 此端点返回 API 当前支持的模型列表。您可以使用此功能确认连通性并在发送补全请求前检查模型 ID。这对于调试客户端配置很有用。
响应包括有关模型的元数据,例如其 ID 和 owned_by 字段。此端点不消耗信用额度。使用它来确保你的客户端指向正确的 base URL,并且你的身份验证标头有效。
流式传输与 SSE
通过将 stream: true 在您的请求中。API 返回服务器发送事件(SSE)流。每个块包含部分文本增量。最后一个块包含请求的完整令牌使用统计信息。
流式传输降低了用户的感知延迟。它允许您的应用程序显示生成的令牌。这对于期望即时反馈的聊天界面非常理想。正确处理流以确保处理所有令牌。
from openai import OpenAI
client = OpenAI(base_url="https://api.apiglm.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
函数调用
在请求中定义工具以启用函数调用。模型可以返回结构化 JSON,标识要调用的函数及其参数。这允许你的应用程序根据用户意图执行代码。支持包括工具定义、工具选择和用于严格输出格式的 JSON 模式。
使用此功能将 LLM 集成到您的工作流程中。在请求正文中定义函数模式。模型响应工具调用列表。在代码中解析这些调用以触发外部操作。这使复杂的多步骤任务成为可能。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apiglm.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
参数 & 限制
上下文窗口支持 100,000 个 token,同时适用于 prompt 和 completion。每次请求最大输出为 16,000 个 token。设置 max_tokens 控制输出长度。如果未指定,默认为 2,048 个 token。您可以调整 temperature、top_p 和 seed 以增加变异性。
每个密钥每分钟允许 300 次请求。并发请求每个密钥上限为 8 个。请求体必须小于 8 MB。错误返回标准的 HTTP 状态码。401 表示密钥无效,402 表示余额耗尽,429 表示超出限流。
流式传输
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)常见问题
API 的基础 URL 是什么?
基础 URL 为 HTTPS://api.apiglm.com/v1。所有端点(包括聊天补全和模型)均相对于此 URL。请在您的 SDK 配置或 HTTP 客户端中使用此 URL。
如何处理流式传输响应?
在请求中将 stream 参数设置为 true。API 返回 SSE 流。每个 chunk 包含部分文本。最后一个 chunk 包含 token 使用信息。按到达顺序处理每个 chunk 以显示实时输出。
如果我超出速率限制会怎样?
API 返回 429 状态码。您被限制为每分钟 300 次请求,每个密钥 8 个并发请求。等待速率限制窗口重置或降低您的请求频率。