Hello-Application-XH/HelloGML
Hello-Application-XH/HelloGML智谱清言网页版的 Cloudflare Worker 2API层,提供 OpenAI / Claude / Gemini 三种协议兼容接口,支持流式对话、Tools调用、AI 绘图、视频生成与多账号 Token 轮询。
From the README
GLM-Free-API for Cloudflare Workers
About
智谱清言网页版的 Cloudflare Worker 2API层,提供 OpenAI / Claude / Gemini 三种协议兼容接口,支持流式对话、Tools调用、AI 绘图、视频生成与多账号 Token 轮询。
目录
更新概述
我们已经发布了预发布更新,新的更新主要面向与自动补号功能,更新可以自动获取游客token并且循环补号,真正实现无限API以及0维护,本更新已经推送至auto分支。当前更新并不稳定,可能有不确定的bug或者随机行为,因此不会发布mian主更新。需要的可以在auto更新下载部署。 因为一些其他原因,本仓库的下一次更新时间,确定为5月19日。此前仓库不会有任何更新或者bug修复。
项目概述
本项目将智谱清言(chatglm.cn)网页端的私有流式 API 转换为标准的大语言模型服务接口,使任何支持 OpenAI、Claude 或 Gemini 协议的客户端都能直接调用 GLM 系列模型的能力。
核心特性
| 特性 | 说明 |
| ------------------- | ------------------------------------------------------------ |
| 多协议兼容 | 同时支持 OpenAI (/v1/chat/completions)、Claude (/v1/messages)、Gemini (/v1beta/models/...) 三种请求格式 |
| 流式响应 | 完整的 SSE 流式输出,支持逐字显示与 reasoning_content(思考过程) |
| 动态 Token 管理 | 认证与资源分离:API Key 仅用于身份验证,所有 refresh_token 组成统一池子按轮询策略调度 |
| 多账号轮询 | 支持在 Authorization Header 中以逗号分隔传入多个 api_key,自动选择可用账号 |
| AI 绘图 | 对接智谱清言绘图智能体,支持文生图与多轮图生图 |
| 视频生成 | 支持文生视频、图生视频及风格参数控制 |
| 工具调用 | 完整支持 Function Calling,兼容 OpenAI / Claude 格式,适配 claude-code、open-code 等 IDE |
| 联网搜索 | 模型自动触发联网搜索,搜索结果通过 reasoning_content 字段返回 |
| 长文档/图像解析 | 支持 BASE64 图像上传与长文本上下文 |
架构设计
┌─────────────────┐ ┌──────────────────────────┐ ┌─────────────────┐
│ 客户端应用 │────▶│ Cloudflare Worker (V8) │────▶│ chatglm.cn │
│ (NextChat/Lobe) │ │ │ │ 私有 API │
└─────────────────┘ │ • KV: api_key 映射 │ └─────────────────┘
│ • Cache: access_token │
│ • 签名算法 │
│ • 协议适配层 │
└──────────────────────────┘
请求处理流程
- 客户端以
Authorization: Bearer发起请求 - Worker 验证该
api_key是否有效(检查ak:*记录) - 从 Token 池(所有
rt:*记录)中按轮询策略选择一个refresh_token - 若
access_token未缓存或已过期,使用选中的refresh_token向智谱换取新的access_token - 构造带签名的请求头,调用智谱流式接口
- 将智谱 SSE 流实时转换为目标协议格式并返回给客户端
快速开始
前置要求
- Node.js 18+
- Cloudflare 账号(免费版即可)
- 智谱清言账号及
chatglm_refresh_token
获取 refresh_token
登录 chatglm.cn 后,打开浏览器开发者工具 → Application → Cookies,复制 chatglm_refresh_token 的值。
安装与本地开发
cd cf-worker
npm install
# 本地开发(自动模拟 KV 和 Cache)
npx wrangler dev --local
本地服务默认运行在 `
部署指南
第一步:创建 KV Namespace
npx wrangler kv:namespace create GLM_TOKENS
命令会输出如下内容,将 id 填入 wrangler.toml:
[[kv_namespaces]]
binding = "GLM_TOKENS"
id = ""
第二步:配置环境变量
编辑 wrangler.toml:
[vars]
# 智谱请求签名密钥(保持默认值即可,或自定义)
SIGN_SECRET = "8a1317a7468aa3ad86e997d08f3f31cb"
# 管理接口保护密钥,部署前务必修改为随机