mirror of
https://github.com/snailyp/gemini-balance.git
synced 2026-05-30 12:49:33 +08:00
本次更新引入了对 Google Vertex AI Express API 的支持,允许用户配置和使用 Vertex AI 模型。 主要变更包括: 后端: - 新增 `VERTEX_API_KEYS` 和 `VERTEX_EXPRESS_BASE_URL` 至系统配置 ([`.env.example`](.env.example:13), [`app/config/config.py:62`](app/config/config.py:62), [`app/database/models.py`](app/database/models.py), [`app/database/services.py`](app/database/services.py))。 - 实现 `VertexExpressChatService` ([`app/service/chat/vertex_express_chat_service.py`](app/service/chat/vertex_express_chat_service.py)) 用于处理与 Vertex AI Express API 的交互。 - 添加 `vertex_express_routes` ([`app/router/vertex_express_routes.py`](app/router/vertex_express_routes.py)) 来暴露 Vertex AI 相关的 API 端点,并集成到主应用 ([`app/core/application.py:36`](app/core/application.py:36), [`app/router/routes.py:15`](app/router/routes.py:15))。 - 更新密钥管理器 ([`app/service/key/key_manager.py`](app/service/key/key_manager.py)) 以支持 Vertex API 密钥的获取、检查和轮换。 前端 (配置编辑器): - 在配置页面 ([`app/templates/config_editor.html:463`](app/templates/config_editor.html:463)) 添加了 Vertex API 密钥列表和 Vertex Express API 基础 URL 的表单字段。 - 实现了批量添加和删除 Vertex API 密钥的功能,包括相应的模态框和操作逻辑 ([`app/static/js/config_editor.js:550`](app/static/js/config_editor.js:550), [`app/static/js/config_editor.js:1097`](app/static/js/config_editor.js:1097), [`app/templates/config_editor.html:1657`](app/templates/config_editor.html:1657))。 - 确保新的配置项在初始化 ([`app/static/js/config_editor.js:598`](app/static/js/config_editor.js:598)) 和表单填充 ([`app/static/js/config_editor.js:671`](app/static/js/config_editor.js:671)) 时得到正确处理。 - 更新了数组项添加逻辑以识别 `VERTEX_API_KEYS` 为敏感字段 ([`app/static/js/config_editor.js:1235`](app/static/js/config_editor.js:1235))。 此功能扩展了应用支持的 AI 服务范围,为用户提供了更多模型选择。
73 lines
3.2 KiB
Plaintext
73 lines
3.2 KiB
Plaintext
# 数据库配置
|
|
DATABASE_TYPE=mysql
|
|
#SQLITE_DATABASE=default_db
|
|
MYSQL_HOST=gemini-balance-mysql
|
|
#MYSQL_SOCKET=/run/mysqld/mysqld.sock
|
|
MYSQL_PORT=3306
|
|
MYSQL_USER=gemini
|
|
MYSQL_PASSWORD=change_me
|
|
MYSQL_DATABASE=default_db
|
|
API_KEYS=["AIzaSyxxxxxxxxxxxxxxxxxxx","AIzaSyxxxxxxxxxxxxxxxxxxx"]
|
|
ALLOWED_TOKENS=["sk-123456"]
|
|
AUTH_TOKEN=sk-123456
|
|
# For Vertex AI Platform API Keys
|
|
VERTEX_API_KEYS=["AQ.Abxxxxxxxxxxxxxxxxxxx"]
|
|
# For Vertex AI Platform Express API Base URL
|
|
VERTEX_EXPRESS_BASE_URL=https://aiplatform.googleapis.com/v1beta1/publishers/google
|
|
TEST_MODEL=gemini-1.5-flash
|
|
THINKING_MODELS=["gemini-2.5-flash-preview-04-17"]
|
|
THINKING_BUDGET_MAP={"gemini-2.5-flash-preview-04-17": 4000}
|
|
IMAGE_MODELS=["gemini-2.0-flash-exp"]
|
|
SEARCH_MODELS=["gemini-2.0-flash-exp","gemini-2.0-pro-exp"]
|
|
FILTERED_MODELS=["gemini-1.0-pro-vision-latest", "gemini-pro-vision", "chat-bison-001", "text-bison-001", "embedding-gecko-001"]
|
|
TOOLS_CODE_EXECUTION_ENABLED=false
|
|
SHOW_SEARCH_LINK=true
|
|
SHOW_THINKING_PROCESS=true
|
|
BASE_URL=https://generativelanguage.googleapis.com/v1beta
|
|
MAX_FAILURES=10
|
|
MAX_RETRIES=3
|
|
CHECK_INTERVAL_HOURS=1
|
|
TIMEZONE=Asia/Shanghai
|
|
# 请求超时时间(秒)
|
|
TIME_OUT=300
|
|
# 代理服务器配置 (支持 http 和 socks5)
|
|
# 示例: PROXIES=["http://user:pass@host:port", "socks5://host:port"]
|
|
PROXIES=[]
|
|
#########################image_generate 相关配置###########################
|
|
PAID_KEY=AIzaSyxxxxxxxxxxxxxxxxxxx
|
|
CREATE_IMAGE_MODEL=imagen-3.0-generate-002
|
|
UPLOAD_PROVIDER=smms
|
|
SMMS_SECRET_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
PICGO_API_KEY=xxxx
|
|
CLOUDFLARE_IMGBED_URL=https://xxxxxxx.pages.dev/upload
|
|
CLOUDFLARE_IMGBED_AUTH_CODE=xxxxxxxxx
|
|
##########################################################################
|
|
#########################stream_optimizer 相关配置########################
|
|
STREAM_OPTIMIZER_ENABLED=false
|
|
STREAM_MIN_DELAY=0.016
|
|
STREAM_MAX_DELAY=0.024
|
|
STREAM_SHORT_TEXT_THRESHOLD=10
|
|
STREAM_LONG_TEXT_THRESHOLD=50
|
|
STREAM_CHUNK_SIZE=5
|
|
##########################################################################
|
|
######################### 日志配置 #######################################
|
|
# 日志级别 (debug, info, warning, error, critical),默认为 info
|
|
LOG_LEVEL=info
|
|
# 是否开启自动删除错误日志
|
|
AUTO_DELETE_ERROR_LOGS_ENABLED=true
|
|
# 自动删除多少天前的错误日志 (1, 7, 30)
|
|
AUTO_DELETE_ERROR_LOGS_DAYS=7
|
|
# 是否开启自动删除请求日志
|
|
AUTO_DELETE_REQUEST_LOGS_ENABLED=false
|
|
# 自动删除多少天前的请求日志 (1, 7, 30)
|
|
AUTO_DELETE_REQUEST_LOGS_DAYS=30
|
|
##########################################################################
|
|
|
|
# 假流式配置 (Fake Streaming Configuration)
|
|
FAKE_STREAM_ENABLED=True # 是否启用假流式输出
|
|
FAKE_STREAM_EMPTY_DATA_INTERVAL_SECONDS=5 # 假流式发送空数据的间隔时间(秒)
|
|
|
|
# 安全设置 (JSON 字符串格式)
|
|
# 注意:这里的示例值可能需要根据实际模型支持情况调整
|
|
SAFETY_SETTINGS='[{"category": "HARM_CATEGORY_HARASSMENT", "threshold": "OFF"}, {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "OFF"}, {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "OFF"}, {"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "OFF"}, {"category": "HARM_CATEGORY_CIVIC_INTEGRITY", "threshold": "BLOCK_NONE"}]'
|