feat: Refactor settings UI and fix commission fee recording

Settings improvements:
- Reorganize config groups with logical ordering (server, auth, ai, trading, etc.)
- Add description/tooltip for each config item with question mark icon
- Add icon to each group header
- Support i18n for descriptions (zh-CN, zh-TW, en-US)
- Move order execution config (ORDER_MODE, MAKER_WAIT_SEC, MAKER_OFFSET_BPS) to env

Commission fee fixes:
- Fix fee extraction in exchange clients: Bybit, Coinbase, Kraken, Gate, Kucoin, Bitfinex
- Properly accumulate and record commission fees in pending_order_worker
- Add fee/fee_ccy fields to wait_for_fill returns

Frontend updates:
- Remove order_mode config from trading-assistant frontend (now uses env config)
- Add sorted schema display by order field
- Add tooltip with description on hover
This commit is contained in:
TIANHE
2026-01-12 00:15:52 +08:00
parent e7cb9c6493
commit 5a4c770279
16 changed files with 1121 additions and 233 deletions
+22 -13
View File
@@ -1911,21 +1911,20 @@ const locale = {
'settings.copySuccess': 'Copied',
'settings.copyFailed': 'Copy failed',
// Settings groups
'settings.group.auth': 'Authentication',
// Settings groups (ordered by backend order)
'settings.group.server': 'Server Configuration',
'settings.group.worker': 'Order Worker',
'settings.group.notification': 'Signal Notification',
'settings.group.smtp': 'Email SMTP',
'settings.group.twilio': 'Twilio SMS',
'settings.group.auth': 'Security & Authentication',
'settings.group.ai': 'AI / LLM Configuration',
'settings.group.trading': 'Live Trading',
'settings.group.strategy': 'Strategy Execution',
'settings.group.proxy': 'Proxy Configuration',
'settings.group.app': 'Application',
'settings.group.ai': 'AI/LLM Configuration',
'settings.group.market': 'Market Presets',
'settings.group.data_source': 'Data Sources',
'settings.group.search': 'Search Configuration',
'settings.group.agent_memory': 'Memory/Reflection',
'settings.group.reflection_worker': 'Auto Reflection Verification Worker',
'settings.group.notification': 'Notifications',
'settings.group.email': 'Email (SMTP)',
'settings.group.sms': 'SMS (Twilio)',
'settings.group.agent': 'AI Agent',
'settings.group.network': 'Network & Proxy',
'settings.group.search': 'Web Search',
'settings.group.app': 'Application',
// Settings fields - Auth
'settings.field.SECRET_KEY': 'Secret Key',
'settings.field.ADMIN_USER': 'Admin Username',
@@ -1937,6 +1936,10 @@ const locale = {
// Settings fields - Worker
'settings.field.ENABLE_PENDING_ORDER_WORKER': 'Enable Order Worker',
'settings.field.PENDING_ORDER_STALE_SEC': 'Order Stale Timeout (sec)',
// Settings fields - Trading
'settings.field.ORDER_MODE': 'Order Mode',
'settings.field.MAKER_WAIT_SEC': 'Limit Order Wait Time (sec)',
'settings.field.MAKER_OFFSET_BPS': 'Limit Order Price Offset (bps)',
// Settings fields - Notification
'settings.field.SIGNAL_WEBHOOK_URL': 'Webhook URL',
'settings.field.SIGNAL_WEBHOOK_TOKEN': 'Webhook Token',
@@ -2014,7 +2017,13 @@ const locale = {
'settings.field.SEARCH_GOOGLE_API_KEY': 'Google API Key',
'settings.field.SEARCH_GOOGLE_CX': 'Google CX',
'settings.field.SEARCH_BING_API_KEY': 'Bing API Key',
'settings.field.INTERNAL_API_KEY': 'Internal API Key'
'settings.field.INTERNAL_API_KEY': 'Internal API Key',
// Settings descriptions (config item descriptions)
// Note: These are optional since backend already provides English descriptions
'settings.desc.ORDER_MODE': 'maker: Limit order first (lower fees), market: Market order (instant fill)',
'settings.desc.MAKER_WAIT_SEC': 'Wait time for limit order fill before switching to market order',
'settings.desc.MAKER_OFFSET_BPS': 'Price offset in basis points. Buy: price*(1-offset), Sell: price*(1+offset)'
}
export default {
+96 -15
View File
@@ -1649,22 +1649,20 @@ const locale = {
'settings.copyRestartCmd': '复制重启命令',
'settings.copySuccess': '复制成功',
'settings.copyFailed': '复制失败',
// Settings groups
'settings.group.auth': '认证配置',
'settings.group.server': '服务器配置',
'settings.group.worker': '订单处理配置',
'settings.group.notification': '信号通知配置',
'settings.group.smtp': '邮件SMTP配置',
'settings.group.twilio': 'Twilio短信配置',
'settings.group.strategy': '策略执行配置',
'settings.group.proxy': '代理配置',
'settings.group.app': '应用配置',
// Settings groups (按后端 order 排序)
'settings.group.server': '服务配置',
'settings.group.auth': '安全认证',
'settings.group.ai': 'AI/LLM配置',
'settings.group.market': '市场预设',
'settings.group.data_source': '数据源配置',
'settings.group.trading': '实盘交易',
'settings.group.strategy': '策略执行',
'settings.group.data_source': '数据源',
'settings.group.notification': '通知推送',
'settings.group.email': '邮件配置',
'settings.group.sms': '短信配置',
'settings.group.agent': 'AI Agent',
'settings.group.network': '网络代理',
'settings.group.search': '搜索配置',
'settings.group.agent_memory': '记忆/反思配置',
'settings.group.reflection_worker': '自动反思验证Worker',
'settings.group.app': '应用配置',
// Settings fields - Auth
'settings.field.SECRET_KEY': 'Secret Key',
'settings.field.ADMIN_USER': '管理员用户名',
@@ -1676,6 +1674,10 @@ const locale = {
// Settings fields - Worker
'settings.field.ENABLE_PENDING_ORDER_WORKER': '启用订单处理Worker',
'settings.field.PENDING_ORDER_STALE_SEC': '订单超时时间(秒)',
// Settings fields - Trading
'settings.field.ORDER_MODE': '下单模式',
'settings.field.MAKER_WAIT_SEC': '限价单等待时间(秒)',
'settings.field.MAKER_OFFSET_BPS': '限价单价格偏移(基点)',
// Settings fields - Notification
'settings.field.SIGNAL_WEBHOOK_URL': 'Webhook URL',
'settings.field.SIGNAL_WEBHOOK_TOKEN': 'Webhook Token',
@@ -1753,7 +1755,86 @@ const locale = {
'settings.field.SEARCH_GOOGLE_API_KEY': 'Google API Key',
'settings.field.SEARCH_GOOGLE_CX': 'Google CX',
'settings.field.SEARCH_BING_API_KEY': 'Bing API Key',
'settings.field.INTERNAL_API_KEY': '内部API Key'
'settings.field.INTERNAL_API_KEY': '内部API Key',
// Settings descriptions (配置项说明)
'settings.desc.PYTHON_API_HOST': '服务监听地址。0.0.0.0 允许外部访问,127.0.0.1 仅本地访问',
'settings.desc.PYTHON_API_PORT': '服务监听端口,默认5000',
'settings.desc.PYTHON_API_DEBUG': '启用调试模式,开发时使用。生产环境请关闭',
'settings.desc.SECRET_KEY': 'JWT签名密钥。生产环境必须修改以确保安全',
'settings.desc.ADMIN_USER': '管理员登录用户名',
'settings.desc.ADMIN_PASSWORD': '管理员登录密码。生产环境必须修改',
'settings.desc.OPENROUTER_API_KEY': 'OpenRouter API密钥,用于访问多种AI模型',
'settings.desc.OPENROUTER_API_URL': 'OpenRouter API端点地址',
'settings.desc.OPENROUTER_MODEL': '默认使用的AI模型,如 openai/gpt-4o, anthropic/claude-3.5-sonnet',
'settings.desc.OPENROUTER_TEMPERATURE': '模型创造性(0-1)。越低越确定性,越高越有创意',
'settings.desc.OPENROUTER_MAX_TOKENS': '每次请求最大输出token数',
'settings.desc.OPENROUTER_TIMEOUT': 'API请求超时时间(秒)',
'settings.desc.OPENROUTER_CONNECT_TIMEOUT': '连接建立超时时间(秒)',
'settings.desc.AI_MODELS_JSON': '自定义模型列表,JSON格式,用于模型选择器',
'settings.desc.ENABLE_PENDING_ORDER_WORKER': '启用后台订单处理Worker,实盘交易必需',
'settings.desc.PENDING_ORDER_STALE_SEC': '等待订单超时时间,超时后标记为过期',
'settings.desc.ORDER_MODE': 'maker: 限价单优先(手续费低)market: 市价单(立即成交)',
'settings.desc.MAKER_WAIT_SEC': '限价单等待成交时间,超时后自动切换为市价单',
'settings.desc.MAKER_OFFSET_BPS': '限价单价格偏移(基点)。买入价=市价*(1-偏移),卖出价=市价*(1+偏移)',
'settings.desc.DISABLE_RESTORE_RUNNING_STRATEGIES': '禁止服务重启时自动恢复运行中的策略',
'settings.desc.STRATEGY_TICK_INTERVAL_SEC': '策略主循环检查间隔(秒)',
'settings.desc.PRICE_CACHE_TTL_SEC': '价格数据缓存有效期(秒)',
'settings.desc.MARKET_TYPES_JSON': '自定义市场类型配置,JSON格式',
'settings.desc.TRADING_SUPPORTED_SYMBOLS_JSON': '支持的交易对列表,JSON格式',
'settings.desc.DATA_SOURCE_TIMEOUT': '数据源请求默认超时时间',
'settings.desc.DATA_SOURCE_RETRY': '数据源请求失败时的重试次数',
'settings.desc.DATA_SOURCE_RETRY_BACKOFF': '重试间隔时间(秒)',
'settings.desc.CCXT_DEFAULT_EXCHANGE': 'CCXT默认交易所(binance, coinbase, okx等)',
'settings.desc.CCXT_TIMEOUT': 'CCXT请求超时时间(毫秒)',
'settings.desc.CCXT_PROXY': 'CCXT请求代理地址(如 socks5h://127.0.0.1:1080',
'settings.desc.FINNHUB_API_KEY': 'Finnhub API密钥,用于美股数据(有免费额度)',
'settings.desc.FINNHUB_TIMEOUT': 'Finnhub API请求超时时间',
'settings.desc.FINNHUB_RATE_LIMIT': 'Finnhub API速率限制(每分钟请求数)',
'settings.desc.TIINGO_API_KEY': 'Tiingo API密钥,用于美股数据(有免费额度)',
'settings.desc.TIINGO_TIMEOUT': 'Tiingo API请求超时时间',
'settings.desc.AKSHARE_TIMEOUT': 'Akshare API超时时间,用于A股数据',
'settings.desc.YFINANCE_TIMEOUT': 'Yahoo Finance API超时时间',
'settings.desc.SIGNAL_WEBHOOK_URL': '信号通知Webhook地址(POST JSON',
'settings.desc.SIGNAL_WEBHOOK_TOKEN': 'Webhook认证令牌,通过请求头发送',
'settings.desc.SIGNAL_NOTIFY_TIMEOUT_SEC': '通知请求超时时间',
'settings.desc.TELEGRAM_BOT_TOKEN': 'Telegram机器人Token,从@BotFather获取',
'settings.desc.SMTP_HOST': 'SMTP邮件服务器地址(如 smtp.gmail.com',
'settings.desc.SMTP_PORT': 'SMTP端口(TLS用587SSL用465,明文用25',
'settings.desc.SMTP_USER': 'SMTP认证用户名(通常是邮箱地址)',
'settings.desc.SMTP_PASSWORD': 'SMTP认证密码或应用专用密码',
'settings.desc.SMTP_FROM': '邮件发件人地址',
'settings.desc.SMTP_USE_TLS': '启用STARTTLS加密(推荐端口587',
'settings.desc.SMTP_USE_SSL': '启用SSL加密(端口465',
'settings.desc.TWILIO_ACCOUNT_SID': 'Twilio账户SID,从控制台获取',
'settings.desc.TWILIO_AUTH_TOKEN': 'Twilio认证Token,从控制台获取',
'settings.desc.TWILIO_FROM_NUMBER': 'Twilio发送短信的号码(如 +1234567890',
'settings.desc.ENABLE_AGENT_MEMORY': '启用AI Agent记忆功能,用于学习历史交易',
'settings.desc.AGENT_MEMORY_ENABLE_VECTOR': '启用本地向量相似度搜索进行记忆检索',
'settings.desc.AGENT_MEMORY_EMBEDDING_DIM': '记忆向量嵌入维度',
'settings.desc.AGENT_MEMORY_TOP_K': '检索时返回的相似记忆数量',
'settings.desc.AGENT_MEMORY_CANDIDATE_LIMIT': '相似度搜索的候选记忆上限',
'settings.desc.AGENT_MEMORY_HALF_LIFE_DAYS': '记忆时间衰减的半衰期(天)',
'settings.desc.AGENT_MEMORY_W_SIM': '记忆排序中相似度分数的权重(0-1)',
'settings.desc.AGENT_MEMORY_W_RECENCY': '记忆排序中时间新近度的权重(0-1)',
'settings.desc.AGENT_MEMORY_W_RETURNS': '记忆排序中收益表现的权重(0-1)',
'settings.desc.ENABLE_REFLECTION_WORKER': '启用后台自动交易反思Worker',
'settings.desc.REFLECTION_WORKER_INTERVAL_SEC': '自动反思运行间隔(默认24小时)',
'settings.desc.PROXY_HOST': '代理服务器主机名或IP',
'settings.desc.PROXY_PORT': '代理服务器端口(留空则禁用代理)',
'settings.desc.PROXY_SCHEME': '代理协议类型。socks5h 表示DNS也走代理',
'settings.desc.PROXY_URL': '完整代理URL(设置后覆盖上面的配置)',
'settings.desc.SEARCH_PROVIDER': '网页搜索提供商,用于AI研究功能',
'settings.desc.SEARCH_MAX_RESULTS': '搜索返回的最大结果数',
'settings.desc.SEARCH_GOOGLE_API_KEY': 'Google自定义搜索API密钥',
'settings.desc.SEARCH_GOOGLE_CX': 'Google可编程搜索引擎ID (CX)',
'settings.desc.SEARCH_BING_API_KEY': 'Microsoft Bing网页搜索API密钥',
'settings.desc.INTERNAL_API_KEY': '内部API认证密钥,用于服务间调用',
'settings.desc.CORS_ORIGINS': '允许的CORS来源(* 表示全部,或逗号分隔的列表)',
'settings.desc.RATE_LIMIT': '每IP每分钟的API请求限制',
'settings.desc.ENABLE_CACHE': '启用响应缓存以提高性能',
'settings.desc.ENABLE_REQUEST_LOG': '记录所有API请求日志,用于调试',
'settings.desc.ENABLE_AI_ANALYSIS': '启用AI驱动的市场分析功能'
}
export default {
+96 -14
View File
@@ -1650,21 +1650,20 @@ const locale = {
'settings.copySuccess': '複製成功',
'settings.copyFailed': '複製失敗',
// Settings groups
'settings.group.auth': '認證配置',
'settings.group.server': '服務配置',
'settings.group.worker': '訂單處理配置',
'settings.group.notification': '信號通知配置',
'settings.group.smtp': '郵件SMTP配置',
'settings.group.twilio': 'Twilio短信配置',
'settings.group.strategy': '策略執行配置',
'settings.group.proxy': '代理配置',
'settings.group.app': '應用配置',
// Settings groups (按後端 order 排序)
'settings.group.server': '服務配置',
'settings.group.auth': '安全認證',
'settings.group.ai': 'AI/LLM配置',
'settings.group.market': '市場預設',
'settings.group.data_source': '數據源配置',
'settings.group.trading': '實盤交易',
'settings.group.strategy': '策略執行',
'settings.group.data_source': '數據源',
'settings.group.notification': '通知推送',
'settings.group.email': '郵件配置',
'settings.group.sms': '短信配置',
'settings.group.agent': 'AI Agent',
'settings.group.network': '網絡代理',
'settings.group.search': '搜索配置',
'settings.group.agent_memory': '記憶/反思配置',
'settings.group.reflection_worker': '自動反思驗證Worker',
'settings.group.app': '應用配置',
// Settings fields - Auth
'settings.field.SECRET_KEY': 'Secret Key',
'settings.field.ADMIN_USER': '管理員用戶名',
@@ -1676,6 +1675,10 @@ const locale = {
// Settings fields - Worker
'settings.field.ENABLE_PENDING_ORDER_WORKER': '啟用訂單處理Worker',
'settings.field.PENDING_ORDER_STALE_SEC': '訂單超時時間(秒)',
// Settings fields - Trading
'settings.field.ORDER_MODE': '下單模式',
'settings.field.MAKER_WAIT_SEC': '限價單等待時間(秒)',
'settings.field.MAKER_OFFSET_BPS': '限價單價格偏移(基點)',
// Settings fields - Notification
'settings.field.SIGNAL_WEBHOOK_URL': 'Webhook URL',
'settings.field.SIGNAL_WEBHOOK_TOKEN': 'Webhook Token',
@@ -1753,7 +1756,86 @@ const locale = {
'settings.field.SEARCH_GOOGLE_API_KEY': 'Google API Key',
'settings.field.SEARCH_GOOGLE_CX': 'Google CX',
'settings.field.SEARCH_BING_API_KEY': 'Bing API Key',
'settings.field.INTERNAL_API_KEY': '內部API Key'
'settings.field.INTERNAL_API_KEY': '內部API Key',
// Settings descriptions (配置項說明)
'settings.desc.PYTHON_API_HOST': '服務監聽地址。0.0.0.0 允許外部訪問,127.0.0.1 僅本地訪問',
'settings.desc.PYTHON_API_PORT': '服務監聽端口,默認5000',
'settings.desc.PYTHON_API_DEBUG': '啟用調試模式,開發時使用。生產環境請關閉',
'settings.desc.SECRET_KEY': 'JWT簽名密鑰。生產環境必須修改以確保安全',
'settings.desc.ADMIN_USER': '管理員登錄用戶名',
'settings.desc.ADMIN_PASSWORD': '管理員登錄密碼。生產環境必須修改',
'settings.desc.OPENROUTER_API_KEY': 'OpenRouter API密鑰,用於訪問多種AI模型',
'settings.desc.OPENROUTER_API_URL': 'OpenRouter API端點地址',
'settings.desc.OPENROUTER_MODEL': '默認使用的AI模型,如 openai/gpt-4o, anthropic/claude-3.5-sonnet',
'settings.desc.OPENROUTER_TEMPERATURE': '模型創造性(0-1)。越低越確定性,越高越有創意',
'settings.desc.OPENROUTER_MAX_TOKENS': '每次請求最大輸出token數',
'settings.desc.OPENROUTER_TIMEOUT': 'API請求超時時間(秒)',
'settings.desc.OPENROUTER_CONNECT_TIMEOUT': '連接建立超時時間(秒)',
'settings.desc.AI_MODELS_JSON': '自定義模型列表,JSON格式,用於模型選擇器',
'settings.desc.ENABLE_PENDING_ORDER_WORKER': '啟用後台訂單處理Worker,實盤交易必需',
'settings.desc.PENDING_ORDER_STALE_SEC': '等待訂單超時時間,超時後標記為過期',
'settings.desc.ORDER_MODE': 'maker: 限價單優先(手續費低)market: 市價單(立即成交)',
'settings.desc.MAKER_WAIT_SEC': '限價單等待成交時間,超時後自動切換為市價單',
'settings.desc.MAKER_OFFSET_BPS': '限價單價格偏移(基點)。買入價=市價*(1-偏移),賣出價=市價*(1+偏移)',
'settings.desc.DISABLE_RESTORE_RUNNING_STRATEGIES': '禁止服務重啟時自動恢復運行中的策略',
'settings.desc.STRATEGY_TICK_INTERVAL_SEC': '策略主循環檢查間隔(秒)',
'settings.desc.PRICE_CACHE_TTL_SEC': '價格數據緩存有效期(秒)',
'settings.desc.MARKET_TYPES_JSON': '自定義市場類型配置,JSON格式',
'settings.desc.TRADING_SUPPORTED_SYMBOLS_JSON': '支持的交易對列表,JSON格式',
'settings.desc.DATA_SOURCE_TIMEOUT': '數據源請求默認超時時間',
'settings.desc.DATA_SOURCE_RETRY': '數據源請求失敗時的重試次數',
'settings.desc.DATA_SOURCE_RETRY_BACKOFF': '重試間隔時間(秒)',
'settings.desc.CCXT_DEFAULT_EXCHANGE': 'CCXT默認交易所(binance, coinbase, okx等)',
'settings.desc.CCXT_TIMEOUT': 'CCXT請求超時時間(毫秒)',
'settings.desc.CCXT_PROXY': 'CCXT請求代理地址(如 socks5h://127.0.0.1:1080',
'settings.desc.FINNHUB_API_KEY': 'Finnhub API密鑰,用於美股數據(有免費額度)',
'settings.desc.FINNHUB_TIMEOUT': 'Finnhub API請求超時時間',
'settings.desc.FINNHUB_RATE_LIMIT': 'Finnhub API速率限制(每分鐘請求數)',
'settings.desc.TIINGO_API_KEY': 'Tiingo API密鑰,用於美股數據(有免費額度)',
'settings.desc.TIINGO_TIMEOUT': 'Tiingo API請求超時時間',
'settings.desc.AKSHARE_TIMEOUT': 'Akshare API超時時間,用於A股數據',
'settings.desc.YFINANCE_TIMEOUT': 'Yahoo Finance API超時時間',
'settings.desc.SIGNAL_WEBHOOK_URL': '信號通知Webhook地址(POST JSON',
'settings.desc.SIGNAL_WEBHOOK_TOKEN': 'Webhook認證令牌,通過請求頭發送',
'settings.desc.SIGNAL_NOTIFY_TIMEOUT_SEC': '通知請求超時時間',
'settings.desc.TELEGRAM_BOT_TOKEN': 'Telegram機器人Token,從@BotFather獲取',
'settings.desc.SMTP_HOST': 'SMTP郵件服務器地址(如 smtp.gmail.com',
'settings.desc.SMTP_PORT': 'SMTP端口(TLS用587SSL用465,明文用25',
'settings.desc.SMTP_USER': 'SMTP認證用戶名(通常是郵箱地址)',
'settings.desc.SMTP_PASSWORD': 'SMTP認證密碼或應用專用密碼',
'settings.desc.SMTP_FROM': '郵件發件人地址',
'settings.desc.SMTP_USE_TLS': '啟用STARTTLS加密(推薦端口587',
'settings.desc.SMTP_USE_SSL': '啟用SSL加密(端口465',
'settings.desc.TWILIO_ACCOUNT_SID': 'Twilio賬戶SID,從控制台獲取',
'settings.desc.TWILIO_AUTH_TOKEN': 'Twilio認證Token,從控制台獲取',
'settings.desc.TWILIO_FROM_NUMBER': 'Twilio發送短信的號碼(如 +1234567890',
'settings.desc.ENABLE_AGENT_MEMORY': '啟用AI Agent記憶功能,用於學習歷史交易',
'settings.desc.AGENT_MEMORY_ENABLE_VECTOR': '啟用本地向量相似度搜索進行記憶檢索',
'settings.desc.AGENT_MEMORY_EMBEDDING_DIM': '記憶向量嵌入維度',
'settings.desc.AGENT_MEMORY_TOP_K': '檢索時返回的相似記憶數量',
'settings.desc.AGENT_MEMORY_CANDIDATE_LIMIT': '相似度搜索的候選記憶上限',
'settings.desc.AGENT_MEMORY_HALF_LIFE_DAYS': '記憶時間衰減的半衰期(天)',
'settings.desc.AGENT_MEMORY_W_SIM': '記憶排序中相似度分數的權重(0-1)',
'settings.desc.AGENT_MEMORY_W_RECENCY': '記憶排序中時間新近度的權重(0-1)',
'settings.desc.AGENT_MEMORY_W_RETURNS': '記憶排序中收益表現的權重(0-1)',
'settings.desc.ENABLE_REFLECTION_WORKER': '啟用後台自動交易反思Worker',
'settings.desc.REFLECTION_WORKER_INTERVAL_SEC': '自動反思運行間隔(默認24小時)',
'settings.desc.PROXY_HOST': '代理服務器主機名或IP',
'settings.desc.PROXY_PORT': '代理服務器端口(留空則禁用代理)',
'settings.desc.PROXY_SCHEME': '代理協議類型。socks5h 表示DNS也走代理',
'settings.desc.PROXY_URL': '完整代理URL(設置後覆蓋上面的配置)',
'settings.desc.SEARCH_PROVIDER': '網頁搜索提供商,用於AI研究功能',
'settings.desc.SEARCH_MAX_RESULTS': '搜索返回的最大結果數',
'settings.desc.SEARCH_GOOGLE_API_KEY': 'Google自定義搜索API密鑰',
'settings.desc.SEARCH_GOOGLE_CX': 'Google可編程搜索引擎ID (CX)',
'settings.desc.SEARCH_BING_API_KEY': 'Microsoft Bing網頁搜索API密鑰',
'settings.desc.INTERNAL_API_KEY': '內部API認證密鑰,用於服務間調用',
'settings.desc.CORS_ORIGINS': '允許的CORS來源(* 表示全部,或逗號分隔的列表)',
'settings.desc.RATE_LIMIT': '每IP每分鐘的API請求限制',
'settings.desc.ENABLE_CACHE': '啟用響應緩存以提高性能',
'settings.desc.ENABLE_REQUEST_LOG': '記錄所有API請求日誌,用於調試',
'settings.desc.ENABLE_AI_ANALYSIS': '啟用AI驅動的市場分析功能'
}
export default {