📖 API Documentation

OpenAI 兼容的 API 接口文档

概述

ZtoApi 是一个为 Z.ai GLM-4.5 模型提供 OpenAI 兼容 API 接口的代理服务器。

基础 URL

https://zto2api.deno.dev/v1

🔐 身份验证

所有 API 请求都需要在请求头中包含 Bearer Token:

Authorization: Bearer $你设置的 DEFAULT_KEY

🔌 API 端点

GET /v1/models

获取可用模型列表

curl https://zto2api.deno.dev/v1/models \
  -H "Authorization: Bearer $你设置的 DEFAULT_KEY"
POST /v1/chat/completions

创建聊天完成(支持流式和非流式)

请求参数

model string, 必需 - 模型名称 (如 "GLM-4.5")
messages array, 必需 - 消息列表
stream boolean, 可选 - 是否流式响应(默认: true)
enable_thinking boolean, 可选 - 是否启用思考功能

请求示例

curl -X POST https://zto2api.deno.dev/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $你设置的 DEFAULT_KEY" \
  -d '{
    "model": "GLM-4.5",
    "messages": [
      {"role": "user", "content": "你好"}
    ],
    "stream": false
  }'

🐍 Python 示例

import openai

client = openai.OpenAI(
    api_key="$你设置的 DEFAULT_KEY",
    base_url="https://zto2api.deno.dev/v1"
)

response = client.chat.completions.create(
    model="GLM-4.5",
    messages=[{"role": "user", "content": "你好"}]
)

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

🔑 Token 管理策略

ZtoApi 支持四种 Token 管理策略,优先级从高到低:

1. 静态 Token 池(ZAI_TOKEN 多 Token)⭐ 新功能

通过 | 分隔配置多个 token,每次请求随机选择

export ZAI_TOKEN="token1|token2|token3"
多账号自动轮换,配置简单
无需外部数据库,适合小规模部署
负载均衡,降低单账号请求频率

2. 固定单 Token(ZAI_TOKEN)

适用于单一账号,稳定性高

export ZAI_TOKEN="your-fixed-token"

3. KV Token Pool(KV_URL)

从 Deno KV 数据库随机选择 token,支持多账号负载均衡

export KV_URL="https://api.deno.com/databases/xxx/connect"
多账号自动轮换
单个账号失效不影响服务
支持与 zai_register.ts 联动

4. 匿名 Token(默认)

每次请求自动获取临时 token

# 不设置任何环境变量即可

🤖 KV Token Pool + zai_register 联动部署

通过 zai_register.ts 批量注册 Z.ai 账号并存储到 Deno KV,然后让 main.ts 从同一个 KV 读取 token 使用。

📋 部署步骤

1

部署账号注册器(zai_register.ts)

首先部署批量注册工具到 Deno Deploy:

# 克隆仓库
git clone https://github.com/dext7r/ZtoApi.git
cd ZtoApi/deno/zai

# 部署到 Deno Deploy
deno task deploy-register

# 或者本地运行
deno run --allow-net --allow-env --allow-read zai_register.ts

📌 访问 http://localhost:8001 批量注册账号

2

获取 KV 数据库连接 URL

在 Deno Deploy Dashboard 中获取 KV 连接 URL:

  1. 访问 https://dash.deno.com
  2. 进入你的项目 → KV 数据库
  3. 复制连接 URL,格式如下:
https://api.deno.com/databases/3e00b51f-xxx/connect
3

配置 main.ts 使用 KV Token Pool

在 main.ts 的环境变量中配置 KV_URL:

# .env.local 文件
KV_URL=https://api.deno.com/databases/3e00b51f-xxx/connect

# 或者在 Deno Deploy 环境变量中添加
# 变量名: KV_URL
# 变量值: https://api.deno.com/databases/3e00b51f-xxx/connect
4

启动并验证

启动服务,查看日志确认 KV Token Pool 已启用:

deno task start

# 查看日志输出
🔑 Token strategy: KV token pool (https://api.deno.com/...)
KV token pool initialized: https://api.deno.com/...
Selected token from KV pool: xxx@domain.com (10 accounts available)

🎯 工作原理

1. zai_register.ts 批量注册账号并存储到 Deno KV 的 ["zai_accounts", timestamp, email]
2. main.ts 从同一个 KV 读取所有账号列表
3. 每次 API 请求随机选择一个 token 使用,实现负载均衡
4. 单个账号失效不影响整体服务,其他账号继续工作
返回首页