Skip to content

Commit 07627d4

Browse files
committed
feat: 默认禁用URL上下文并更新注入模型
- **默认禁用URL上下文**: - 将 `ENABLE_URL_CONTEXT` 的默认值从 `true` 修改为 `false`,以提升开箱即用的安全性。 - 用户现在可以通过在 `.env` 文件中设置 `ENABLE_URL_CONTEXT=true` 来显式启用该功能。 - 同步更新了 `.env.example` 以反映此项变更。 - **更新注入模型**: - 修改了 `browser_utils/more_modles.js` 脚本。 - 新增了以下模型: - `gemini-2.5-pro-preview-03-25` - `gemini-2.5-pro-exp-03-25` - `gemini-2.5-pro-preview-06-05` - 将所有模型定义都压缩为单行,并注释掉了已失效的旧模型,以提高代码的可读性和整洁度。
1 parent 2ab8d68 commit 07627d4

3 files changed

Lines changed: 65 additions & 91 deletions

File tree

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ DEFAULT_TOP_P=0.95
8686
DEFAULT_STOP_SEQUENCES=["用户:"]
8787

8888
# 是否在处理请求时自动打开并使用 "URL Context" 功能,此工具功能详情可参考:https://ai.google.dev/gemini-api/docs/url-context
89-
ENABLE_URL_CONTEXT=true
89+
ENABLE_URL_CONTEXT=false
9090

9191
# 是否默认启用 "指定思考预算" 功能 (true/false),不启用时模型一般将自行决定思考预算
9292
# 当 API 请求中未提供 reasoning_effort 参数时将使用此值。

browser_utils/more_modles.js

Lines changed: 12 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -23,44 +23,18 @@
2323
// 模型配置列表
2424
// 已按要求将 jfdksal98a 放到 blacktooth 的下面
2525
const MODELS_TO_INJECT = [
26-
// Blacktooth 模型 (原 Toothless)
27-
{
28-
name: 'models/blacktooth-ab-test', // 已改为 blacktooth-ab-test
29-
displayName: `🏴‍☠️ Blacktooth (脚本 ${SCRIPT_VERSION})`, // emoji 改为 🏴‍☠️,名称改为 Blacktooth
30-
description: `由脚本 ${SCRIPT_VERSION} 注入的模型`
31-
},
32-
// --- jfdksal98a 模型已移动到此处 ---
33-
{
34-
name: 'models/jfdksal98a',
35-
displayName: `🪐 jfdksal98a (脚本 ${SCRIPT_VERSION})`,
36-
description: `由脚本 ${SCRIPT_VERSION} 注入的模型`
37-
},
38-
// --- 其他模型 ---
39-
{
40-
name: 'models/gemini-2.5-pro-preview-03-25',
41-
displayName: `✨ Gemini 2.5 Pro 03-25 (脚本 ${SCRIPT_VERSION})`,
42-
description: `由脚本 ${SCRIPT_VERSION} 注入的模型`
43-
},
44-
{
45-
name: 'models/goldmane-ab-test',
46-
displayName: `🦁 Goldmane (脚本 ${SCRIPT_VERSION})`,
47-
description: `由脚本 ${SCRIPT_VERSION} 注入的模型`
48-
},
49-
{
50-
name: 'models/claybrook-ab-test',
51-
displayName: `💧 Claybrook (脚本 ${SCRIPT_VERSION})`,
52-
description: `由脚本 ${SCRIPT_VERSION} 注入的模型`
53-
},
54-
{
55-
name: 'models/frostwind-ab-test',
56-
displayName: `❄️ Frostwind (脚本 ${SCRIPT_VERSION})`,
57-
description: `由脚本 ${SCRIPT_VERSION} 注入的模型`
58-
},
59-
{
60-
name: 'models/calmriver-ab-test',
61-
displayName: `🌊 Calmriver (脚本 ${SCRIPT_VERSION})`,
62-
description: `由脚本 ${SCRIPT_VERSION} 注入的模型`
63-
}
26+
{ name: 'models/gemini-2.5-pro-preview-03-25', displayName: `✨ Gemini 2.5 Pro 03-25 (Script ${SCRIPT_VERSION})`, description: `Model injected by script ${SCRIPT_VERSION}` },
27+
{ name: 'models/gemini-2.5-pro-exp-03-25', displayName: `✨ Gemini 2.5 Pro 03-25 (Script ${SCRIPT_VERSION})`, description: `Model injected by script ${SCRIPT_VERSION}` },
28+
{ name: 'models/gemini-2.5-pro-preview-06-05', displayName: `✨ Gemini 2.5 Pro 03-25 (Script ${SCRIPT_VERSION})`, description: `Model injected by script ${SCRIPT_VERSION}` },
29+
30+
//下面模型已经失效,留下来怀念
31+
// { name: 'models/blacktooth-ab-test', displayName: `🏴‍☠️ Blacktooth (脚本 ${SCRIPT_VERSION})`, description: `由脚本 ${SCRIPT_VERSION} 注入的模型` },
32+
// { name: 'models/jfdksal98a', displayName: `🪐 jfdksal98a (脚本 ${SCRIPT_VERSION})`, description: `由脚本 ${SCRIPT_VERSION} 注入的模型` },
33+
// { name: 'models/gemini-2.5-pro-preview-03-25', displayName: `✨ Gemini 2.5 Pro 03-25 (脚本 ${SCRIPT_VERSION})`, description: `由脚本 ${SCRIPT_VERSION} 注入的模型` },
34+
// { name: 'models/goldmane-ab-test', displayName: `🦁 Goldmane (脚本 ${SCRIPT_VERSION})`, description: `由脚本 ${SCRIPT_VERSION} 注入的模型` },
35+
// { name: 'models/claybrook-ab-test', displayName: `💧 Claybrook (脚本 ${SCRIPT_VERSION})`, description: `由脚本 ${SCRIPT_VERSION} 注入的模型` },
36+
// { name: 'models/frostwind-ab-test', displayName: `❄️ Frostwind (脚本 ${SCRIPT_VERSION})`, description: `由脚本 ${SCRIPT_VERSION} 注入的模型` },
37+
// { name: 'models/calmriver-ab-test', displayName: `🌊 Calmriver (脚本 ${SCRIPT_VERSION})`, description: `由脚本 ${SCRIPT_VERSION} 注入的模型` }
6438
];
6539

6640
// JSON 结构中的字段索引

config/constants.py

Lines changed: 52 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,53 @@
1-
"""
2-
常量配置模块
3-
包含所有固定的常量定义,如模型名称、标记符、文件名等
4-
"""
5-
6-
import os
7-
import json
8-
from dotenv import load_dotenv
9-
10-
# 加载 .env 文件
11-
load_dotenv()
12-
13-
# --- 模型相关常量 ---
14-
MODEL_NAME = os.environ.get('MODEL_NAME', 'AI-Studio_Proxy_API')
15-
CHAT_COMPLETION_ID_PREFIX = os.environ.get('CHAT_COMPLETION_ID_PREFIX', 'chatcmpl-')
16-
DEFAULT_FALLBACK_MODEL_ID = os.environ.get('DEFAULT_FALLBACK_MODEL_ID', "no model list")
17-
18-
# --- 默认参数值 ---
19-
DEFAULT_TEMPERATURE = float(os.environ.get('DEFAULT_TEMPERATURE', '1.0'))
20-
DEFAULT_MAX_OUTPUT_TOKENS = int(os.environ.get('DEFAULT_MAX_OUTPUT_TOKENS', '65536'))
21-
DEFAULT_TOP_P = float(os.environ.get('DEFAULT_TOP_P', '0.95'))
22-
# --- 默认功能开关 ---
23-
ENABLE_URL_CONTEXT = os.environ.get('ENABLE_URL_CONTEXT', 'true').lower() in ('true', '1', 'yes')
24-
ENABLE_THINKING_BUDGET = os.environ.get('ENABLE_THINKING_BUDGET', 'false').lower() in ('true', '1', 'yes')
25-
DEFAULT_THINKING_BUDGET = int(os.environ.get('DEFAULT_THINKING_BUDGET', '8192'))
26-
ENABLE_GOOGLE_SEARCH = os.environ.get('ENABLE_GOOGLE_SEARCH', 'false').lower() in ('true', '1', 'yes')
27-
28-
# 默认停止序列 - 支持 JSON 格式配置
29-
try:
30-
DEFAULT_STOP_SEQUENCES = json.loads(os.environ.get('DEFAULT_STOP_SEQUENCES', '["用户:"]'))
31-
except (json.JSONDecodeError, TypeError):
32-
DEFAULT_STOP_SEQUENCES = ["用户:"] # 回退到默认值
33-
34-
# --- URL模式 ---
35-
AI_STUDIO_URL_PATTERN = os.environ.get('AI_STUDIO_URL_PATTERN', 'aistudio.google.com/')
36-
MODELS_ENDPOINT_URL_CONTAINS = os.environ.get('MODELS_ENDPOINT_URL_CONTAINS', "MakerSuiteService/ListModels")
37-
38-
# --- 输入标记符 ---
39-
USER_INPUT_START_MARKER_SERVER = os.environ.get('USER_INPUT_START_MARKER_SERVER', "__USER_INPUT_START__")
40-
USER_INPUT_END_MARKER_SERVER = os.environ.get('USER_INPUT_END_MARKER_SERVER', "__USER_INPUT_END__")
41-
42-
# --- 文件名常量 ---
43-
EXCLUDED_MODELS_FILENAME = os.environ.get('EXCLUDED_MODELS_FILENAME', "excluded_models.txt")
44-
45-
# --- 流状态配置 ---
46-
STREAM_TIMEOUT_LOG_STATE = {
47-
"consecutive_timeouts": 0,
48-
"last_error_log_time": 0.0, # 使用 time.monotonic()
49-
"suppress_until_time": 0.0, # 使用 time.monotonic()
50-
"max_initial_errors": int(os.environ.get('STREAM_MAX_INITIAL_ERRORS', '3')),
51-
"warning_interval_after_suppress": float(os.environ.get('STREAM_WARNING_INTERVAL_AFTER_SUPPRESS', '60.0')),
52-
"suppress_duration_after_initial_burst": float(os.environ.get('STREAM_SUPPRESS_DURATION_AFTER_INITIAL_BURST', '400.0')),
1+
"""
2+
常量配置模块
3+
包含所有固定的常量定义,如模型名称、标记符、文件名等
4+
"""
5+
6+
import os
7+
import json
8+
from dotenv import load_dotenv
9+
10+
# 加载 .env 文件
11+
load_dotenv()
12+
13+
# --- 模型相关常量 ---
14+
MODEL_NAME = os.environ.get('MODEL_NAME', 'AI-Studio_Proxy_API')
15+
CHAT_COMPLETION_ID_PREFIX = os.environ.get('CHAT_COMPLETION_ID_PREFIX', 'chatcmpl-')
16+
DEFAULT_FALLBACK_MODEL_ID = os.environ.get('DEFAULT_FALLBACK_MODEL_ID', "no model list")
17+
18+
# --- 默认参数值 ---
19+
DEFAULT_TEMPERATURE = float(os.environ.get('DEFAULT_TEMPERATURE', '1.0'))
20+
DEFAULT_MAX_OUTPUT_TOKENS = int(os.environ.get('DEFAULT_MAX_OUTPUT_TOKENS', '65536'))
21+
DEFAULT_TOP_P = float(os.environ.get('DEFAULT_TOP_P', '0.95'))
22+
# --- 默认功能开关 ---
23+
ENABLE_URL_CONTEXT = os.environ.get('ENABLE_URL_CONTEXT', 'false').lower() in ('true', '1', 'yes')
24+
ENABLE_THINKING_BUDGET = os.environ.get('ENABLE_THINKING_BUDGET', 'false').lower() in ('true', '1', 'yes')
25+
DEFAULT_THINKING_BUDGET = int(os.environ.get('DEFAULT_THINKING_BUDGET', '8192'))
26+
ENABLE_GOOGLE_SEARCH = os.environ.get('ENABLE_GOOGLE_SEARCH', 'false').lower() in ('true', '1', 'yes')
27+
28+
# 默认停止序列 - 支持 JSON 格式配置
29+
try:
30+
DEFAULT_STOP_SEQUENCES = json.loads(os.environ.get('DEFAULT_STOP_SEQUENCES', '["用户:"]'))
31+
except (json.JSONDecodeError, TypeError):
32+
DEFAULT_STOP_SEQUENCES = ["用户:"] # 回退到默认值
33+
34+
# --- URL模式 ---
35+
AI_STUDIO_URL_PATTERN = os.environ.get('AI_STUDIO_URL_PATTERN', 'aistudio.google.com/')
36+
MODELS_ENDPOINT_URL_CONTAINS = os.environ.get('MODELS_ENDPOINT_URL_CONTAINS', "MakerSuiteService/ListModels")
37+
38+
# --- 输入标记符 ---
39+
USER_INPUT_START_MARKER_SERVER = os.environ.get('USER_INPUT_START_MARKER_SERVER', "__USER_INPUT_START__")
40+
USER_INPUT_END_MARKER_SERVER = os.environ.get('USER_INPUT_END_MARKER_SERVER', "__USER_INPUT_END__")
41+
42+
# --- 文件名常量 ---
43+
EXCLUDED_MODELS_FILENAME = os.environ.get('EXCLUDED_MODELS_FILENAME', "excluded_models.txt")
44+
45+
# --- 流状态配置 ---
46+
STREAM_TIMEOUT_LOG_STATE = {
47+
"consecutive_timeouts": 0,
48+
"last_error_log_time": 0.0, # 使用 time.monotonic()
49+
"suppress_until_time": 0.0, # 使用 time.monotonic()
50+
"max_initial_errors": int(os.environ.get('STREAM_MAX_INITIAL_ERRORS', '3')),
51+
"warning_interval_after_suppress": float(os.environ.get('STREAM_WARNING_INTERVAL_AFTER_SUPPRESS', '60.0')),
52+
"suppress_duration_after_initial_burst": float(os.environ.get('STREAM_SUPPRESS_DURATION_AFTER_INITIAL_BURST', '400.0')),
5353
}

0 commit comments

Comments
 (0)