Spaces:
Sleeping
Sleeping
| """ | |
| 常量定义模块 | |
| 统一管理所有魔法数字和硬编码字符串 | |
| """ | |
| # API相关常量 | |
| class APIConstants: | |
| MODEL_ID = "MBZUAI-IFM/K2-Think" | |
| MODEL_ID_NOTHINK = "MBZUAI-IFM/K2-Think-nothink" | |
| MODEL_OWNER = "MBZUAI" | |
| MODEL_ROOT = "mbzuai-k2-think-2508" | |
| # HTTP状态码 | |
| HTTP_OK = 200 | |
| HTTP_UNAUTHORIZED = 401 | |
| HTTP_NOT_FOUND = 404 | |
| HTTP_INTERNAL_ERROR = 500 | |
| HTTP_GATEWAY_TIMEOUT = 504 | |
| # 认证相关 | |
| BEARER_PREFIX = "Bearer " | |
| BEARER_PREFIX_LENGTH = 7 | |
| # 响应相关常量 | |
| class ResponseConstants: | |
| CHAT_COMPLETION_OBJECT = "chat.completion" | |
| CHAT_COMPLETION_CHUNK_OBJECT = "chat.completion.chunk" | |
| MODEL_OBJECT = "model" | |
| LIST_OBJECT = "list" | |
| # 完成原因 | |
| FINISH_REASON_STOP = "stop" | |
| FINISH_REASON_TOOL_CALLS = "tool_calls" | |
| FINISH_REASON_ERROR = "error" | |
| # 流式响应标记 | |
| STREAM_DONE_MARKER = "data: [DONE]\n\n" | |
| STREAM_DATA_PREFIX = "data: " | |
| # 工具调用相关常量 | |
| class ToolConstants: | |
| FUNCTION_TYPE = "function" | |
| TOOL_TYPE = "function" | |
| # 工具调用ID前缀 | |
| CALL_ID_PREFIX = "call_" | |
| # 工具提示长度限制 | |
| MAX_TOOL_PROMPT_LENGTH = 1000 | |
| TOOL_PROMPT_TRUNCATE_SUFFIX = "..." | |
| # 内容处理相关常量 | |
| class ContentConstants: | |
| # XML标签 | |
| THINK_START_TAG = "<think>" | |
| THINK_END_TAG = "</think>" | |
| ANSWER_START_TAG = "<answer>" | |
| ANSWER_END_TAG = "</answer>" | |
| # 内容类型 | |
| TEXT_TYPE = "text" | |
| IMAGE_URL_TYPE = "image_url" | |
| # 图像占位符 | |
| IMAGE_PLACEHOLDER = "[图像内容]" | |
| # 默认值 | |
| DEFAULT_USER_NAME = "User" | |
| DEFAULT_USER_LOCATION = "Unknown" | |
| DEFAULT_USER_LANGUAGE = "en-US" | |
| DEFAULT_TIMEZONE = "Asia/Shanghai" | |
| # 错误消息常量 | |
| class ErrorMessages: | |
| INVALID_API_KEY = "Invalid API key provided" | |
| AUTHENTICATION_ERROR = "authentication_error" | |
| UPSTREAM_ERROR = "upstream_error" | |
| TIMEOUT_ERROR = "timeout_error" | |
| API_ERROR = "api_error" | |
| # 中文错误消息 | |
| REQUEST_TIMEOUT = "请求超时" | |
| SERIALIZATION_FAILED = "请求数据序列化失败" | |
| UPSTREAM_SERVICE_ERROR = "上游服务错误" | |
| # 日志消息常量 | |
| class LogMessages: | |
| TOOL_STATUS = "🔧 工具调用状态: has_tools={}, tools_count={}" | |
| MESSAGE_RECEIVED = "📥 接收到的原始消息数: {}" | |
| ROLE_DISTRIBUTION = "📊 {}消息角色分布: {}" | |
| MESSAGE_PROCESSED = "🔄 消息处理完成,原始消息数: {}, 处理后消息数: {}" | |
| NO_TOOLS = "⏭️ 无工具调用,直接使用原始消息" | |
| JSON_VALIDATION_SUCCESS = "✅ K2Think请求体JSON序列化验证通过" | |
| JSON_VALIDATION_FAILED = "❌ K2Think请求体JSON序列化失败: {}" | |
| JSON_FIXED = "🔧 使用default=str修复了序列化问题" | |
| # 动态chunk计算日志 | |
| DYNAMIC_CHUNK_CALC = "动态chunk_size计算: 内容长度={}, 计算值={}, 最终值={}" | |
| # 工具相关日志 | |
| TOOL_PROMPT_TOO_LONG = "工具提示过长 ({} 字符),将截断" | |
| SYSTEM_MESSAGE_TOO_LONG = "系统消息过长 ({} 字符),使用简化版本" | |
| TOOL_CALLS_EXTRACTED = "提取到工具调用: {}" | |
| # HTTP头常量 | |
| class HeaderConstants: | |
| AUTHORIZATION = "Authorization" | |
| CONTENT_TYPE = "Content-Type" | |
| ACCEPT = "Accept" | |
| ORIGIN = "Origin" | |
| REFERER = "Referer" | |
| USER_AGENT = "User-Agent" | |
| CACHE_CONTROL = "Cache-Control" | |
| CONNECTION = "Connection" | |
| X_ACCEL_BUFFERING = "X-Accel-Buffering" | |
| # 值 | |
| APPLICATION_JSON = "application/json" | |
| TEXT_EVENT_STREAM = "text/event-stream" | |
| EVENT_STREAM_JSON = "text/event-stream,application/json" | |
| NO_CACHE = "no-cache" | |
| KEEP_ALIVE = "keep-alive" | |
| NO_BUFFERING = "no" | |
| # User-Agent值 | |
| DEFAULT_USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 Edg/140.0.0.0" | |
| # 时间相关常量 | |
| class TimeConstants: | |
| # 时间格式 | |
| DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S" | |
| DATE_FORMAT = "%Y-%m-%d" | |
| TIME_FORMAT = "%H:%M:%S" | |
| WEEKDAY_FORMAT = "%A" | |
| # 微秒转换 | |
| MICROSECONDS_MULTIPLIER = 1000000 | |
| # 数值常量 | |
| class NumericConstants: | |
| # chunk大小限制 | |
| MIN_CHUNK_SIZE = 50 | |
| # 内容预览长度 | |
| CONTENT_PREVIEW_LENGTH = 200 | |
| CONTENT_PREVIEW_SUFFIX = "..." | |
| # 默认token使用量 | |
| DEFAULT_PROMPT_TOKENS = 0 | |
| DEFAULT_COMPLETION_TOKENS = 0 | |
| DEFAULT_TOTAL_TOKENS = 0 |