Skip to content
/ ZtoApi Public
forked from roseforyou/ZtoApi

ZtoApi 是一个高性能的 OpenAI 兼容 API 代理服务器,专为 Z.ai 的 GLM 系列模型设计(现已最新支持 GLM-4.6 、 GLM-4.7 和 GLM-5,同时兼容 GLM-4.5 和 GLM-4.5V)。使用 Deno 原生 HTTP API 实现,支持完整的流式和非流式响应,提供实时监控 Dashboard,让你能够无缝地将 Z.ai 的强大 AI 能力集成到现有的 OpenAI 客户端应用中。

License

Notifications You must be signed in to change notification settings

sarices/ZtoApi

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZtoApi - OpenAI 兼容 API 代理服务器

Deno TypeScript License

ZtoApi 是一个高性能的 OpenAI 兼容 API 代理服务器,专为 Z.ai 的 GLM-4.5 和 GLM-4.5V 模型设计。使用 Deno 原生 HTTP API 实现,支持完整的流式和非流式响应,提供实时监控 Dashboard,让你能够无缝地将 Z.ai 的强大 AI 能力集成到现有的 OpenAI 客户端应用中。

🌟 核心特性

🚀 基础功能

  • 🔄 完全 OpenAI 兼容: 支持标准 OpenAI API 格式,无需修改客户端代码
  • 🌊 智能流式传输: 支持 Server-Sent Events (SSE) 实时流式响应
  • 🧠 思考过程处理: 智能解析和展示 GLM-4.5 的推理思考过程
  • 📊 实时监控面板: 内置 Web Dashboard,实时显示 API 调用统计和性能指标
  • 🔐 安全身份验证: 支持 API 密钥验证和匿名 Token 自动获取
  • ⚡ 高性能架构: 基于 Deno 原生 HTTP API,支持高并发请求处理
  • 🌍 多平台部署: 支持 Deno Deploy 边缘计算和自托管部署
  • 🛠️ 灵活配置: 通过环境变量进行全面配置管理

🎯 高级功能(新版特性)

  • 🔄 智能 Token 池管理: 支持多个 Token 轮换使用,自动切换失败的 Token,提升服务可用性
  • 🖼️ 完整图像处理: 支持 base64 和远程 URL 图像上传,GLM-4.5V 专用 URL 格式转换
  • 🔍 MCP 服务器支持: 深度网络搜索、高级搜索、编程助手、PPT 生成等高级功能
  • 🧠 智能 Header 生成: 动态生成真实浏览器请求头和指纹参数,完美模拟真实用户请求
  • ⚡ 高级模式检测: 自动识别思考模式、搜索模式、视觉模型能力
  • 🔐 增强签名算法: 双层 HMAC-SHA256 签名,支持环境变量配置,提供企业级安全保护

🤖 支持的模型

ZtoApi 支持 Z.ai 的多个先进 AI 模型:

模型 ID 模型名称 特性
0727-360B-API GLM-4.5 通用对话、代码生成、思考过程
glm-4.6 GLM-4.6 🚀 增强模型,更强的推理和代码能力
glm-4.5v GLM-4.5V 🎯 全方位多模态理解:图像、视频、文档、音频
glm-4.6v GLM-4.6V 🚀 增强多模态:视觉理解 + 高级推理
glm-4.7 GLM-4.7 🆕 最新推理模型,更强的思考和编程能力
glm-5 GLM-5 🚀 下一代旗舰模型,全方位能力提升
0727-106B-API GLM-4.5-Air ⚡ 轻量级模型,快速响应
0808-360B-DR 0808-360B-DR 🔬 深度研究专用模型

⚠️ 关于工具调用: ZtoApi 已完整支持 OpenAI 格式的 tools 参数解析和转发,但实际工具调用功能受限于上游 Z.ai API。建议使用 reasoning: true 参数启用思考模式。

模型特性对比

GLM-4.5 (0727-360B-API)

  • ✅ 思考过程展示
  • ✅ 🔄 智能 Token 池管理
  • ✅ 🧠 智能 Header 生成
  • ✅ 🖼️ 图像处理支持(上传后作为文件引用)
  • ✅ 代码生成与分析
  • ❌ 原生多模态理解

⚠️ 注意: MCP 工具调用功能受上游 API 限制,详见 GLM-5 说明。

GLM-4.6 (glm-4.6)

  • ✅ 🚀 增强的思考过程展示
  • ✅ 🔄 智能 Token 池管理
  • ✅ 🧠 智能 Header 生成
  • ✅ 🖼️ 图像处理支持(上传后作为文件引用)
  • ✅ 🚀 顶级的代码生成与分析
  • ❌ 原生多模态理解

⚠️ 注意: 深度搜索功能受上游 API 限制。

GLM-4.7 (glm-4.7) - 🆕 最新推理模型

  • ✅ 🆕 更强的思考过程展示
  • ✅ 🔄 智能 Token 池管理
  • ✅ 🧠 智能 Header 生成
  • ✅ 🖼️ 图像处理支持(上传后作为文件引用)
  • ✅ 💎 卓越的代码生成与分析能力
  • ✅ 🧠 增强的推理和逻辑能力
  • ❌ 原生多模态理解

⚠️ 注意: 工具调用功能受上游 API 限制,详见 GLM-5 说明。

GLM-5 (glm-5) - 🚀 下一代旗舰模型

  • ✅ 🚀 最强的思考过程展示
  • ✅ 🔄 智能 Token 池管理
  • ✅ 🧠 智能 Header 生成
  • ✅ 🖼️ 图像处理支持(上传后作为文件引用)
  • ✅ 💎 旗舰级代码生成与分析
  • ✅ 🧠 顶级的推理和逻辑能力
  • ✅ 🎯 全方位能力提升
  • ❌ 原生多模态理解

⚠️ 关于工具调用: ZtoApi 已完整支持 OpenAI 格式的 tools 参数解析和转发,但实际工具调用功能受限于上游 Z.ai API。目前测试显示 /api/v2/chat/completions 端点可能未完全启用工具调用功能,建议使用 reasoning: true 参数启用思考模式以获得类似的推理能力。

GLM-4.5-Air (0727-106B-API) - ⚡ 轻量级模型

  • ✅ 思考过程展示
  • ✅ 🔄 智能 Token 池管理
  • ✅ 🧠 智能 Header 生成
  • ✅ ⚡ 快速响应,低延迟
  • ✅ 适合日常对话和简单任务
  • ❌ 原生多模态理解

0808-360B-DR (0808-360B-DR) - 🔬 深度研究专用

  • ✅ 🔬 深度分析能力
  • ✅ 🔄 智能 Token 池管理
  • ✅ 🧠 智能 Header 生成
  • ✅ 📚 适合复杂研究和深度分析
  • ✅ 长文本理解和总结
  • ❌ 原生多模态理解

⚠️ 注意: 深度搜索功能受上游 API 限制。

GLM-4.5V (glm-4.5v) - 全方位多模态理解

  • ✅ 思考过程展示
  • ✅ 🔄 智能 Token 池管理
  • ✅ 🧠 智能 Header 生成
  • ✅ 🖼️ 完整图像处理(直接在消息中处理)
  • ✅ 图像理解与分析
  • ✅ 视频内容分析
  • ✅ 复杂图表解读
  • ✅ 长文档处理
  • ✅ 音频内容理解
  • ❌ MCP 工具调用

GLM-4.6V (glm-4.6v) - 🚀 增强多模态模型

  • ✅ 🚀 增强的思考过程展示
  • ✅ 🔄 智能 Token 池管理
  • ✅ 🧠 智能 Header 生成
  • ✅ 🖼️ 完整图像处理(直接在消息中处理)
  • ✅ 🚀 高级视觉理解能力
  • ✅ 增强的图像、视频、文档、音频分析
  • ✅ 更准确的细节识别
  • ❌ MCP 工具调用

🎯 GLM-4.5V 支持的媒体类型

媒体类型 支持格式 应用场景
📷 图像 JPEG, PNG, GIF, WebP 图像描述、OCR、图表分析
🎥 视频 MP4, AVI, MOV 视频摘要、动作识别、场景分析
📄 文档 PDF, DOC, TXT 文档分析、信息提取、摘要生成
🎵 音频 MP3, WAV, AAC 语音转文字、音频分析、内容理解

⚠️ 重要提示: 多模态功能(图像、视频、文档、音频)需要正式的 Z.ai API Token,匿名 token 不支持多媒体处理。

🚀 高级功能详解

🔄 智能 Token 池管理

新版 ZtoApi 支持高级 Token 池管理,大幅提升服务可用性和稳定性:

核心特性

  • 多 Token 轮换: 自动轮换使用多个 Token,避免单点故障
  • 智能故障切换: 自动检测 Token 失败并切换到下一个可用 Token
  • 匿名 Token 降级: 当所有配置 Token 都失效时,自动降级到匿名 Token
  • Token 状态管理: 实时监控 Token 使用状态和失败次数

📋 配置方式

# 方式1:单个 Token(兼容旧版)
export ZAI_TOKEN="your-single-token"

# 方式2:多 Token 池(推荐)
export ZAI_TOKENS="token1,token2,token3"

# 方式3:混合配置(Token 池 + 匿名 Token 备用)
export ZAI_TOKENS="token1,token2"
# 匿名 Token 自动作为备用

🎯 使用场景

  • 高可用部署: 生产环境避免单 Token 故障
  • 负载均衡: 分散请求压力到多个 Token
  • 开发测试: 快速切换不同权限级别的 Token

🖼️ 完整图像处理系统

新版支持完整的图像上传、处理和 URL 转换流程:

🎯 支持的图像格式

  • Base64 格式: data:image/jpeg;base64,/9j/4AAQSk...
  • 远程 URL: https://example.com/image.jpg
  • 自动格式检测: JPEG, PNG, GIF, WebP

🔄 处理流程

  1. 图像上传: 自动上传到 Z.ai 服务器
  2. URL 转换: GLM-4.5V 专用格式 {file_id}_{filename}
  3. 消息嵌入: 直接在消息中引用图像
  4. 错误处理: 完善的异常处理和重试机制

📝 使用示例

{
  "model": "glm-4.5v",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "分析这张图片" },
        {
          "type": "image_url",
          "image_url": { "url": "data:image/jpeg;base64,..." }
        }
      ]
    }
  ]
}

🔍 MCP 服务器支持

支持 Z.ai 的 Model Context Protocol (MCP) 高级功能:

🚀 可用的 MCP 服务器

服务器名称 功能描述 支持模型 状态
deep-web-search 深度网络搜索 GLM-4.5, GLM-4.6 ✅ 可用
advanced-search 高级搜索 GLM-4.6 ✅ 可用
vibe-coding 编程助手 GLM-4.5, GLM-4.6 🔒 隐藏特性
ppt-maker PPT 生成 GLM-4.5, GLM-4.6 🔒 隐藏特性
image-search 图像搜索 GLM-4.5, GLM-4.6 🔒 隐藏特性
deep-research 深度研究 GLM-4.5, GLM-4.6 🔒 隐藏特性

🎯 自动模式检测

  • 思考模式检测: 自动识别 GLM-4.6 思考能力
  • 搜索模式检测: 智能启用搜索功能
  • 视觉模式检测: 完美支持 GLM-4.5V 多模态

🧠 智能 Header 生成

动态生成真实浏览器请求头,完美模拟真实用户访问:

🔧 支持的浏览器配置

  • Chrome 140: 最新 Chrome 浏览器
  • Chrome 139: 稳定版 Chrome
  • Firefox 126: Firefox 浏览器
  • Safari macOS: macOS Safari

🎯 智能功能

  • Header 缓存: 5 分钟缓存,提升性能
  • 随机选择: 随机选择浏览器配置
  • 动态参数: 完整的浏览器指纹参数

📋 生成的 Header 参数

  • 基础头部: User-Agent, Accept, Accept-Language 等
  • 安全头部: Sec-Fetch-* 系列,Sec-CH-UA 等
  • 浏览器指纹: 屏幕分辨率、时区、语言等完整参数

🔐 增强签名算法

与 Python 版本完全兼容的双层 HMAC-SHA256 签名算法:

🔒 算法特性

  • 双层签名: 第一层时间窗口 + 第二层内容签名
  • 环境变量支持: ZAI_SIGNING_SECRET 自定义密钥
  • 格式兼容: 支持 HEX 和 UTF-8 格式密钥
  • 时间窗口: 5 分钟时间窗口,提升安全性

📋 密钥配置方式

# 方式1:使用默认密钥(自动)
# 无需配置,自动使用内置密钥

# 方式2:环境变量(推荐)
export ZAI_SIGNING_SECRET="your-secret-key-here"

# 方式3:HEX 格式密钥
export ZAI_SIGNING_SECRET="6b65792d40404040292929282928283929292d787878782626262525252525"

签名算法特性

  • ✅ 双层 HMAC-SHA256 签名机制,确保请求安全性
  • ✅ 支持多种密钥格式(HEX、UTF-8)
  • ✅ 完整的 JWT 多字段提取支持
  • ✅ 智能密钥格式检测和转换
  • ✅ 环境变量配置支持

🔑 获取 Z.ai API Token

要使用完整的多模态功能,需要获取正式的 Z.ai API Token:

方式 1: 通过 Z.ai 网站

  1. 访问 Z.ai 官网
  2. 注册账户并登录
  3. 在开发者设置中获取 API Token
  4. 将 Token 设置为 ZAI_TOKEN 环境变量

方式 2: 浏览器开发者工具(临时方案)

  1. 打开 Z.ai 聊天界面
  2. 按 F12 打开开发者工具
  3. 切换到 "Application" 或 "存储" 标签
  4. 查看 Local Storage 中的认证 token
  5. 复制 token 值设置为环境变量

⚠️ 注意: 方式 2 获取的 token 可能有时效性,建议使用方式 1 获取长期有效的 API Token。

部署方式

1. Deno Deploy 部署

Deno Deploy 是一个全球分布式的边缘计算平台,非常适合部署 Deno 应用。

步骤:

  1. 准备代码

    • 确保你有一个 GitHub 仓库,包含main.ts文件
    • 将代码推送到 GitHub 仓库
  2. 登录 Deno Deploy

  3. 创建新项目

    • 点击"New Project"按钮
    • 选择你的 GitHub 仓库
    • 选择包含main.ts文件的分支
  4. 配置环境变量

    • 在项目设置中,添加以下环境变量:
      • DEFAULT_KEY: 客户端 API 密钥(可选,默认: sk-your-key)
      • ZAI_TOKEN: Z.ai 访问令牌(多模态功能必需,不提供仅支持文本对话)
      • ZAI_TOKENS: 多 Token 池(高可用推荐,用逗号分隔多个 Token)
      • ZAI_SIGNING_SECRET: 签名密钥(可选,用于自定义签名算法)
      • DEBUG_MODE: 调试模式开关(可选,默认: true)
      • DEFAULT_STREAM: 默认流式响应(可选,默认: true)
      • DASHBOARD_ENABLED: Dashboard 功能开关(可选,默认: true)
  5. 部署

    • 点击"Deploy"按钮
    • 等待部署完成
  6. 测试

    • 部署完成后,你会获得一个 URL
    • 访问 {你的URL}/v1/models 测试 API 是否正常工作
    • 访问 {你的URL}/dashboard 查看监控仪表板

📄 部署后页面介绍

部署完成后,可通过你的 Deno Deploy 域名访问以下页面(完整端点说明见下文「服务端点访问」):

页面 路径 说明
🏠 服务首页 / 功能概览与导航入口
📊 监控面板 /dashboard 实时请求统计与性能指标(可通过 DASHBOARD_ENABLED 关闭)
📚 API 文档 /docs 完整接口说明与示例
📋 模型列表 /v1/models 可用模型与状态
🤖 聊天接口 /v1/chat/completions OpenAI 兼容主接口

2. 本地开发运行

适合本地开发、测试和内网部署场景。

🚀 快速开始

  1. 安装 Deno

    # Windows (PowerShell)
    irm https://deno.land/install.ps1 | iex
    
    # macOS/Linux
    curl -fsSL https://deno.land/install.sh | sh
    
    # 或访问 https://deno.land/#installation 查看更多安装方式
  2. 下载项目文件

    • 确保你有 main.ts 文件
  3. 配置环境变量(可选)

    # Linux/macOS
    export DEFAULT_KEY="sk-your-local-key"
    export ZAI_TOKEN="your-zai-token"                    # 单Token配置
    export ZAI_TOKENS="token1,token2,token3"              # 多Token池(推荐)
    export ZAI_SIGNING_SECRET="your-signing-secret"       # 自定义签名密钥
    export DEBUG_MODE="true"
    export PORT="9090"
    
    # Windows CMD
    set DEFAULT_KEY=sk-your-local-key
    set ZAI_TOKEN=your-zai-token
    set ZAI_TOKENS=token1,token2,token3
    set ZAI_SIGNING_SECRET=your-signing-secret
    set DEBUG_MODE=true
    set PORT=9090
    
    # Windows PowerShell
    $env:DEFAULT_KEY="sk-your-local-key"
    $env:ZAI_TOKEN="your-zai-token"
    $env:ZAI_TOKENS="token1,token2,token3"
    $env:ZAI_SIGNING_SECRET="your-signing-secret"
    $env:DEBUG_MODE="true"
    $env:PORT="9090"
  4. 启动服务

    deno run --allow-net --allow-env main.ts

🏠 本地访问地址

启动成功后,通过以下地址访问各项功能:

功能 本地地址 描述
🏠 服务首页 http://localhost:9090/ 功能概览和导航
🤖 API 端点 http://localhost:9090/v1/chat/completions 主要聊天接口
📊 监控面板 http://localhost:9090/dashboard 实时请求统计
📚 API 文档 http://localhost:9090/docs 完整使用说明
📋 模型列表 http://localhost:9090/v1/models 可用模型信息

🔧 本地配置推荐

# 开发环境推荐配置
export DEFAULT_KEY="sk-your-development-key"     # 自定义API密钥
export ZAI_TOKENS="token1,token2,token3"         # 多Token池(高可用)
export ZAI_SIGNING_SECRET="your-secret-key"      # 自定义签名密钥
export DEBUG_MODE="true"                         # 启用详细日志
export DEFAULT_STREAM="true"                     # 默认流式响应
export DASHBOARD_ENABLED="true"                  # 启用监控面板
export PORT="9090"                               # 自定义端口

# 生产环境推荐配置
export DEFAULT_KEY="sk-your-secure-key"          # 安全API密钥
export ZAI_TOKENS="prod-token1,prod-token2"       # 生产Token池
export ZAI_SIGNING_SECRET="your-prod-secret"      # 生产签名密钥
export DEBUG_MODE="false"                        # 关闭调试日志
export DEFAULT_STREAM="true"                     # 优化响应速度
export DASHBOARD_ENABLED="true"                  # 保留监控

🚀 高可用配置示例

# 多Token池配置示例
export ZAI_TOKENS="eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9...,eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9..."

# 签名密钥配置示例
export ZAI_SIGNING_SECRET="6b65792d40404040292929282928283929292d787878782626262525252525"

# 检查配置
echo "Token池大小: $(echo $ZAI_TOKENS | tr ',' '\n' | wc -l)"
echo "签名密钥长度: ${#ZAI_SIGNING_SECRET}"

⚡ 快速测试

# 测试API连通性
curl http://localhost:9090/v1/models

# 测试聊天功能
curl -X POST http://localhost:9090/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-your-local-key" \
  -d '{
    "model": "0727-360B-API",
    "messages": [{"role": "user", "content": "你好"}],
    "stream": false
  }'

3. 生产环境部署

适合需要更高控制力的生产环境部署。

📦 编译为独立可执行文件

# 编译为二进制文件(推荐用于生产环境)
deno compile --allow-net --allow-env --output ztoapi main.ts

# 运行编译后的文件
./ztoapi          # Linux/macOS
ztoapi.exe        # Windows

🐳 Docker 部署 (推荐)

使用 Docker Compose 可以一键启动服务,是本地开发和生产部署的推荐方式。

  1. 准备文件

    • 项目已包含 Dockerfiledocker-compose.yml 文件,无需手动创建。
  2. 配置环境变量

    • 打开 docker-compose.yml 文件。
    • 修改 environment 部分的 DEFAULT_KEY 为你自己的安全密钥。
    • 根据需要,可以取消注释并设置 ZAI_TOKEN 等其他变量。
  3. 构建和运行

    # 在 ZtoApi 目录下,一键构建并启动服务
    docker-compose up -d
    
    # 查看服务日志
    docker-compose logs -f
    
    # 关闭并移除容器
    docker-compose down

🔄 服务管理

使用进程管理器确保服务稳定运行:

# 使用 PM2 (需要先安装 pm2)
pm2 start "deno run --allow-net --allow-env main.ts" --name ztoapi

# 使用 systemd (Linux)
# 创建 /etc/systemd/system/ztoapi.service
[Unit]
Description=ZtoApi Service
After=network.target

[Service]
Type=simple
User=your-user
WorkingDirectory=/path/to/your/app
ExecStart=/path/to/deno run --allow-net --allow-env main.ts
Restart=always
Environment=DEFAULT_KEY=sk-your-key
Environment=DEBUG_MODE=false

[Install]
WantedBy=multi-user.target

4. 本地 vs 云端部署对比

特性 本地运行 Deno Deploy
部署难度 ⭐⭐ 需要手动配置 ⭐⭐⭐⭐⭐ 一键部署
端口配置 🔧 可自定义 ⚡ 自动分配
SSL 证书 ❌ 需要手动配置 ✅ 自动 HTTPS
全球分发 ❌ 单节点 ✅ 边缘网络
成本 🆓 服务器资源 🆓 有免费额度
控制力 ⭐⭐⭐⭐⭐ 完全控制 ⭐⭐⭐ 受平台限制
维护难度 ⭐⭐ 需要运维 ⭐⭐⭐⭐⭐ 托管服务

🔧 环境变量配置

🟢 基础配置(开箱即用)

所有配置项都有合理的默认值,可直接部署使用。

变量名 说明 默认值 示例值
DEFAULT_KEY 客户端 API 密钥(用于身份验证) sk-your-key sk-my-secure-key-2024

🔄 Token 管理配置(新版特性)

变量名 说明 默认值 示例值
ZAI_TOKEN 单个 Z.ai 访问令牌 空(自动匿名模式) eyJhbGciOiJFUzI1NiIs...
ZAI_TOKENS 多 Token 池(高可用推荐) token1,token2,token3

🔐 签名算法配置(新版特性)

变量名 说明 默认值 示例值
ZAI_SIGNING_SECRET 自定义签名密钥 内置安全密钥 your-secret-key
HEX 格式密钥 内置安全密钥 6b65792d40404040292929282928283929292d787878782626262525252525

🟡 功能开关配置

变量名 说明 默认值 可选值
DEBUG_MODE 调试模式(详细日志输出) true true / false
DEFAULT_STREAM 默认流式响应模式 true true / false
DASHBOARD_ENABLED 实时监控 Dashboard true true / false

🔴 高级配置(通常无需修改)

变量名 说明 默认值 示例值
UPSTREAM_URL Z.ai 上游 API 地址 https://chat.z.ai/api/v2/chat/completions 自定义代理地址
PORT 服务器端口(仅自托管) 9090 8080

🎯 配置优先级说明

  1. Token 配置优先级: ZAI_TOKENS > ZAI_TOKEN > 匿名 Token
  2. 签名密钥优先级: ZAI_SIGNING_SECRET > 内置默认密钥
  3. 兼容性: 支持新旧配置并存,自动选择最佳配置

💡 配置建议

开发环境推荐:

  • ✅ 使用 ZAI_TOKENS 配置多个 Token 提升可用性
  • ✅ 设置 ZAI_SIGNING_SECRET 自定义签名密钥
  • ✅ 启用 DEBUG_MODE=true 便于调试

生产环境推荐:

  • 必须配置 ZAI_TOKENS 确保高可用
  • 必须配置 ZAI_SIGNING_SECRET 提升安全性
  • ✅ 设置 DEBUG_MODE=false 提升性能
  • ✅ 保留 DASHBOARD_ENABLED=true 监控服务状态

⚠️ 重要提醒

  • 多模态功能: 必须设置 ZAI_TOKENZAI_TOKENS 才能使用图像、视频、文档、音频功能
  • Token 权限: 匿名 Token 仅支持文本对话,正式 Token 支持全部功能
  • 签名安全: 新版签名算法提供企业级安全保障
  • 高可用: 强烈建议配置多个 Token 避免单点故障

📝 API 使用示例

🐍 Python 示例

import openai

# 配置客户端
client = openai.OpenAI(
    api_key="your-api-key",  # 对应 DEFAULT_KEY
    base_url="https://your-project.deno.dev/v1"
)

# 使用 GLM-4.5 进行文本对话
response = client.chat.completions.create(
    model="0727-360B-API",  # GLM-4.5
    messages=[{"role": "user", "content": "你好,请介绍一下自己"}]
)
print(response.choices[0].message.content)

# 使用 GLM-4.6 进行增强对话
response = client.chat.completions.create(
    model="glm-4.6",
    messages=[{"role": "user", "content": "用Python写一个快速排序算法"}]
)
print(response.choices[0].message.content)

# 使用 GLM-4.5V 进行全方位多模态理解(支持自动图像上传和URL转换)

# 1. 图像分析(新版支持自动上传处理)
response = client.chat.completions.create(
    model="glm-4.5v",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "分析这张图片的内容和情感"},
            {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,..."}}
        ]
    }]
)
# 新版特性:自动上传图像到Z.ai服务器并转换URL格式

# 2. 远程图像URL(新版支持)
response = client.chat.completions.create(
    model="glm-4.5v",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "分析这张网络图片"},
            {"type": "image_url", "image_url": {"url": "https://example.com/image.jpg"}}
        ]
    }]
)
# 新版特性:自动下载远程图像并上传处理

# 3. 使用思考模式(GLM-4.6)
response = client.chat.completions.create(
    model="glm-4.6",
    messages=[{"role": "user", "content": "用Python写一个快速排序算法,详细解释思路"}],
    reasoning=True  # 启用思考模式
)
# 新版特性:自动检测思考模式,展示详细推理过程

# 2. 视频理解
response = client.chat.completions.create(
    model="glm-4.5v",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "总结这个视频的主要内容"},
            {"type": "video_url", "video_url": {"url": "data:video/mp4;base64,..."}}
        ]
    }]
)

# 3. 文档分析
response = client.chat.completions.create(
    model="glm-4.5v",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "提取这份文档的关键信息"},
            {"type": "document_url", "document_url": {"url": "data:application/pdf;base64,..."}}
        ]
    }]
)

# 4. 音频理解
response = client.chat.completions.create(
    model="glm-4.5v",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "转录并分析这段音频内容"},
            {"type": "audio_url", "audio_url": {"url": "data:audio/mp3;base64,..."}}
        ]
    }]
)

# 5. 多媒体组合分析
response = client.chat.completions.create(
    model="glm-4.5v",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "综合分析这些多媒体内容的关联性"},
            {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,..."}},
            {"type": "document_url", "document_url": {"url": "data:application/pdf;base64,..."}},
            {"type": "audio_url", "audio_url": {"url": "data:audio/wav;base64,..."}}
        ]
    }]
)

print(response.choices[0].message.content)

# 流式请求示例
response = client.chat.completions.create(
    model="0727-360B-API",
    messages=[{"role": "user", "content": "请写一首关于春天的诗"}],
    stream=True
)

for chunk in response:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

🌐 cURL 示例

# 使用 GLM-4.5 进行文本对话
curl -X POST https://your-project.deno.dev/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{
    "model": "0727-360B-API",
    "messages": [{"role": "user", "content": "你好"}],
    "stream": false
  }'

# 使用 GLM-4.6 进行增强对话
curl -X POST https://your-project.deno.dev/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{
    "model": "glm-4.6",
    "messages": [{"role": "user", "content": "用Python写一个快速排序算法"}],
    "stream": false
  }'

# 使用 GLM-4.5V 进行全方位多模态理解

# 图像分析
curl -X POST https://your-project.deno.dev/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{
    "model": "glm-4.5v",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "分析这张图片"},
        {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,..."}}
      ]
    }]
  }'

# 视频理解
curl -X POST https://your-project.deno.dev/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{
    "model": "glm-4.5v",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "总结这个视频内容"},
        {"type": "video_url", "video_url": {"url": "data:video/mp4;base64,..."}}
      ]
    }]
  }'

# 文档分析
curl -X POST https://your-project.deno.dev/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{
    "model": "glm-4.5v",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "分析这份文档"},
        {"type": "document_url", "document_url": {"url": "data:application/pdf;base64,..."}}
      ]
    }]
  }'

# 多媒体组合分析
curl -X POST https://your-project.deno.dev/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{
    "model": "glm-4.5v",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "综合分析这些内容"},
        {"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,..."}},
        {"type": "document_url", "document_url": {"url": "data:application/pdf;base64,..."}}
      ]
    }]
  }'

# 流式请求示例
curl -X POST https://your-project.deno.dev/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{
    "model": "0727-360B-API",
    "messages": [{"role": "user", "content": "请写一首诗"}],
    "stream": true
  }'

🟨 JavaScript 示例

// 使用 GLM-4.5 进行文本对话
async function chatWithGLM45(message, stream = false) {
  const response = await fetch(
    "https://your-project.deno.dev/v1/chat/completions",
    {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: "Bearer your-api-key",
      },
      body: JSON.stringify({
        model: "0727-360B-API",
        messages: [{ role: "user", content: message }],
        stream: stream,
      }),
    }
  );

  const data = await response.json();
  console.log(data.choices[0].message.content);
}

// 使用 GLM-4.5V 进行全方位多模态理解

// 1. 图像分析
async function analyzeImage(text, imageUrl) {
  const response = await fetch(
    "https://your-project.deno.dev/v1/chat/completions",
    {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: "Bearer your-api-key",
      },
      body: JSON.stringify({
        model: "glm-4.5v",
        messages: [
          {
            role: "user",
            content: [
              { type: "text", text: text },
              { type: "image_url", image_url: { url: imageUrl } },
            ],
          },
        ],
      }),
    }
  );

  const data = await response.json();
  console.log(data.choices[0].message.content);
}

// 2. 视频理解
async function analyzeVideo(text, videoUrl) {
  const response = await fetch(
    "https://your-project.deno.dev/v1/chat/completions",
    {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: "Bearer your-api-key",
      },
      body: JSON.stringify({
        model: "glm-4.5v",
        messages: [
          {
            role: "user",
            content: [
              { type: "text", text: text },
              { type: "video_url", video_url: { url: videoUrl } },
            ],
          },
        ],
      }),
    }
  );

  const data = await response.json();
  console.log(data.choices[0].message.content);
}

// 3. 文档分析
async function analyzeDocument(text, documentUrl) {
  const response = await fetch(
    "https://your-project.deno.dev/v1/chat/completions",
    {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: "Bearer your-api-key",
      },
      body: JSON.stringify({
        model: "glm-4.5v",
        messages: [
          {
            role: "user",
            content: [
              { type: "text", text: text },
              { type: "document_url", document_url: { url: documentUrl } },
            ],
          },
        ],
      }),
    }
  );

  const data = await response.json();
  console.log(data.choices[0].message.content);
}

// 4. 多媒体组合分析
async function analyzeMultimedia(text, mediaUrls) {
  const content = [{ type: "text", text: text }];

  // 添加各种媒体类型
  if (mediaUrls.image)
    content.push({ type: "image_url", image_url: { url: mediaUrls.image } });
  if (mediaUrls.video)
    content.push({ type: "video_url", video_url: { url: mediaUrls.video } });
  if (mediaUrls.document)
    content.push({
      type: "document_url",
      document_url: { url: mediaUrls.document },
    });
  if (mediaUrls.audio)
    content.push({ type: "audio_url", audio_url: { url: mediaUrls.audio } });

  const response = await fetch(
    "https://your-project.deno.dev/v1/chat/completions",
    {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: "Bearer your-api-key",
      },
      body: JSON.stringify({
        model: "glm-4.5v",
        messages: [{ role: "user", content }],
      }),
    }
  );

  const data = await response.json();
  console.log(data.choices[0].message.content);
}

// 使用示例
chatWithGLM45("你好,请介绍一下JavaScript");
analyzeImage("分析这张图片", "data:image/jpeg;base64,...");
analyzeVideo("总结视频内容", "data:video/mp4;base64,...");
analyzeDocument("提取文档要点", "data:application/pdf;base64,...");
analyzeMultimedia("综合分析这些内容", {
  image: "data:image/jpeg;base64,...",
  document: "data:application/pdf;base64,...",
});

🎯 技术架构特性

🔧 核心技术栈

  • 运行时: Deno 1.40+ (零配置、安全优先)
  • 语言: TypeScript 5.0+ (类型安全、现代语法)
  • HTTP 服务: Deno 原生 HTTP API (高性能、低延迟)
  • 流式传输: Server-Sent Events (SSE) 标准实现
  • 部署平台: 支持 Deno Deploy 边缘计算和传统服务器

🚀 性能特性

  • 零依赖: 无需外部依赖包,启动速度极快
  • 内存优化: 智能请求缓存和内存管理
  • 并发处理: 支持高并发请求和连接复用
  • 边缘部署: 基于 Deno Deploy 的全球边缘网络

🧠 AI 处理特性

  • 思考过程解析: 智能提取和展示 GLM-4.5 推理过程
  • 多模态支持: 支持文本和图像输入处理
  • 流式优化: 实时逐 token 输出,响应更流畅
  • 匿名会话: 每次对话独立 token,保护隐私

🚀 新版高级特性

  • Token 池管理: 智能轮换和故障切换机制
  • 图像处理流水线: 自动上传、格式转换、URL 映射
  • MCP 服务器集成: 搜索、编程、PPT 生成等高级功能
  • 智能浏览器模拟: 动态 Header 生成和指纹参数
  • 高级模式检测: 自动识别思考、搜索、视觉模式
  • 增强签名算法: 双层 HMAC-SHA256,提供企业级安全保障

📊 监控运维特性

  • 实时 Dashboard: Web 界面实时监控 API 使用情况
  • 性能指标: 响应时间、成功率、错误统计
  • 请求追踪: 详细的请求日志和用户代理分析
  • SSE 监控: 实时数据推送,无需页面刷新

🌐 服务端点访问

部署完成后,你可以通过以下端点访问各项功能:

端点 功能 描述
/ 🏠 服务首页 功能概览和快速导航
/v1/models 📋 模型列表 获取可用 AI 模型信息
/v1/chat/completions 🤖 聊天完成 OpenAI 兼容的主要 API 端点
/dashboard 📊 监控面板 实时 API 使用统计和性能监控
/docs 📚 API 文档 完整的 API 使用说明和示例

示例 URL: https://your-project.deno.dev/v1/chat/completions

🛠️ 故障排除指南

❌ 常见问题及解决方案

🚫 部署相关问题

问题 可能原因 解决方案
Deno Deploy 部署失败 TypeScript 语法错误 检查 main.ts 文件语法,运行 deno check main.ts
模块加载错误 权限不足 确保启动命令包含 --allow-net --allow-env
启动时崩溃 环境变量冲突 检查环境变量格式,使用默认值测试

🔑 API 请求问题

问题 可能原因 解决方案
401 Unauthorized API 密钥错误 检查 Authorization: Bearer your-key 格式
502 Bad Gateway 上游服务异常 检查 Z.ai 服务状态,等待恢复
超时无响应 网络连接问题 检查 UPSTREAM_URL 设置,测试网络连通性

📊 Dashboard 问题

问题 可能原因 解决方案
页面无法访问 Dashboard 未启用 设置 DASHBOARD_ENABLED=true
数据不更新 SSE 连接中断 刷新页面,检查浏览器控制台错误
样式异常 CDN 资源加载失败 检查网络连接,等待 CDN 恢复

🌊 流式响应问题

问题 可能原因 解决方案
流式响应中断 网络不稳定 使用非流式模式:stream: false
响应格式错误 客户端不支持 SSE 确认客户端支持 text/event-stream
内容乱码 编码问题 检查客户端字符编码设置

🎯 多模态内容问题

问题 排查步骤 解决方案
GLM-4.5V 无法识别多媒体 1. 确认模型 ID: "glm-4.5v"
2. 开启调试模式查看日志
3. 检查媒体格式和大小
使用正确的多模态消息格式
多媒体数据未发送到后台 查看调试日志中的 🎯 检测到图像内容 验证消息结构包含对应的 URL 字段
媒体格式不支持 检查是否为 Base64 或 HTTP URL 支持图像/视频/文档/音频多种格式
上游返回"something went wrong" 检查是否设置了 ZAI_TOKEN 环境变量 多模态功能需要正式 API Token,不支持匿名 token

🔄 Token 池管理问题(新版)

问题 排查步骤 解决方案
Token 池不工作 1. 检查 ZAI_TOKENS 格式
2. 确认 Token 有效性
3. 查看调试日志
使用逗号分隔的有效 Token
频繁切换 Token 1. 检查 Token 权限
2. 查看失败次数统计
3. 验证网络连接
更新无效的 Token
匿名 Token 失败 1. 检查网络连接
2. 查看匿名 Token 获取日志
3. 配置正式 Token
配置 ZAI_TOKENZAI_TOKENS

🔐 签名算法问题(新版)

问题 排查步骤 解决方案
签名验证失败 1. 检查 ZAI_SIGNING_SECRET 配置
2. 确认密钥格式正确
3. 查看签名生成日志
使用正确的密钥格式
签名参数不匹配 1. 检查时间窗口同步
2. 验证请求参数格式
3. 确认密钥使用正确
调整参数配置

🧠 高级功能问题(新版)

问题 排查步骤 解决方案
思考模式未启用 1. 确认使用 GLM-4.6 模型
2. 检查 reasoning: true 参数
3. 查看调试日志
使用正确的模型和参数
搜索功能不工作 1. 检查 MCP 服务器配置
2. 确认模型支持搜索功能
3. 查看功能检测日志
使用支持搜索的模型
图像上传失败 1. 检查 Token 权限
2. 确认图像格式和大小
3. 查看上传错误日志
使用有效的 Token 和正确格式

⚠️ 重要: 如果使用匿名 token(未设置ZAI_TOKEN),多媒体请求会被 Z.ai 服务器拒绝。

支持的多模态消息格式:

{
  "model": "glm-4.5v",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "分析这些多媒体内容" },
        {
          "type": "image_url",
          "image_url": { "url": "data:image/jpeg;base64,..." }
        },
        {
          "type": "video_url",
          "video_url": { "url": "data:video/mp4;base64,..." }
        },
        {
          "type": "document_url",
          "document_url": { "url": "data:application/pdf;base64,..." }
        },
        {
          "type": "audio_url",
          "audio_url": { "url": "data:audio/mp3;base64,..." }
        }
      ]
    }
  ]
}

调试日志关键字:

🔄 Token 池管理

  • Token 池已初始化,包含 X 个 Token - Token 池初始化成功
  • Token 获取成功: xxxx... - Token 获取正常
  • 切换到下一个 Token: xxxx... - Token 故障切换
  • Token 已标记为无效 - Token 失效标记

🖼️ 图像处理

  • 🎯 检测到图像内容 - 确认收到图像
  • 开始上传图像: xxxx... - 图像上传开始
  • 图像上传成功: file_xxx - 图像上传成功
  • GLM-4.5V 图像 URL 已转换 - URL 格式转换完成
  • 图像已添加到文件列表: file_xxx - 非视觉模型文件处理

🧠 模式检测

  • 模型能力检测: 思考=X, 搜索=X, 高级搜索=X, 视觉=X, MCP=X - 能力检测结果
  • 检测到高级搜索模型,添加 advanced-search MCP 服务器 - 高级搜索启用
  • 检测到搜索模型,添加 deep-web-search MCP 服务器 - 搜索功能启用

🔐 签名算法

  • 使用环境变量密钥: xxxx... - 自定义密钥使用
  • 使用默认密钥 - 默认密钥使用
  • 生成新版签名: xxxx - 签名生成成功

🎯 多模态内容(原有)

  • 🎯 检测到全方位多模态请求 - 确认收到多媒体内容
  • 🖼️ 消息[X] 图像[Y] - 图像数据详情
  • 🎥 消息[X] 视频[Y] - 视频数据详情
  • 📄 消息[X] 文档[Y] - 文档数据详情
  • 🎵 消息[X] 音频[Y] - 音频数据详情
  • 🎯 多模态内容统计 - 各类媒体统计信息
  • ⚠️ 警告: 模型不支持多模态 - 模型选择错误
  • ⚠️ 重要警告: 正在使用匿名token处理多模态请求 - Token 权限不足
  • ✅ 使用正式API Token,支持完整多模态功能 - Token 配置正确

调试模式

启用调试模式以获取详细日志:

# 在Deno Deploy中,设置环境变量
DEBUG_MODE=true

# 在自托管环境中
export DEBUG_MODE=true
deno run --allow-net --allow-env main.ts

⚡ 性能优化建议

🎯 生产环境优化

优化项 配置 效果 适用场景
关闭调试日志 DEBUG_MODE=false 减少 I/O 开销,提升 20-30% 性能 生产环境
禁用 Dashboard DASHBOARD_ENABLED=false 节省内存和 CPU 资源 无监控需求
流式响应优化 DEFAULT_STREAM=true 降低首字节延迟 实时对话场景

📈 并发处理优化

# 推荐的生产环境配置
export DEBUG_MODE=false
export DASHBOARD_ENABLED=true  # 保留监控功能
export DEFAULT_STREAM=true     # 优化响应速度

🚀 部署优化

  • Deno Deploy: 自动全球边缘分发,无需额外配置
  • 自托管: 建议使用反向代理 (Nginx/Cloudflare) 进行负载均衡
  • 监控: 利用内置 Dashboard 监控关键指标

🔒 安全防护指南

🛡️ 身份验证安全

安全措施 配置方法 重要性
自定义 API 密钥 DEFAULT_KEY=your-secure-key ⭐⭐⭐⭐⭐
使用复杂密钥 至少 32 位随机字符 ⭐⭐⭐⭐
定期轮换密钥 建议每月更换 ⭐⭐⭐

🌐 网络安全

# 推荐的安全配置
export DEFAULT_KEY="sk-$(openssl rand -hex 32)"  # 生成随机密钥
export DEBUG_MODE=false                           # 避免敏感信息泄露

📊 访问监控

  • 实时监控: 通过 Dashboard 监控异常请求模式
  • 日志分析: 关注频繁失败的 IP 地址
  • 流量统计: 监控 API 调用频率,防止滥用

🚨 应急响应

威胁类型 检测方法 应对措施
API 密钥泄露 异常调用量 立即更换 DEFAULT_KEY
恶意请求 高错误率 临时禁用服务,检查日志
服务滥用 超高并发 考虑添加速率限制

更新维护

  1. 定期更新: 关注 Deno 官方更新,及时升级运行时
  2. 依赖管理: 虽然本项目使用原生 API,但仍需关注 Deno API 变化
  3. 备份策略: 定期备份配置和环境变量

技术支持

如果遇到问题,可以通过以下方式获取帮助:

  1. 查看 Deno 官方文档: https://deno.land/manual
  2. 访问 Deno Deploy 文档: https://deno.com/deploy/docs
  3. 提交 Issue 到原项目仓库

🤝 贡献和支持

📋 项目状态

  • 稳定运行: 已在生产环境验证
  • 🔄 持续更新: 跟随 Deno 和 Z.ai 最新特性
  • 🛡️ 安全优先: 定期安全审计和更新
  • 📈 性能优化: 持续性能调优和监控

🌟 Star History

如果这个项目对你有帮助,请给我们一个 ⭐ Star!

📞 技术支持

支持渠道 描述 链接
📚 官方文档 Deno 官方文档 deno.land/manual
🚀 部署平台 Deno Deploy 文档 deno.com/deploy/docs
🐛 问题反馈 GitHub Issues 项目仓库 Issues 页面
💬 讨论交流 GitHub Discussions 项目仓库 Discussions 页面

📄 许可证

本项目基于 MIT 许可证开源,详见 LICENSE 文件。

🎉 更新总结

🚀 v2.1 重大更新 (2025)

🔧 API 升级

  • v2 API: 升级到 Z.ai v2 API 端点 (/api/v2/chat/completions)
  • 兼容性提升: 所有模型现在统一使用 v2 API,提升稳定性和性能
  • 无缝迁移: 向后兼容现有配置,自动使用新端点

🤖 新模型支持

  • GLM-4.7: 最新推理模型,更强的思考和编程能力
  • GLM-5: 下一代旗舰模型,全方位能力提升
  • GLM-4.6V: 增强多模态模型,视觉理解 + 高级推理
  • GLM-4.5-Air: 轻量级模型,快速响应,适合日常对话
  • 0808-360B-DR: 深度研究专用模型,适合复杂分析任务

📋 当前支持模型 (共8个)

  1. GLM-4.5 (0727-360B-API) - 通用对话
  2. GLM-4.6 (glm-4.6) - 增强推理
  3. GLM-4.7 (glm-4.7) - 🆕 最新推理
  4. GLM-5 (glm-5) - 🚀 旗舰模型
  5. GLM-4.5V (glm-4.5v) - 多模态理解
  6. GLM-4.6V (glm-4.6v) - 增强多模态
  7. GLM-4.5-Air (0727-106B-API) - ⚡ 轻量快速
  8. 0808-360B-DR (0808-360B-DR) - 🔬 深度研究

🚀 v2.0 重大更新

新版 ZtoApi 带来了革命性的功能升级,与 Python 版本功能完全对齐:

🔄 企业级可用性

  • 智能 Token 池: 多 Token 轮换,自动故障切换,大幅提升服务稳定性
  • 高可用架构: 支持生产级部署需求,确保服务连续性

🖼️ 完整多模态支持

  • 自动图像处理: 支持 base64 和远程 URL,自动上传和格式转换
  • GLM-4.5V 优化: 专用 URL 格式,完美视觉理解能力

🔍 高级 AI 功能

  • MCP 服务器: 深度搜索、高级搜索、编程助手、PPT 生成等
  • 智能模式检测: 自动识别思考模式、搜索模式、视觉能力

🧠 智能浏览器模拟

  • 动态 Header 生成: 真实浏览器指纹,完美模拟用户访问
  • 请求参数优化: 完整的浏览器环境参数

🔐 安全增强

  • 双层签名算法: 安全签名
  • 环境变量支持: 灵活的密钥配置管理

📈 性能提升

  • 响应速度: 新版图像处理和 Header 优化提升 30% 响应速度
  • 稳定性: Token 池管理减少 90% 的服务中断
  • 安全性: 企业级签名算法和 Token 池管理,保障服务安全

🎯 适用场景

  • 🏢 企业部署: 高可用、多 Token、智能故障切换
  • 🔬 开发测试: 完整功能测试、智能调试、详细日志
  • 🚀 生产服务: 稳定可靠、性能优化、安全增强

🎉 享受使用新版 ZtoApi 带来的企业级体验!

Made with ❤️ using Deno & TypeScript - v2.0 Enterprise Edition

About

ZtoApi 是一个高性能的 OpenAI 兼容 API 代理服务器,专为 Z.ai 的 GLM 系列模型设计(现已最新支持 GLM-4.6 、 GLM-4.7 和 GLM-5,同时兼容 GLM-4.5 和 GLM-4.5V)。使用 Deno 原生 HTTP API 实现,支持完整的流式和非流式响应,提供实时监控 Dashboard,让你能够无缝地将 Z.ai 的强大 AI 能力集成到现有的 OpenAI 客户端应用中。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 99.8%
  • Dockerfile 0.2%