Skip to content

Commit 1f44dd1

Browse files
authored
【也许是最后一次功能性大更新】Merge pull request #142 from CJackHwang/dev
Merge pull request #141 from NyxJae/dev Remove key.txt from tracking
2 parents ff86c17 + 2e27f8c commit 1f44dd1

24 files changed

Lines changed: 1372 additions & 151 deletions

.env.example

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
# AI Studio Proxy API 配置文件示例
2+
# 复制此文件为 .env 并根据需要修改配置
3+
4+
# =============================================================================
5+
# 服务端口配置
6+
# =============================================================================
7+
8+
# FastAPI 服务端口
9+
PORT=8000
10+
11+
# GUI 启动器默认端口配置
12+
DEFAULT_FASTAPI_PORT=2048
13+
DEFAULT_CAMOUFOX_PORT=9222
14+
15+
# 流式代理服务配置
16+
STREAM_PORT=3120
17+
# 设置为 0 禁用流式代理服务
18+
19+
# =============================================================================
20+
# 代理配置
21+
# =============================================================================
22+
23+
# HTTP/HTTPS 代理设置
24+
# HTTP_PROXY=http://127.0.0.1:7890
25+
# HTTPS_PROXY=http://127.0.0.1:7890
26+
27+
# 统一代理配置 (优先级高于 HTTP_PROXY/HTTPS_PROXY)
28+
# UNIFIED_PROXY_CONFIG=http://127.0.0.1:7890
29+
30+
# 代理绕过列表 (用分号分隔)
31+
# NO_PROXY=localhost;127.0.0.1;*.local
32+
33+
# =============================================================================
34+
# 日志配置
35+
# =============================================================================
36+
37+
# 服务器日志级别 (DEBUG, INFO, WARNING, ERROR, CRITICAL)
38+
SERVER_LOG_LEVEL=INFO
39+
40+
# 是否重定向 print 输出到日志
41+
SERVER_REDIRECT_PRINT=false
42+
43+
# 启用调试日志
44+
DEBUG_LOGS_ENABLED=false
45+
46+
# 启用跟踪日志
47+
TRACE_LOGS_ENABLED=false
48+
49+
# =============================================================================
50+
# 认证配置
51+
# =============================================================================
52+
53+
# 自动保存认证信息
54+
AUTO_SAVE_AUTH=false
55+
56+
# 认证保存超时时间 (秒)
57+
AUTH_SAVE_TIMEOUT=30
58+
59+
# 自动确认登录
60+
AUTO_CONFIRM_LOGIN=true
61+
62+
# =============================================================================
63+
# 浏览器配置
64+
# =============================================================================
65+
66+
# Camoufox WebSocket 端点
67+
# CAMOUFOX_WS_ENDPOINT=ws://127.0.0.1:9222
68+
69+
# 启动模式 (normal, headless, virtual_display, direct_debug_no_browser)
70+
LAUNCH_MODE=normal
71+
72+
# =============================================================================
73+
# API 默认参数配置
74+
# =============================================================================
75+
76+
# 默认温度值 (0.0-2.0)
77+
DEFAULT_TEMPERATURE=1.0
78+
79+
# 默认最大输出令牌数
80+
DEFAULT_MAX_OUTPUT_TOKENS=65536
81+
82+
# 默认 Top-P 值 (0.0-1.0)
83+
DEFAULT_TOP_P=0.95
84+
85+
# 默认停止序列 (JSON 数组格式)
86+
DEFAULT_STOP_SEQUENCES=["用户:"]
87+
88+
# =============================================================================
89+
# 超时配置 (毫秒)
90+
# =============================================================================
91+
92+
# 响应完成总超时时间
93+
RESPONSE_COMPLETION_TIMEOUT=300000
94+
95+
# 初始等待时间
96+
INITIAL_WAIT_MS_BEFORE_POLLING=500
97+
98+
# 轮询间隔
99+
POLLING_INTERVAL=300
100+
POLLING_INTERVAL_STREAM=180
101+
102+
# 静默超时
103+
SILENCE_TIMEOUT_MS=60000
104+
105+
# 页面操作超时
106+
POST_SPINNER_CHECK_DELAY_MS=500
107+
FINAL_STATE_CHECK_TIMEOUT_MS=1500
108+
POST_COMPLETION_BUFFER=700
109+
110+
# 清理聊天相关超时
111+
CLEAR_CHAT_VERIFY_TIMEOUT_MS=4000
112+
CLEAR_CHAT_VERIFY_INTERVAL_MS=4000
113+
114+
# 点击和剪贴板操作超时
115+
CLICK_TIMEOUT_MS=3000
116+
CLIPBOARD_READ_TIMEOUT_MS=3000
117+
118+
# 元素等待超时
119+
WAIT_FOR_ELEMENT_TIMEOUT_MS=10000
120+
121+
# 流相关配置
122+
PSEUDO_STREAM_DELAY=0.01
123+
124+
# =============================================================================
125+
# GUI 启动器配置
126+
# =============================================================================
127+
128+
# GUI 默认代理地址
129+
GUI_DEFAULT_PROXY_ADDRESS=http://127.0.0.1:7890
130+
131+
# GUI 默认流式代理端口
132+
GUI_DEFAULT_STREAM_PORT=3120
133+
134+
# GUI 默认 Helper 端点
135+
GUI_DEFAULT_HELPER_ENDPOINT=
136+
137+
# =============================================================================
138+
# 其他配置
139+
# =============================================================================
140+
141+
# 模型名称
142+
MODEL_NAME=AI-Studio_Proxy_API
143+
144+
# 聊天完成 ID 前缀
145+
CHAT_COMPLETION_ID_PREFIX=chatcmpl-
146+
147+
# 默认回退模型 ID
148+
DEFAULT_FALLBACK_MODEL_ID=no model list
149+
150+
# 排除模型文件名
151+
EXCLUDED_MODELS_FILENAME=excluded_models.txt
152+
153+
# AI Studio URL 模式
154+
AI_STUDIO_URL_PATTERN=aistudio.google.com/
155+
156+
# 模型端点 URL 包含字符串
157+
MODELS_ENDPOINT_URL_CONTAINS=MakerSuiteService/ListModels
158+
159+
# 用户输入标记符
160+
USER_INPUT_START_MARKER_SERVER=__USER_INPUT_START__
161+
USER_INPUT_END_MARKER_SERVER=__USER_INPUT_END__
162+
163+
# =============================================================================
164+
# 流状态配置
165+
# =============================================================================
166+
167+
# 流超时日志状态配置
168+
STREAM_MAX_INITIAL_ERRORS=3
169+
STREAM_WARNING_INTERVAL_AFTER_SUPPRESS=60.0
170+
STREAM_SUPPRESS_DURATION_AFTER_INITIAL_BURST=400.0

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,4 +229,7 @@ deprecated_javascript_version/node_modules/
229229

230230
.roomodes
231231
memory-bank/
232-
gui_config.json
232+
gui_config.json
233+
234+
# key
235+
key.txt

README.md

Lines changed: 64 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,21 +108,53 @@ graph TD
108108
FastAPI_App -- "UI 响应 (Response)" --> WebUI
109109
```
110110

111+
## 配置管理 ⭐
112+
113+
**新功能**: 项目现在支持通过 `.env` 文件进行配置管理,避免硬编码参数!
114+
115+
### 快速配置
116+
117+
```bash
118+
# 1. 复制配置模板
119+
cp .env.example .env
120+
121+
# 2. 编辑配置文件
122+
nano .env # 或使用其他编辑器
123+
124+
# 3. 启动服务(自动读取配置)
125+
python gui_launcher.py
126+
# 或直接命令行启动
127+
python launch_camoufox.py --headless
128+
```
129+
130+
### 主要优势
131+
132+
-**版本更新无忧**: 一个 `git pull` 就完成更新,无需重新配置
133+
-**配置集中管理**: 所有配置项统一在 `.env` 文件中
134+
-**启动命令简化**: 无需复杂的命令行参数,一键启动
135+
-**安全性**: `.env` 文件已被 `.gitignore` 忽略,不会泄露配置
136+
-**灵活性**: 支持不同环境的配置管理
137+
-**Docker 兼容**: Docker 和本地环境使用相同的配置方式
138+
139+
详细配置说明请参见 [环境变量配置指南](docs/environment-configuration.md)
140+
111141
## 使用教程
112142

113143
推荐使用 [`gui_launcher.py`](gui_launcher.py) (图形界面) 或直接使用 [`launch_camoufox.py`](launch_camoufox.py) (命令行) 进行日常运行。仅在首次设置或认证过期时才需要使用调试模式。
114144

115145
### 快速开始
116146

117147
1. **安装**: 参见 [安装指南](docs/installation-guide.md)
118-
2. **首次认证**: 参见 [认证设置指南](docs/authentication-setup.md)
119-
3. **日常运行**: 参见 [日常运行指南](docs/daily-usage.md)
120-
4. **API使用**: 参见 [API使用指南](docs/api-usage.md)
121-
5. **Web界面**: 参见 [Web UI使用指南](docs/webui-guide.md)
148+
2. **配置**: 参见 [环境变量配置指南](docs/environment-configuration.md) - **推荐先配置**
149+
3. **首次认证**: 参见 [认证设置指南](docs/authentication-setup.md)
150+
4. **日常运行**: 参见 [日常运行指南](docs/daily-usage.md)
151+
5. **API使用**: 参见 [API使用指南](docs/api-usage.md)
152+
6. **Web界面**: 参见 [Web UI使用指南](docs/webui-guide.md)
122153

123154
### 详细文档
124155

125156
- [安装指南](docs/installation-guide.md) - 详细的安装步骤和环境配置
157+
- [环境变量配置指南](docs/environment-configuration.md) - **.env 文件配置管理**
126158
- [认证设置指南](docs/authentication-setup.md) - 首次运行与认证文件设置
127159
- [日常运行指南](docs/daily-usage.md) - 日常使用和配置选项
128160
- [API使用指南](docs/api-usage.md) - API端点和客户端配置
@@ -148,11 +180,36 @@ graph TD
148180

149181
## Docker 部署
150182

151-
本项目支持通过 Docker 进行部署。详细的构建和运行说明,请参阅:
183+
本项目支持通过 Docker 进行部署,**现在完全支持 `.env` 配置文件**
184+
185+
> 📁 **注意**: 所有 Docker 相关文件已移至 `docker/` 目录,保持项目根目录整洁。
186+
187+
### 快速 Docker 部署
188+
189+
```bash
190+
# 1. 准备配置文件
191+
cp docker/.env.docker .env
192+
nano .env # 编辑配置
193+
194+
# 2. 使用 Docker Compose 启动
195+
cd docker
196+
docker-compose up -d
197+
198+
# 3. 版本更新
199+
cd .. && git pull && cd docker && docker-compose up -d --build
200+
```
201+
202+
### 详细文档
203+
204+
- [Docker 部署指南 (docker/README-Docker.md)](docker/README-Docker.md) - 包含完整的 `.env` 配置说明
205+
- [Docker 快速指南 (docker/README.md)](docker/README.md) - 快速开始指南
152206

153-
- [Docker 部署指南 (README-Docker.md)](README-Docker.md)
207+
### 重要说明
154208

155-
请注意,首次运行获取认证文件目前不能在docker环境完成,必须在主机完成,因此docker方式安装当前仅仅是为了方便云端部署项目。在主机部署本项目成功取得json认证文件后,日常运行通过挂载json可以使用docker来运行本项目。
209+
-**配置统一**: Docker 和本地环境使用相同的 `.env` 配置方式
210+
-**版本更新**: `git pull` + `docker-compose up -d --build` 即可完成更新
211+
-**目录整洁**: Docker 文件已移至 `docker/` 目录
212+
- ⚠️ **认证文件**: 首次运行需要在主机上获取认证文件,然后挂载到容器中
156213

157214
---
158215

api_utils/request_processor.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,7 @@ async def create_stream_generator_from_helper(event_to_set: Event) -> AsyncGener
306306
"model": model_name_for_stream,
307307
"created": created_timestamp,
308308
"choices":[{
309+
"index": 0,
309310
"delta":{
310311
"role": "assistant",
311312
"content": None,
@@ -326,6 +327,7 @@ async def create_stream_generator_from_helper(event_to_set: Event) -> AsyncGener
326327

327328
delta_content = {"role": "assistant", "content": body[last_body_pos:]}
328329
choice_item = {
330+
"index": 0,
329331
"delta": delta_content,
330332
"finish_reason": finish_reason_val,
331333
"native_finish_reason": finish_reason_val,
@@ -376,13 +378,15 @@ async def create_stream_generator_from_helper(event_to_set: Event) -> AsyncGener
376378
})
377379
delta_content["tool_calls"] = tool_calls_list
378380
choice_item = {
381+
"index": 0,
379382
"delta": delta_content,
380383
"finish_reason": "tool_calls",
381384
"native_finish_reason": "tool_calls",
382385
}
383386
else:
384387
# 纯结束,没有新内容和函数调用
385388
choice_item = {
389+
"index": 0,
386390
"delta": {"role": "assistant"},
387391
"finish_reason": "stop",
388392
"native_finish_reason": "stop",
@@ -409,6 +413,7 @@ async def create_stream_generator_from_helper(event_to_set: Event) -> AsyncGener
409413
"model": model_name_for_stream,
410414
"created": created_timestamp,
411415
"choices": [{
416+
"index": 0,
412417
"delta": {"role": "assistant", "content": f"\n\n[错误: {str(e)}]"},
413418
"finish_reason": "stop",
414419
"native_finish_reason": "stop",

0 commit comments

Comments
 (0)