feat: 增强文档和监控功能

主要更新:
- 完善 README 文档,新增中文详细使用说明与监控中心介绍
- 优化 README.md 文档内容和格式,增加英文和中文文档切换链接
- 新增监控中心模块,支持请求日志、统计分析和模型管理
- 增强 AI 提供商配置页面,添加配置搜索功能
- 更新 .gitignore,移除无效注释和调整条目名称
- 删除 README_CN.md 文件,统一文档结构

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
kongkongyo
2026-01-19 00:58:48 +08:00
parent d077b5dd26
commit e4850656a5
37 changed files with 6435 additions and 333 deletions

View File

@@ -95,7 +95,8 @@
"usage_stats": "Usage Statistics",
"config_management": "Config Management",
"logs": "Logs Viewer",
"system_info": "Management Center Info"
"system_info": "Management Center Info",
"monitor": "Monitor Center"
},
"dashboard": {
"title": "Dashboard",
@@ -324,7 +325,10 @@
"openai_test_success": "Test succeeded. The model responded.",
"openai_test_failed": "Test failed",
"openai_test_select_placeholder": "Choose from current models",
"openai_test_select_empty": "No models configured. Add models first"
"openai_test_select_empty": "No models configured. Add models first",
"search_placeholder": "Search configs (keys, URLs, models...)",
"search_empty_title": "No matching configs",
"search_empty_desc": "Try a different keyword or clear the search box"
},
"auth_files": {
"title": "Auth Files Management",
@@ -906,5 +910,170 @@
"build_date": "Build Time",
"version": "Management UI Version",
"author": "Author"
},
"monitor": {
"title": "Monitor Center",
"time_range": "Time Range",
"today": "Today",
"last_n_days": "Last {{n}} Days",
"api_filter": "API Query",
"api_filter_placeholder": "Query API data",
"apply": "Apply",
"no_data": "No data available",
"requests": "Requests",
"kpi": {
"requests": "Requests",
"success": "Success",
"failed": "Failed",
"rate": "Success Rate",
"tokens": "Tokens",
"input": "Input",
"output": "Output",
"reasoning": "Reasoning",
"cached": "Cached",
"avg_tpm": "Avg TPM",
"avg_rpm": "Avg RPM",
"avg_rpd": "Avg RPD",
"tokens_per_minute": "Tokens per minute",
"requests_per_minute": "Requests per minute",
"requests_per_day": "Requests per day"
},
"distribution": {
"title": "Model Usage Distribution",
"by_requests": "By Requests",
"by_tokens": "By Tokens",
"requests": "Requests",
"tokens": "Tokens",
"request_share": "Request Share",
"token_share": "Token Share"
},
"trend": {
"title": "Daily Usage Trend",
"subtitle": "Requests and Token usage trend",
"requests": "Requests",
"input_tokens": "Input Tokens",
"output_tokens": "Output Tokens",
"reasoning_tokens": "Reasoning Tokens",
"cached_tokens": "Cached Tokens"
},
"hourly": {
"last_6h": "Last 6 Hours",
"last_12h": "Last 12 Hours",
"last_24h": "Last 24 Hours",
"all": "All",
"requests": "Requests",
"success_rate": "Success Rate"
},
"hourly_model": {
"title": "Hourly Model Request Distribution",
"models": "Models"
},
"hourly_token": {
"title": "Hourly Token Usage",
"subtitle": "By Hour",
"total": "Total Tokens",
"input": "Input",
"output": "Output",
"reasoning": "Reasoning",
"cached": "Cached"
},
"channel": {
"title": "Channel Statistics",
"subtitle": "Grouped by source channel",
"click_hint": "Click row to expand model details",
"all_channels": "All Channels",
"all_models": "All Models",
"all_status": "All Status",
"only_success": "Success Only",
"only_failed": "Failed Only",
"header_name": "Channel",
"header_count": "Requests",
"header_rate": "Success Rate",
"header_recent": "Recent Status",
"header_time": "Last Request",
"model_details": "Model Details",
"model": "Model",
"success": "Success",
"failed": "Failed"
},
"time": {
"today": "Today",
"last_n_days": "{{n}} Days",
"custom": "Custom",
"to": "to",
"apply": "Apply"
},
"failure": {
"title": "Failure Analysis",
"subtitle": "Locate issues by source channel",
"click_hint": "Click row to expand details",
"no_failures": "No failure data",
"header_name": "Channel",
"header_count": "Failures",
"header_time": "Last Failure",
"header_models": "Top Failed Models",
"all_failed_models": "All Failed Models"
},
"logs": {
"title": "Request Logs",
"total_count": "{{count}} records",
"sort_hint": "Auto sorted by time desc",
"scroll_hint": "Scroll to browse all data",
"virtual_scroll_info": "Showing {{visible}} rows, {{total}} records total",
"all_apis": "All APIs",
"all_models": "All Models",
"all_sources": "All Sources",
"all_status": "All Status",
"all_provider_types": "All Providers",
"success": "Success",
"failed": "Failed",
"last_update": "Last Update",
"manual_refresh": "Manual Refresh",
"refresh_5s": "5s Refresh",
"refresh_10s": "10s Refresh",
"refresh_15s": "15s Refresh",
"refresh_30s": "30s Refresh",
"refresh_60s": "60s Refresh",
"refresh_in_seconds": "Refresh in {{seconds}}s",
"refreshing": "Refreshing...",
"header_auth": "Auth Index",
"header_api": "API",
"header_request_type": "Type",
"header_model": "Model",
"header_source": "Source",
"header_status": "Status",
"header_recent": "Recent Status",
"header_rate": "Success Rate",
"header_count": "Requests",
"header_input": "Input",
"header_output": "Output",
"header_total": "Total Tokens",
"header_time": "Time",
"header_actions": "Actions",
"showing": "Showing {{start}}-{{end}} of {{total}}",
"page_info": "Page {{current}}/{{total}}",
"first_page": "First",
"prev_page": "Prev",
"next_page": "Next",
"last_page": "Last",
"disable": "Disable",
"disable_model": "Disable this model",
"disabled": "Disabled",
"removed": "Removed",
"disabling": "Disabling...",
"disable_confirm_title": "Confirm Disable Model",
"disable_error": "Disable failed",
"disable_error_no_provider": "Cannot identify provider",
"disable_error_provider_not_found": "Provider config not found: {{provider}}",
"disable_not_supported": "{{provider}} provider does not support disable operation",
"disable_unsupported_title": "Auto-disable Not Supported",
"disable_unsupported_desc": "{{providerType}} type providers do not support auto-disable feature.",
"disable_unsupported_guide_title": "Manual Operation Guide",
"disable_unsupported_guide_step1": "1. Go to the \"AI Providers\" page",
"disable_unsupported_guide_step2": "2. Find the corresponding {{providerType}} configuration",
"disable_unsupported_guide_step3": "3. Edit the config and remove model \"{{model}}\"",
"disable_unsupported_guide_step4": "4. Save the configuration to apply changes",
"disable_unsupported_close": "Got it"
}
}
}

View File

@@ -95,7 +95,8 @@
"usage_stats": "使用统计",
"config_management": "配置管理",
"logs": "日志查看",
"system_info": "中心信息"
"system_info": "中心信息",
"monitor": "监控中心"
},
"dashboard": {
"title": "仪表盘",
@@ -324,7 +325,10 @@
"openai_test_success": "测试成功,模型可用。",
"openai_test_failed": "测试失败",
"openai_test_select_placeholder": "从当前模型列表选择",
"openai_test_select_empty": "当前未配置模型,请先添加模型"
"openai_test_select_empty": "当前未配置模型,请先添加模型",
"search_placeholder": "搜索配置(密钥、地址、模型等)",
"search_empty_title": "没有匹配的配置",
"search_empty_desc": "请尝试更换关键字或清空搜索框"
},
"auth_files": {
"title": "认证文件管理",
@@ -906,5 +910,170 @@
"build_date": "构建时间",
"version": "管理中心版本",
"author": "作者"
},
"monitor": {
"title": "监控中心",
"time_range": "时间范围",
"today": "今天",
"last_n_days": "最近 {{n}} 天",
"api_filter": "API 查询",
"api_filter_placeholder": "查询对应 API 数据",
"apply": "查看",
"no_data": "暂无数据",
"requests": "请求",
"kpi": {
"requests": "请求数",
"success": "成功",
"failed": "失败",
"rate": "成功率",
"tokens": "Tokens",
"input": "输入",
"output": "输出",
"reasoning": "思考",
"cached": "缓存",
"avg_tpm": "平均 TPM",
"avg_rpm": "平均 RPM",
"avg_rpd": "日均 RPD",
"tokens_per_minute": "每分钟 Token",
"requests_per_minute": "每分钟请求",
"requests_per_day": "每日请求数"
},
"distribution": {
"title": "模型用量分布",
"by_requests": "按请求数",
"by_tokens": "按 Token 数",
"requests": "请求",
"tokens": "Token",
"request_share": "请求占比",
"token_share": "Token 占比"
},
"trend": {
"title": "每日用量趋势",
"subtitle": "请求数与 Token 用量趋势",
"requests": "请求数",
"input_tokens": "输入 Token",
"output_tokens": "输出 Token",
"reasoning_tokens": "思考 Token",
"cached_tokens": "缓存 Token"
},
"hourly": {
"last_6h": "最近 6 小时",
"last_12h": "最近 12 小时",
"last_24h": "最近 24 小时",
"all": "全部",
"requests": "请求数",
"success_rate": "成功率"
},
"hourly_model": {
"title": "每小时模型请求分布",
"models": "模型"
},
"hourly_token": {
"title": "每小时 Token 用量",
"subtitle": "按小时显示",
"total": "总 Token",
"input": "输入",
"output": "输出",
"reasoning": "思考",
"cached": "缓存"
},
"channel": {
"title": "渠道统计",
"subtitle": "按来源渠道分类",
"click_hint": "单击行展开模型详情",
"all_channels": "全部渠道",
"all_models": "全部模型",
"all_status": "全部状态",
"only_success": "仅成功",
"only_failed": "仅失败",
"header_name": "渠道",
"header_count": "请求数",
"header_rate": "成功率",
"header_recent": "最近请求状态",
"header_time": "最近请求时间",
"model_details": "模型详情",
"model": "模型",
"success": "成功",
"failed": "失败"
},
"time": {
"today": "今天",
"last_n_days": "{{n}} 天",
"custom": "自定义",
"to": "至",
"apply": "应用"
},
"failure": {
"title": "失败来源分析",
"subtitle": "从来源渠道定位异常",
"click_hint": "单击行展开详情",
"no_failures": "暂无失败数据",
"header_name": "渠道",
"header_count": "失败数",
"header_time": "最近失败",
"header_models": "主要失败模型",
"all_failed_models": "所有失败模型"
},
"logs": {
"title": "请求日志",
"total_count": "共 {{count}} 条",
"sort_hint": "自动按时间倒序",
"scroll_hint": "滚动浏览全部数据",
"virtual_scroll_info": "当前显示 {{visible}} 行,共 {{total}} 条记录",
"all_apis": "全部请求 API",
"all_models": "全部请求模型",
"all_sources": "全部请求渠道",
"all_status": "全部请求状态",
"all_provider_types": "全部请求类型",
"success": "成功",
"failed": "失败",
"last_update": "最后更新",
"manual_refresh": "手动刷新",
"refresh_5s": "5秒刷新",
"refresh_10s": "10秒刷新",
"refresh_15s": "15秒刷新",
"refresh_30s": "30秒刷新",
"refresh_60s": "60秒刷新",
"refresh_in_seconds": "{{seconds}}秒后刷新",
"refreshing": "刷新中...",
"header_auth": "认证索引",
"header_api": "请求 API",
"header_request_type": "请求类型",
"header_model": "请求模型",
"header_source": "请求渠道",
"header_status": "请求状态",
"header_recent": "最近请求状态",
"header_rate": "成功率",
"header_count": "请求数",
"header_input": "输入",
"header_output": "输出",
"header_total": "总 Token",
"header_time": "时间",
"header_actions": "操作",
"showing": "显示 {{start}}-{{end}} 条,共 {{total}} 条",
"page_info": "第 {{current}}/{{total}} 页",
"first_page": "首页",
"prev_page": "上一页",
"next_page": "下一页",
"last_page": "末页",
"disable": "禁用",
"disable_model": "禁用此模型",
"disabled": "已禁用",
"removed": "已移除",
"disabling": "禁用中...",
"disable_confirm_title": "确认禁用模型",
"disable_error": "禁用失败",
"disable_error_no_provider": "无法识别渠道",
"disable_error_provider_not_found": "未找到渠道配置:{{provider}}",
"disable_not_supported": "{{provider}} 渠道不支持禁用操作",
"disable_unsupported_title": "不支持自动禁用",
"disable_unsupported_desc": "{{providerType}} 类型的渠道暂不支持自动禁用功能。",
"disable_unsupported_guide_title": "手动操作指南",
"disable_unsupported_guide_step1": "1. 前往「AI 提供商」页面",
"disable_unsupported_guide_step2": "2. 找到对应的 {{providerType}} 配置",
"disable_unsupported_guide_step3": "3. 编辑配置,移除模型「{{model}}」",
"disable_unsupported_guide_step4": "4. 保存配置即可生效",
"disable_unsupported_close": "我知道了"
}
}
}