Spaces:
Sleeping
Sleeping
| """ | |
| 国际化消息配置文件 | |
| 包含所有错误消息、成功消息、状态消息和UI标签消息的中英文映射 | |
| """ | |
| from utils.i18n_types import Language | |
| # 错误消息国际化 | |
| ERROR_MESSAGES = { | |
| Language.CHINESE: { | |
| "invalid_request": "无效的请求参数", | |
| "search_failed": "搜索失败", | |
| "no_results": "未找到相关结果", | |
| "service_unavailable": "服务暂时不可用", | |
| "internal_error": "内部服务器错误", | |
| "invalid_language": "不支持的语言设置", | |
| "query_too_long": "查询内容过长", | |
| "rate_limit_exceeded": "请求频率过高,请稍后重试", | |
| "authentication_failed": "认证失败", | |
| "permission_denied": "权限不足", | |
| "resource_not_found": "资源未找到", | |
| "network_error": "网络连接错误", | |
| "timeout_error": "请求超时", | |
| "invalid_format": "数据格式错误", | |
| "missing_required_field": "缺少必需字段", | |
| "invalid_user_id": "无效的用户ID", | |
| "search_service_error": "搜索服务错误", | |
| "llm_service_error": "语言模型服务错误", | |
| "embedding_service_error": "向量化服务错误", | |
| "database_error": "数据库错误", | |
| }, | |
| Language.ENGLISH: { | |
| "invalid_request": "Invalid request parameters", | |
| "search_failed": "Search failed", | |
| "no_results": "No relevant results found", | |
| "service_unavailable": "Service temporarily unavailable", | |
| "internal_error": "Internal server error", | |
| "invalid_language": "Unsupported language setting", | |
| "query_too_long": "Query content too long", | |
| "rate_limit_exceeded": "Request rate exceeded, please try again later", | |
| "authentication_failed": "Authentication failed", | |
| "permission_denied": "Permission denied", | |
| "resource_not_found": "Resource not found", | |
| "network_error": "Network connection error", | |
| "timeout_error": "Request timeout", | |
| "invalid_format": "Invalid data format", | |
| "missing_required_field": "Missing required field", | |
| "invalid_user_id": "Invalid user ID", | |
| "search_service_error": "Search service error", | |
| "llm_service_error": "Language model service error", | |
| "embedding_service_error": "Embedding service error", | |
| "database_error": "Database error", | |
| }, | |
| } | |
| # 成功消息国际化 | |
| SUCCESS_MESSAGES = { | |
| Language.CHINESE: { | |
| "search_success": "搜索成功", | |
| "chat_success": "聊天服务正常", | |
| "health_check_ok": "服务运行正常", | |
| "results_found": "找到相关结果", | |
| "processing_complete": "处理完成", | |
| }, | |
| Language.ENGLISH: { | |
| "search_success": "Search successful", | |
| "chat_success": "Chat service normal", | |
| "health_check_ok": "Service running normally", | |
| "results_found": "Relevant results found", | |
| "processing_complete": "Processing complete", | |
| }, | |
| } | |
| # 状态消息国际化 | |
| STATUS_MESSAGES = { | |
| Language.CHINESE: { | |
| "processing": "正在处理", | |
| "searching": "正在搜索", | |
| "generating": "正在生成回答", | |
| "completed": "已完成", | |
| "failed": "处理失败", | |
| }, | |
| Language.ENGLISH: { | |
| "processing": "Processing", | |
| "searching": "Searching", | |
| "generating": "Generating answer", | |
| "completed": "Completed", | |
| "failed": "Processing failed", | |
| }, | |
| } | |
| # UI标签消息国际化 | |
| LABEL_MESSAGES = { | |
| Language.CHINESE: { | |
| "web_search_start": "正在调用 Browser 进行内容检索,所需时间较长,请等待...", | |
| "web_search": "正在调用 Browser 进行内容检索", | |
| "personal_search_start": "正在调用 个人知识库 进行内容检索,所需时间较长,请等待...", | |
| "personal_search": "正在调用 个人知识库 进行内容检索", | |
| "pubmed_search_start": "正在调用 PubMed 进行内容检索,所需时间较长,请等待...", | |
| "pubmed_search": "正在调用 PubMed 进行内容检索", | |
| "generating_answer": "正在生成回答", | |
| "processing": "正在处理", | |
| "personal_search_description": "片段 {index}", | |
| }, | |
| Language.ENGLISH: { | |
| "web_search_start": "Retrieving content from Browser, this may take a while, please wait...", | |
| "web_search": "Retrieving content from Browser", | |
| "personal_search_start": "Retrieving content from Personal Knowledge Base, this may take a while, please wait...", | |
| "personal_search": "Retrieving content from Personal Knowledge Base", | |
| "pubmed_search_start": "Retrieving content from PubMed, this may take a while, please wait...", | |
| "pubmed_search": "Retrieving content from PubMed", | |
| "generating_answer": "Generating answer", | |
| "processing": "Processing", | |
| "personal_search_description": "Chunk {index} from this reference.", | |
| }, | |
| } | |
| # 系统消息国际化 | |
| SYSTEM_MESSAGES = { | |
| Language.CHINESE: { | |
| "welcome": "欢迎使用生物医学RAG服务", | |
| "service_start": "服务已启动", | |
| "service_stop": "服务已停止", | |
| "connection_established": "连接已建立", | |
| "connection_lost": "连接已断开", | |
| "maintenance_mode": "系统维护中", | |
| "updating": "系统更新中", | |
| "backup_restore": "备份恢复中", | |
| }, | |
| Language.ENGLISH: { | |
| "welcome": "Welcome to Biomedical RAG Service", | |
| "service_start": "Service started", | |
| "service_stop": "Service stopped", | |
| "connection_established": "Connection established", | |
| "connection_lost": "Connection lost", | |
| "maintenance_mode": "System under maintenance", | |
| "updating": "System updating", | |
| "backup_restore": "Backup restoring", | |
| }, | |
| } | |
| # 业务消息国际化 | |
| BUSINESS_MESSAGES = { | |
| Language.CHINESE: { | |
| "search_started": "开始搜索...", | |
| "search_completed": "搜索完成", | |
| "no_search_results": "未找到搜索结果", | |
| "processing_request": "正在处理请求...", | |
| "request_completed": "请求处理完成", | |
| "upload_success": "文件上传成功", | |
| "upload_failed": "文件上传失败", | |
| "download_started": "开始下载...", | |
| "download_completed": "下载完成", | |
| "operation_success": "操作成功", | |
| "operation_failed": "操作失败", | |
| "data_saved": "数据已保存", | |
| "data_deleted": "数据已删除", | |
| "data_updated": "数据已更新", | |
| "connection_timeout": "连接超时", | |
| "server_busy": "服务器繁忙", | |
| "maintenance_notice": "系统维护通知", | |
| }, | |
| Language.ENGLISH: { | |
| "search_started": "Search started...", | |
| "search_completed": "Search completed", | |
| "no_search_results": "No search results found", | |
| "processing_request": "Processing request...", | |
| "request_completed": "Request completed", | |
| "upload_success": "File uploaded successfully", | |
| "upload_failed": "File upload failed", | |
| "download_started": "Download started...", | |
| "download_completed": "Download completed", | |
| "operation_success": "Operation successful", | |
| "operation_failed": "Operation failed", | |
| "data_saved": "Data saved", | |
| "data_deleted": "Data deleted", | |
| "data_updated": "Data updated", | |
| "connection_timeout": "Connection timeout", | |
| "server_busy": "Server busy", | |
| "maintenance_notice": "System maintenance notice", | |
| }, | |
| } | |
| # 所有消息类型的映射 | |
| ALL_MESSAGE_TYPES = { | |
| "error": ERROR_MESSAGES, | |
| "success": SUCCESS_MESSAGES, | |
| "status": STATUS_MESSAGES, | |
| "label": LABEL_MESSAGES, | |
| "system": SYSTEM_MESSAGES, | |
| "business": BUSINESS_MESSAGES, | |
| } | |
| def get_message(message_type: str, key: str, language: Language) -> str: | |
| """ | |
| 获取指定类型的国际化消息 | |
| Args: | |
| message_type: 消息类型 (error, success, status, label, system, business) | |
| key: 消息键 | |
| language: 语言 | |
| Returns: | |
| 国际化消息字符串 | |
| """ | |
| if message_type not in ALL_MESSAGE_TYPES: | |
| return f"Unknown message type: {message_type}" | |
| messages = ALL_MESSAGE_TYPES[message_type] | |
| default_language = Language.CHINESE | |
| return messages.get(language, messages[default_language]).get( | |
| key, | |
| messages[default_language].get(key, f"Unknown {message_type} message: {key}"), | |
| ) | |
| def get_all_messages_for_language(language: Language) -> dict: | |
| """ | |
| 获取指定语言的所有消息 | |
| Args: | |
| language: 语言 | |
| Returns: | |
| 包含所有消息类型的字典 | |
| """ | |
| result = {} | |
| for message_type, messages in ALL_MESSAGE_TYPES.items(): | |
| result[message_type] = messages.get(language, messages[Language.CHINESE]) | |
| return result | |
| def get_available_message_types() -> list: | |
| """ | |
| 获取所有可用的消息类型 | |
| Returns: | |
| 消息类型列表 | |
| """ | |
| return list(ALL_MESSAGE_TYPES.keys()) | |
| def get_available_keys_for_type(message_type: str) -> list: | |
| """ | |
| 获取指定消息类型的所有可用键 | |
| Args: | |
| message_type: 消息类型 | |
| Returns: | |
| 键列表 | |
| """ | |
| if message_type not in ALL_MESSAGE_TYPES: | |
| return [] | |
| messages = ALL_MESSAGE_TYPES[message_type] | |
| # 使用中文作为默认语言来获取所有键 | |
| return list(messages[Language.CHINESE].keys()) | |