OpenAI兼容API代理 for Z.ai GLM-4.5
这是一个为Z.ai GLM-4.5模型提供OpenAI兼容API接口的代理服务器。它允许你使用标准的OpenAI API格式与Z.ai的GLM-4.5模型进行交互,支持流式和非流式响应。
注意: 本项目来自fork OpenAI-Compatible-API-Proxy-for-Z二次开发
✨ 主要功能
- 🔄 OpenAI API兼容: 完全兼容OpenAI的API格式,无需修改客户端代码
- 🌊 流式响应支持: 支持实时流式输出,提供更好的用户体验
- 🔐 身份验证: 支持API密钥验证,确保服务安全
- 🛠️ 灵活配置: 通过环境变量进行灵活配置
- 🐳 Docker支持: 提供Docker镜像,便于部署
- 🌍 CORS支持: 支持跨域请求,便于前端集成
- 📝 思考过程展示: 智能处理并展示模型的思考过程
- 📊 实时监控仪表板: 提供Web仪表板,实时显示API转发情况和统计信息
🚀 快速开始
环境要求
- Go 1.23 或更高版本
- Z.ai 的访问令牌
本地部署
克隆仓库
1
2git clone https://github.com/your-username/ZtoApi.git
cd ZtoApi配置环境变量
1
2cp config.env .env.local
# 编辑 .env.local 文件,设置你的 ZAI_TOKEN启动服务
1
2
3
4
5# 使用启动脚本(推荐)
./start.sh
# 或直接运行
go run main.go测试服务
1
curl http://localhost:9090/v1/models
访问API文档
启动服务后,可以通过浏览器访问以下地址查看完整的API文档:
1
http://localhost:9090/docs
API文档提供了以下功能:
- 详细的API端点说明
- 请求参数和响应格式
- 多种编程语言的使用示例(Python、cURL、JavaScript)
- 错误处理说明
访问Dashboard
启动服务后,可以通过浏览器访问以下地址查看实时监控仪表板:
1
http://localhost:9090/dashboard
Dashboard提供了以下功能:
- 实时显示API请求统计信息(总请求数、成功请求数、失败请求数、平均响应时间)
- 显示最近100条请求的详细信息(时间、方法、路径、状态码、耗时、客户端IP)
- 数据每5秒自动刷新一次
Docker部署
构建镜像
1
docker build -t zto-api .
运行容器
1
2
3
4docker run -p 9090:9090 \
-e ZAI_TOKEN=your_z_ai_token \
-e DEFAULT_KEY=your_api_key \
zto-api
Render部署
Fork这个仓库到你的GitHub账户
在Render上创建新的Web Service:
- 连接你的GitHub仓库
- 选择Docker作为环境
- 设置以下环境变量:
ZAI_TOKEN: Z.ai 的访问令牌 (可选,不提供将自动获取随机匿名token)DEFAULT_KEY: 客户端API密钥 (可选,默认: sk-your-key)MODEL_NAME: 显示的模型名称 (可选,默认: GLM-4.5)PORT: 服务监听端口 (Render会自动设置)
部署完成后,使用Render提供的URL作为OpenAI API的base_url
⚙️ 环境变量配置
本项目支持通过环境变量进行配置,提供灵活的部署和运行选项。
🚀 快速开始
1. 使用启动脚本(推荐)
macOS/Linux:
1 | ./start.sh |
Windows:
1 | start.bat |
2. 手动设置环境变量
macOS/Linux:
1 | export ZAI_TOKEN="your_z_ai_token_here" |
Windows:
1 | set ZAI_TOKEN=your_z_ai_token_here |
3. Docker运行
1 | docker run -p 9090:9090 \ |
📋 环境变量列表
🔑 必需配置
无必需配置。所有配置都有合理的默认值。
⚙️ 可选配置
| 变量名 | 说明 | 默认值 | 示例 |
|---|---|---|---|
ZAI_TOKEN |
Z.ai 访问令牌 | 空(自动获取随机匿名token) | eyJhbGciOiJFUzI1NiIs... |
⚙️ 可选配置
| 变量名 | 说明 | 默认值 | 示例 |
|---|---|---|---|
DEFAULT_KEY |
客户端API密钥 | sk-your-key |
sk-my-api-key |
MODEL_NAME |
显示模型名称 | GLM-4.5 |
GLM-4.5-Pro |
PORT |
服务监听端口 | 9090 |
9000 |
DEBUG_MODE |
调试模式开关 | true |
false |
DEFAULT_STREAM |
默认流式响应 | true |
false |
DASHBOARD_ENABLED |
Dashboard功能开关 | true |
false |
ENABLE_THINKING |
思考功能开关 | false |
true |
🔧 高级配置
| 变量名 | 说明 | 默认值 | 示例 |
|---|---|---|---|
UPSTREAM_URL |
上游API地址 | https://chat.z.ai/api/chat/completions |
自定义URL |
📁 配置文件
支持的配置文件(按优先级排序)
.env.local- 本地环境配置(推荐).env- 环境配置config.env- 配置模板
配置文件示例
1 | # 复制配置文件 |
🔐 获取 Z.ai Token
方法1:浏览器开发者工具
- 登录 Z.ai
- 打开浏览器开发者工具(F12)
- 切换到 Network 标签页
- 发送一条消息
- 在请求中找到
Authorization头部的 Bearer token
方法2:Cookie 方式
- 登录 Z.ai 后,在开发者工具中查看 Cookies
- 找到包含认证信息的 cookie
方法3:匿名Token
本项目支持自动获取匿名token,无需手动配置。当 ZAI_TOKEN 环境变量未设置时,系统会自动为每次对话获取不同的随机匿名token,避免共享记忆。这种机制使得项目即使用户没有提供 Z.ai 的访问令牌也能正常工作。
🎯 使用示例
基本配置
1 | # .env.local |
生产环境配置
1 | # .env.production |
开发环境配置
1 | # .env.development |
📊 Dashboard功能
本项目提供了一个Web仪表板,用于实时监控API转发情况和统计信息。
功能特点
- 实时显示API请求统计信息(总请求数、成功请求数、失败请求数、平均响应时间)
- 显示最近100条请求的详细信息(时间、方法、路径、状态码、耗时、客户端IP)
- 数据每5秒自动刷新一次
- 响应式设计,支持各种设备访问
访问方式
启动服务后,通过浏览器访问以下地址:
1 | http://localhost:9090/dashboard |
配置选项
通过 DASHBOARD_ENABLED 环境变量控制Dashboard功能的开启和关闭:
1 | # 启用Dashboard(默认) |
使用场景
- 开发调试: 实时查看API请求情况,便于调试和问题排查
- 性能监控: 监控API响应时间和成功率,评估系统性能
- 安全审计: 查看请求来源和频率,发现异常访问模式
🔄 重启服务
修改环境变量后,需要重启服务使配置生效:
1 | # 停止当前服务 |
🚨 注意事项
- Token 安全: 不要将真实的 Z.ai token 提交到代码仓库
- 配置文件: 建议将
.env.local添加到.gitignore - 权限设置: 确保启动脚本有执行权限 (
chmod +x start.sh) - 端口冲突: 确保配置的端口没有被其他服务占用
- 匿名Token: 当未设置
ZAI_TOKEN时,系统会自动获取随机匿名token,每次对话都会有独立的上下文,无需手动配置即可使用 - 思考过程: 项目会自动处理模型的思考过程,可通过
ENABLE_THINKING环境变量或请求参数enable_thinking控制是否启用
📖 API使用示例
Python示例
1 | import openai |
curl示例
1 | # 非流式请求 |
JavaScript示例
1 | const fetch = require('node-fetch'); |
🔧 故障排除
常见问题
连接失败
- 检查服务是否正常运行:
curl http://localhost:9090/v1/models - 访问API文档:
http://localhost:9090/docs - 确认端口配置正确
- 检查服务是否正常运行:
认证失败
- 检查
DEFAULT_KEY环境变量设置 - 确认请求头中的
Authorization格式正确
- 检查
Z.ai Token无效
- 检查
ZAI_TOKEN环境变量设置 - 确认Token未过期
- 检查
思考过程显示异常
- 检查
DEBUG_MODE是否启用 - 查看服务日志获取详细信息
- 检查
端口被占用: 修改
PORT环境变量或停止占用端口的服务权限不足: 确保启动脚本有执行权限
配置未生效: 重启服务或检查配置文件语法
流式响应问题: 确认
DEFAULT_STREAM设置正确,检查客户端是否支持流式响应
调试模式
启用调试模式以获取详细日志:
1 | export DEBUG_MODE=true |
网络问题排查
如果遇到网络连接问题,可以尝试:
- 检查防火墙设置
- 确认
UPSTREAM_URL可访问 - 测试网络连通性:
1
curl https://chat.z.ai/api/chat/completions
性能优化
- 减少日志输出: 设置
DEBUG_MODE=false - 调整超时时间: 修改代码中的
http.Client超时设置 - 使用反向代理: 在生产环境中建议使用 Nginx 等反向代理
🤝 贡献指南
欢迎提交 Issue 和 Pull Request!请确保:
- 代码符合 Go 的代码风格
- 提交前运行测试
- 更新相关文档
- 遵循项目的代码结构和命名规范
开发流程
- Fork 本仓库
- 创建特性分支:
git checkout -b feature/new-feature - 提交更改:
git commit -am 'Add new feature' - 推送分支:
git push origin feature/new-feature - 提交 Pull Request
📄 许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
⚠️ 免责声明
本项目与 Z.ai 官方无关,使用前请确保遵守 Z.ai 的服务条款。开发者不对因使用本项目而产生的任何问题负责。
本项目与 Z.ai 官方无关,使用前请确保遵守 Z.ai 的服务条款。开发者不对因使用本项目而产生的任何问题负责。
本项目与 Z.ai 官方无关,使用前请确保遵守 Z.ai 的服务条款。开发者不对因使用本项目而产生的任何问题负责。
📞 联系方式
如有问题或建议,请通过以下方式联系:
- 提交 Issue
- Title:
- Author: 清夏晚风
- Created at : 2026-01-14 14:55:07
- Updated at : 2026-01-14 14:55:07
- Link: https://blog.kimikkorow.eu.org/AI相关工具/API相关/网页转API代理/02.ZtoApi/
- License: This work is licensed under CC BY-NC-SA 4.0.