ZyphrZero commited on
Commit
5d737f2
·
1 Parent(s): b3ffb9a

📝 更新 .env.example 和 README.md 文件

Browse files
Files changed (3) hide show
  1. .env.example +39 -60
  2. README.md +32 -35
  3. app/utils/helpers.py +1 -1
.env.example CHANGED
@@ -1,93 +1,72 @@
1
  # Z.AI API 代理服务配置文件示例
2
  # 复制此文件为 .env 并根据需要修改配置值
3
 
4
- # =============================================================================
5
- # API 认证配置
6
- # =============================================================================
7
 
8
- # 客户端认证密钥
9
- # 客户端调用时需要使用此密钥进行认证
10
  AUTH_TOKEN=sk-your-api-key
11
- # 是否跳过api key验证
 
12
  SKIP_AUTH_TOKEN=false
13
 
14
- # 备用认证令牌(匿名模式失败时使用)
 
15
  BACKUP_TOKEN=eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMxNmJjYjQ4LWZmMmYtNGExNS04NTNkLWYyYTI5YjY3ZmYwZiIsImVtYWlsIjoiR3Vlc3QtMTc1NTg0ODU4ODc4OEBndWVzdC5jb20ifQ.PktllDySS3trlyuFpTeIZf-7hl8Qu1qYF3BxjgIul0BrNux2nX9hVzIjthLXKMWAf9V0qM8Vm_iyDqkjPGsaiQ
16
 
17
- # =============================================================================
18
- # 上游服务配置
19
- # =============================================================================
20
-
21
- # Z.AI 上游 API 地址
22
- API_ENDPOINT=https://chat.z.ai/api/chat/completions
23
-
24
- # =============================================================================
25
- # 模型配置
26
- # =============================================================================
27
-
28
- # 默认模型名称
29
  PRIMARY_MODEL=GLM-4.5
30
-
31
- # 思考模式模型名称
32
  THINKING_MODEL=GLM-4.5-Thinking
33
-
34
- # 搜索模式模型名称
35
  SEARCH_MODEL=GLM-4.5-Search
36
-
37
- # Air 模型名称
38
  AIR_MODEL=GLM-4.5-Air
39
 
40
- # =============================================================================
41
- # 服务器配置
42
- # =============================================================================
43
-
44
  # 服务监听端口
45
  LISTEN_PORT=8080
46
 
47
- # 调试日志开关 (true/false)
48
  DEBUG_LOGGING=true
49
 
50
- # =============================================================================
51
- # 功能配置
52
- # =============================================================================
53
-
54
  # 思考内容处理策略
55
- # think: 转换为 <span> 标签
56
  # strip: 移除思考内容
57
  # raw: 保留原始格式
58
  THINKING_PROCESSING=think
59
 
60
- # 匿名模式开关 (true/false)
61
- # 开启后将使用临时 token,避免对话历史共享
 
62
  ANONYMOUS_MODE=true
63
 
64
- # Function Call 功能开关 (true/false)
65
  TOOL_SUPPORT=true
66
 
67
  # 工具调用扫描限制(字符数)
68
  SCAN_LIMIT=200000
69
 
70
- # =============================================================================
71
- # 使用说明
72
- # =============================================================================
73
- #
74
- # 1. 复制此文件:
75
- # cp .env.example .env
76
- #
77
- # 2. 根据需要修改配置值
78
- #
79
- # 3. 启动服务:
80
- # python main.py
81
  #
82
- # 4. OpenAI 客户端示例:
83
- # client = openai.OpenAI(
84
- # base_url="http://localhost:8080/v1",
85
- # api_key="your-auth-token" # 使用 AUTH_TOKEN 的值
86
- # )
 
 
 
 
 
 
 
87
  #
88
- # 5. Anthropic 客户端示例:
89
- # client = anthropic.Anthropic(
90
- # base_url="http://localhost:8080/v1",
91
- # api_key="your-auth-token" # 使用 AUTH_TOKEN 的值(或单独配置的 ANTHROPIC_API_KEY)
92
- # )
93
- #
 
1
  # Z.AI API 代理服务配置文件示例
2
  # 复制此文件为 .env 并根据需要修改配置值
3
 
4
+ # ========== API 基础配置 ==========
5
+ # Z.ai API 端点地址
6
+ API_ENDPOINT=https://chat.z.ai/api/chat/completions
7
 
8
+ # 客户端认证密钥(您自定义的 API 密钥,用于客户端访问本服务)
 
9
  AUTH_TOKEN=sk-your-api-key
10
+
11
+ # 跳过客户端认证(仅开发环境使用)
12
  SKIP_AUTH_TOKEN=false
13
 
14
+ # Z.ai 备用访问令牌(当匿名模式失败时使用)
15
+ # 注意:这是用于访问 Z.ai 服务的令牌,不是客户端认证密钥
16
  BACKUP_TOKEN=eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjMxNmJjYjQ4LWZmMmYtNGExNS04NTNkLWYyYTI5YjY3ZmYwZiIsImVtYWlsIjoiR3Vlc3QtMTc1NTg0ODU4ODc4OEBndWVzdC5jb20ifQ.PktllDySS3trlyuFpTeIZf-7hl8Qu1qYF3BxjgIul0BrNux2nX9hVzIjthLXKMWAf9V0qM8Vm_iyDqkjPGsaiQ
17
 
18
+ # ========== 模型配置 ==========
 
 
 
 
 
 
 
 
 
 
 
19
  PRIMARY_MODEL=GLM-4.5
 
 
20
  THINKING_MODEL=GLM-4.5-Thinking
 
 
21
  SEARCH_MODEL=GLM-4.5-Search
 
 
22
  AIR_MODEL=GLM-4.5-Air
23
 
24
+ # ========== 服务器配置 ==========
 
 
 
25
  # 服务监听端口
26
  LISTEN_PORT=8080
27
 
28
+ # 调试日志开关
29
  DEBUG_LOGGING=true
30
 
31
+ # ========== 功能配置 ==========
 
 
 
32
  # 思考内容处理策略
33
+ # think: 转换为 <span> 标签(OpenAI 兼容)
34
  # strip: 移除思考内容
35
  # raw: 保留原始格式
36
  THINKING_PROCESSING=think
37
 
38
+ # 匿名模式开关(推荐启用)
39
+ # true: 自动从 Z.ai 获取临时访问令牌,避免对话历史共享
40
+ # false: 使用固定令牌 BACKUP_TOKEN
41
  ANONYMOUS_MODE=true
42
 
43
+ # Function Call 功能开关
44
  TOOL_SUPPORT=true
45
 
46
  # 工具调用扫描限制(字符数)
47
  SCAN_LIMIT=200000
48
 
49
+ # ========== Z.ai 访问令牌获取说明 ==========
50
+ #
51
+ # 方式一:匿名模式(推荐,默认启用)
52
+ # - 设置 ANONYMOUS_MODE=true
53
+ # - 系统会自动从 Z.ai 获取临时访问令牌
54
+ # - 无需手动配置 Z.ai 账户
 
 
 
 
 
55
  #
56
+ # 方式二:固定令牌模式
57
+ # - 设置 ANONYMOUS_MODE=false
58
+ # - 需要手动获取 Z.ai 访问令牌并设置 BACKUP_TOKEN
59
+ #
60
+ # 获取 Z.ai 访问令牌步骤:
61
+ # 1. 访问 https://chat.z.ai
62
+ # 2. 打开浏览器开发者工具 (F12)
63
+ # 3. 切换到 Network 标签页
64
+ # 4. 在 Z.ai 中发送一条消息
65
+ # 5. 在网络请求中找到 chat/completions 请求
66
+ # 6. 查看请求头中的 Authorization: Bearer <token>
67
+ # 7. 复制 <token> 部分到 BACKUP_TOKEN
68
  #
69
+ # 注意:
70
+ # - BACKUP_TOKEN 是访问 Z.ai 服务的令牌
71
+ # - AUTH_TOKEN 是客户端访问本代理服务的认证密钥(您自定义)
72
+ # - 两者用途不同,请勿混淆
 
 
README.md CHANGED
@@ -69,7 +69,6 @@ response = client.chat.completions.create(
69
  print(response.choices[0].message.content)
70
  ```
71
 
72
-
73
  ### Docker 部署
74
 
75
  ```bash
@@ -81,12 +80,13 @@ docker-compose up -d
81
 
82
  ### 支持的模型
83
 
84
- | 模型 | 上游ID | 描述 | 特性 |
85
- |------|--------|------|------|
86
- | `GLM-4.5` | 0727-360B-API | 标准模型 | 通用对话,平衡性能 |
87
- | `GLM-4.5-Thinking` | 0727-360B-API | 思考模型 | 显示推理过程,透明度高 |
88
- | `GLM-4.5-Search` | 0727-360B-API | 搜索模型 | 实时网络搜索,信息更新 |
89
- | `GLM-4.5-Air` | 0727-106B-API | 轻量模型 | 快速响应,高效推理 |
 
90
 
91
  ### Function Call 功能
92
 
@@ -128,7 +128,7 @@ response = client.chat.completions.create(
128
  for chunk in response:
129
  content = chunk.choices[0].delta.content
130
  reasoning = chunk.choices[0].delta.reasoning_content
131
-
132
  if content:
133
  print(content, end="")
134
  if reasoning:
@@ -139,22 +139,22 @@ for chunk in response:
139
 
140
  ### 环境变量配置
141
 
142
- | 变量名 | 默认值 | 说明 |
143
- |--------|--------|------|
144
- | `AUTH_TOKEN` | `sk-your-api-key` | 客户端认证密钥 |
145
- | `API_ENDPOINT` | `https://chat.z.ai/api/chat/completions` | 上游 API 地址 |
146
- | `LISTEN_PORT` | `8080` | 服务监听端口 |
147
- | `PRIMARY_MODEL` | `GLM-4.5` | 主要模型名称 |
148
- | `THINKING_MODEL` | `GLM-4.5-Thinking` | 思考模型名称 |
149
- | `SEARCH_MODEL` | `GLM-4.5-Search` | 搜索模型名称 |
150
- | `AIR_MODEL` | `GLM-4.5-Air` | Air 模型名称 |
151
- | `DEBUG_LOGGING` | `true` | 调试日志开关 |
152
- | `THINKING_PROCESSING` | `think` | 思考内容处理策略 |
153
- | `ANONYMOUS_MODE` | `true` | 匿名模式开关 |
154
- | `TOOL_SUPPORT` | `true` | Function Call 功能开关 |
155
- | `SKIP_AUTH_TOKEN` | `false` | 跳过认证令牌验证 |
156
- | `SCAN_LIMIT` | `200000` | 扫描限制 |
157
- | `BACKUP_TOKEN` | `eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9...` | 备用认证令牌 |
158
 
159
  ### 思考内容处理策略
160
 
@@ -219,13 +219,14 @@ if response.choices[0].message.tool_calls:
219
  ## ❓ 常见问题
220
 
221
  **Q: 如何获取 AUTH_TOKEN?**
222
- A: `AUTH_TOKEN` 为自己自定义的api key,在环境变量中配置,需要保证客户端与服务端一致。
223
 
224
  **Q: 如何通过 Claude Code 使用本服务?**
225
 
226
- A: 创建 [zai.js](https://gist.githubusercontent.com/musistudio/b35402d6f9c95c64269c7666b8405348/raw/f108d66fa050f308387938f149a2b14a295d29e9/gistfile1.txt) 这个ccr插件放在`./.claude-code-router/plugins`目录下,配置 `./.claude-code-router/config.json` 指向本服务地址,使用 `AUTH_TOKEN` 进行认证。
227
 
228
  示例配置:
 
229
  ```json
230
  {
231
  "LOG": false,
@@ -248,14 +249,9 @@ A: 创建 [zai.js](https://gist.githubusercontent.com/musistudio/b35402d6f9c95c6
248
  "name": "GLM",
249
  "api_base_url": "http://127.0.0.1:8080/v1/chat/completions",
250
  "api_key": "sk-your-api-key",
251
- "models": [
252
- "GLM-4.5",
253
- "GLM-4.5-Air"
254
- ],
255
  "transformers": {
256
- "use": [
257
- "zai"
258
- ]
259
  }
260
  }
261
  ],
@@ -295,7 +291,8 @@ A: 支持聊天完成、模型列表、流式响应、工具调用等核心功
295
  A: 改进了工具调用的请求响应结构,支持更复杂的工具链调用和并行执行。
296
 
297
  **Q: 如何选择合适的模型?**
298
- A:
 
299
  - **GLM-4.5**: 通用场景,性能和效果平衡
300
  - **GLM-4.5-Thinking**: 需要了解推理过程的场景
301
  - **GLM-4.5-Search**: 需要实时信息的场景
@@ -371,4 +368,4 @@ z.ai2api_python/
371
 
372
  <div align="center">
373
  Made with ❤️ by the community
374
- </div>
 
69
  print(response.choices[0].message.content)
70
  ```
71
 
 
72
  ### Docker 部署
73
 
74
  ```bash
 
80
 
81
  ### 支持的模型
82
 
83
+ | 模型 | 上游 ID | 描述 | 特性 |
84
+ | ------------------ | ------------- | ----------- | ---------------------- |
85
+ | `GLM-4.5` | 0727-360B-API | 标准模型 | 通用对话,平衡性能 |
86
+ | `GLM-4.5-Thinking` | 0727-360B-API | 思考模型 | 显示推理过程,透明度高 |
87
+ | `GLM-4.5-Search` | 0727-360B-API | 搜索模型 | 实时网络搜索,信息更新 |
88
+ | `GLM-4.5-Air` | 0727-106B-API | 轻量模型 | 快速响应,高效推理 |
89
+ | `GLM-4.5V` | glm-4.5v | ❌ 暂不支持 | |
90
 
91
  ### Function Call 功能
92
 
 
128
  for chunk in response:
129
  content = chunk.choices[0].delta.content
130
  reasoning = chunk.choices[0].delta.reasoning_content
131
+
132
  if content:
133
  print(content, end="")
134
  if reasoning:
 
139
 
140
  ### 环境变量配置
141
 
142
+ | 变量名 | 默认值 | 说明 |
143
+ | --------------------- | ----------------------------------------- | ---------------------- |
144
+ | `AUTH_TOKEN` | `sk-your-api-key` | 客户端认证密钥 |
145
+ | `API_ENDPOINT` | `https://chat.z.ai/api/chat/completions` | 上游 API 地址 |
146
+ | `LISTEN_PORT` | `8080` | 服务监听端口 |
147
+ | `PRIMARY_MODEL` | `GLM-4.5` | 主要模型名称 |
148
+ | `THINKING_MODEL` | `GLM-4.5-Thinking` | 思考模型名称 |
149
+ | `SEARCH_MODEL` | `GLM-4.5-Search` | 搜索模型名称 |
150
+ | `AIR_MODEL` | `GLM-4.5-Air` | Air 模型名称 |
151
+ | `DEBUG_LOGGING` | `true` | 调试日志开关 |
152
+ | `THINKING_PROCESSING` | `think` | 思考内容处理策略 |
153
+ | `ANONYMOUS_MODE` | `true` | 匿名模式开关 |
154
+ | `TOOL_SUPPORT` | `true` | Function Call 功能开关 |
155
+ | `SKIP_AUTH_TOKEN` | `false` | 跳过认证令牌验证 |
156
+ | `SCAN_LIMIT` | `200000` | 扫描限制 |
157
+ | `BACKUP_TOKEN` | `eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9...` | 备用认证令牌 |
158
 
159
  ### 思考内容处理策略
160
 
 
219
  ## ❓ 常见问题
220
 
221
  **Q: 如何获取 AUTH_TOKEN?**
222
+ A: `AUTH_TOKEN` 为自己自定义的 api key,在环境变量中配置,需要保证客户端与服务端一致。
223
 
224
  **Q: 如何通过 Claude Code 使用本服务?**
225
 
226
+ A: 创建 [zai.js](https://gist.githubusercontent.com/musistudio/b35402d6f9c95c64269c7666b8405348/raw/f108d66fa050f308387938f149a2b14a295d29e9/gistfile1.txt) 这个 ccr 插件放在`./.claude-code-router/plugins`目录下,配置 `./.claude-code-router/config.json` 指向本服务地址,使用 `AUTH_TOKEN` 进行认证。
227
 
228
  示例配置:
229
+
230
  ```json
231
  {
232
  "LOG": false,
 
249
  "name": "GLM",
250
  "api_base_url": "http://127.0.0.1:8080/v1/chat/completions",
251
  "api_key": "sk-your-api-key",
252
+ "models": ["GLM-4.5", "GLM-4.5-Air"],
 
 
 
253
  "transformers": {
254
+ "use": ["zai"]
 
 
255
  }
256
  }
257
  ],
 
291
  A: 改进了工具调用的请求响应结构,支持更复杂的工具链调用和并行执行。
292
 
293
  **Q: 如何选择合适的模型?**
294
+ A:
295
+
296
  - **GLM-4.5**: 通用场景,性能和效果平衡
297
  - **GLM-4.5-Thinking**: 需要了解推理过程的场景
298
  - **GLM-4.5-Search**: 需要实时信息的场景
 
368
 
369
  <div align="center">
370
  Made with ❤️ by the community
371
+ </div>
app/utils/helpers.py CHANGED
@@ -208,4 +208,4 @@ def call_upstream_api(
208
  )
209
 
210
  debug_log(f"上游响应状态: {response.status_code}")
211
- return response
 
208
  )
209
 
210
  debug_log(f"上游响应状态: {response.status_code}")
211
+ return response