中文 ▾
获取 API 密钥

GLM API 基础 URL:连接任意 OpenAI 客户端

此服务的基础 URL 为 https://api.glmapi.cc/v1,模型 ID 为 uncensored,认证方式为标准的 Bearer 密钥。以下是 curl、Python、Node 及常用聊天前端的精确设置,以及导致首次调用失败的主要错误。

要点

  • 基础 URL:https://api.glmapi.cc/v1. 模型:uncensored。请求头:Authorization: Bearer <key>。
  • 两个接口:POST /v1/chat/completions 和 GET /v1/models。
  • 大多数连接错误源于缺少 /v1、路径重复或粘贴了末尾斜杠。
  • 这是一个独立接口,并非 GLM 背后供应商或其他任何供应商的官方 API。
终端通过发光电缆连接到服务器,说明将客户端指向新的 API 基础 URL

你需要三个值

关于 GLM API 基础 URL 的问题通常来自那些拥有需要 URL、密钥和模型名称的客户端,但不知道这些值该填在哪里的用户。这里将它们集中列出。

设置说明
基础 URLhttps://api.glmapi.cc/v1
模型 IDuncensored
认证头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。这就是全部设置。

获取 API 密钥阅读文档