你需要三个值
关于 GLM API 基础 URL 的问题通常来自那些拥有需要 URL、密钥和模型名称的客户端,但不知道这些值该填在哪里的用户。这里将它们集中列出。
| 设置 | 说明 |
|---|---|
| 基础 URL | https://api.glmapi.cc/v1 |
| 模型 ID | uncensored |
| 认证头 | Authorization: Bearer YOUR_KEY |
| 聊天接口 | POST /v1/chat/completions |
| 模型列表 | GET /v1/models |
在复制任何内容之前澄清一点。域名中的名称指的是搜索词,而不是模型。这是一个由独立提供商托管的、面向单一开放权重模型的 OpenAI 兼容文本 API,经过调优,可在合法成人用途中无内容拒绝地回答问题。它不是 GLM 背后厂商的官方 API,也不是转发到其他厂商的路由器。如果你需要官方的 GLM 模型,请使用该厂商自己的服务。
你可以通过 Google 或电子邮件和密码注册来获取密钥。API 密钥页面 还提供一键领取 7 天有效且无需信用卡的 $0.50试用额度。
使用 curl 检查连接
在接触任何 SDK 或应用之前,先用一个简单请求确认密钥和 URL。如果这能工作,那么后续的所有问题都出在你的客户端配置中,而不是账户本身。首先,列出模型:
curl https://api.glmapi.cc/v1/models \
-H "Authorization: Bearer YOUR_KEY"你应该获得一个包含 id uncensored 的 JSON 列表。然后发送一个聊天补全请求:
curl https://api.glmapi.cc/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Reply with the word ready."}],
"max_tokens": 20
}'添加 -i 以查看响应头。它们包括 X-Request-Id、X-Balance-USD(你的剩余预付额度)、X-RateLimit-Limit-Requests 和 X-RateLimit-Limit-Concurrency。如果你需要就某次调用联系支持,请保留请求 ID。
Python 和 Node
官方 OpenAI SDK 接受自定义基础 URL。你只需更改两个构造函数参数和模型名称;其余代码保持不变。
Python
from openai import OpenAI
client = OpenAI(
base_url="https://api.glmapi.cc/v1",
api_key="YOUR_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Give me three names for a tavern."}],
)
print(resp.choices[0].message.content)Node.js
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.glmapi.cc/v1",
apiKey: process.env.GLM_API_KEY,
});
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Give me three names for a tavern." }],
});
console.log(resp.choices[0].message.content);Node 属性为 baseURL(大写),而 Python 参数为 base_url。混淆二者是回退到 SDK 默认主机并收到来自错误服务器的认证错误的经典方式。
使用环境变量而非代码
当你不显式传递它们时,OpenAI SDK 会从环境中读取 OPENAI_BASE_URL 和 OPENAI_API_KEY。这是将无法编辑的工具(例如来自存储库的脚本或为你构建客户端的框架)重新定向到目标的最少侵入方式。
export OPENAI_BASE_URL="https://api.glmapi.cc/v1"
export OPENAI_API_KEY="YOUR_KEY"
python my_existing_script.py你仍需在工具或其配置文件中将模型名称设置为 uncensored,因为没有环境变量携带它。如果工具的模型下拉菜单仅列出其知道的名称,请寻找自定义模型或自由文本选项。
将值保存在一处
连接成功后,避免将 URL 粘贴到五个文件中。将三个值放在一处,并在其他地方读取它们。.env 文件适用于小型项目:
GLM_BASE_URL=https://api.glmapi.cc/v1
GLM_API_KEY=YOUR_KEY
GLM_MODEL=uncensored然后在启动时一次性加载它们,并构建一个程序其余部分导入的单一客户端。当你更改密钥、添加带有试用余额的暂存密钥,或将此接口与另一个接口进行比较时,其优势就会显现。你只需编辑一个文件,而不是整个代码库。
在账户允许的情况下,为开发和生产环境保留单独的密钥,如果密钥出现在提交、截图或共享日志中,请立即轮换。泄露的密钥会消耗你的预付额度,且额度无法退回。
聊天应用和框架
前端界面的措辞可能不同,但都要求填写相同的三个值。寻找名为 OpenAI 兼容、自定义 OpenAI 或类似名称的连接类型,然后填写:
- API URL / 基础 URL:
https://api.glmapi.cc/v1 - API 密钥: 你账户中的密钥
- 模型:
uncensored
SillyTavern 允许通过其自定义聊天完成源添加兼容 OpenAI 的接口,Open WebUI 在其设置中具有兼容 OpenAI 的连接类型。LangChain 等框架在其聊天模型类上接受 base_url,LiteLLM 可通过自定义 API 基础路由 OpenAI 风格模型。菜单名称因版本而异,请遵循每个项目的当前文档以确切了解字段位置。
一些应用会询问是否为你追加 /chat/completions。许多应用会这样做,这意味着你输入的 URL 必须在 /v1 处停止。如果应用要求提供完整的接口地址,请提供 https://api.glmapi.cc/v1/chat/completions。快速入门 更详细地展示了支持的请求字段。
为什么首次调用会失败
如果 curl 测试通过但你的应用仍报错,原因几乎总是以下之一:
- 缺少
/v1。 单独使用https://api.glmapi.cc很可能会因路由位于/v1下而返回未找到错误。 - 路径重复。 应用追加了
/chat/completions,而你也输入了它,导致出现/chat/completions/chat/completions。从基础 URL 中将其删除。 - 末尾斜杠。 某些客户端连接路径的方式很差。如果看到日志 URL 中有双斜杠,请删除末尾的
/。 - 错误的模型名称。 唯一的模型 ID 是
uncensored。其他服务的名称将不匹配。 - 密钥问题。 检查粘贴时是否有空格或换行,以及应用是否已添加前缀却将密钥作为
Bearer发送了两次。 - 调用错误的主机。 在浏览器应用中,未设置的基础 URL 会回退到 SDK 默认值。记录实际的请求 URL。
浏览器端的调用也会让你的密钥对任何打开开发者工具的人可见。对于公共网站,请从你自己的服务器发送请求并将密钥保留在那里。
如果以上都不是原因,请从小案例开始反向工作。在运行失败的应用的同一台机器上运行之前的 curl 命令。如果 curl 成功,则网络和密钥正常,应用以不同方式构建请求,因此请开启其调试日志,并将记录的 URL、头和 JSON 正文与 curl 版本逐字符比较。如果 curl 仅在该机器上失败,请查看企业代理、VPN 规则和 DNS 过滤器,它们有时会阻止不熟悉的 API 主机名。从未到达服务器的请求不会返回 X-Request-Id,这是区分这两种情况的快速方法。
限制和 429 响应
完整密钥允许 8 个并发请求和每分钟 300 个请求。试用密钥允许 2 个和 60 个。超过任一限制,API 将返回 HTTP 429 错误,代码为 rate_limited(每分钟请求过多)或 concurrency(同时请求过多)。在临时过载期间,你还会收到一个带有 Retry-After: 5 头的 429 错误。
流式请求会占用其并发槽位,直到流结束,因此如果一个应用打开流但未关闭连接就放弃它,会耗尽自己的并发槽位。最大请求体为 8 MB,上下文窗口为 100,000 token,涵盖提示词和补全。有关费率和充值,请参阅 定价页面。
流式输出、工具和 JSON 使用相同的 URL
没有用于流式输出或函数调用的单独地址。所有内容都指向 /v1/chat/completions,你在请求体中开启功能。流式请求设置 "stream": true 并返回服务器发送的事件;带有工具的请求添加 tools 和可选的 tool_choice;JSON 模式添加 response_format,类型为 json_object。采样字段如 temperature、top_p、stop、seed 和惩罚项会透传。
这是一个流式 curl 调用。-N 参数关闭 curl 的输出缓冲,以便你看到到达的数据块:
curl -N https://api.glmapi.cc/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","stream":true,"messages":[{"role":"user","content":"Count to five."}]}'如果你的代理或托管层缓冲响应,流式输出看起来就像一条巨大的延迟响应。反向代理通常需要对服务器发送的事件关闭响应缓冲,因此在归咎于 API 之前请检查该设置。有关每个功能的完整 Python 示例,请参阅 快速入门。
更多指南
问答
此 API 的基础 URL 是什么?
基础 URL 为 https://api.glmapi.cc/v1。聊天请求发送到其下的 /chat/completions,模型列表位于 /models。
我应该使用什么模型名称?
使用 uncensored。它是唯一的模型 ID,并且可以在任何允许输入自定义模型的 OpenAI 风格客户端中使用。
这是官方的 GLM API 吗?
不是。它是一个独立的、兼容 OpenAI 的服务,运行一个开放权重模型,并非任何供应商的官方 API。
哪个头部字段携带密钥?
Authorization: Bearer 后跟你的密钥。当你传递密钥时,OpenAI SDK 会自动添加此项。
测试连接需要信用卡吗?
不需要。注册后,在 API 密钥页面即可一键领取 7 天有效的 $0.50试用额度。
只差一张表单,即可获得密钥
创建账户,复制密钥,更改基础 URL。这就是全部设置。
