From 0ff9f1fd74b32e3192ba216194c28b7b825e7c59 Mon Sep 17 00:00:00 2001 From: MT-Fire <798521692@qq.com> Date: Thu, 12 Mar 2026 13:56:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=81=94=E7=BD=91=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=88=9D=E6=AD=A5=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/adapters/openai_adapter.py | 19 ++++++++++++++++--- server/adapters/plugins.py | 8 +++++++- tsconfig.tsbuildinfo | 1 - 3 files changed, 23 insertions(+), 5 deletions(-) delete mode 100644 tsconfig.tsbuildinfo diff --git a/server/adapters/openai_adapter.py b/server/adapters/openai_adapter.py index 1b6ae80..5421a10 100644 --- a/server/adapters/openai_adapter.py +++ b/server/adapters/openai_adapter.py @@ -10,7 +10,7 @@ from typing import Dict, List, Optional from fastapi.responses import JSONResponse, StreamingResponse from .base import BaseAdapter, ChatCompletionRequest, ModelInfo -from .plugins import get_web_search_mode, build_openai_search_tool, execute_tavily_search +from .plugins import get_web_search_mode, build_openai_search_tool, execute_tavily_search, get_current_time_info from core import get_logger logger = get_logger() @@ -156,6 +156,21 @@ class OpenAIAdapter(BaseAdapter): # 构建消息 messages = self._build_messages(request) + + # 统一添加联网搜索插件参数 + web_search_mode = get_web_search_mode(request) + if web_search_mode: + # 注入当前时间信息到 System Prompt 中,以便模型拥有时间感知能力 + time_info = get_current_time_info() + has_system = False + for msg in messages: + if msg.get("role") == "system": + msg["content"] = f"当前系统时间:{time_info}\n" + str(msg.get("content", "")) + has_system = True + break + if not has_system: + messages.insert(0, {"role": "system", "content": f"当前系统时间:{time_info}"}) + logger.info( f" - messages: {json.dumps(messages, ensure_ascii=False, indent=2)}" ) @@ -169,8 +184,6 @@ class OpenAIAdapter(BaseAdapter): "stream": request.stream, } - # 统一添加联网搜索插件参数 - web_search_mode = get_web_search_mode(request) if web_search_mode: search_tool = build_openai_search_tool(web_search_mode) kwargs["tools"] = [search_tool] diff --git a/server/adapters/plugins.py b/server/adapters/plugins.py index 02efbc1..4a5fab1 100644 --- a/server/adapters/plugins.py +++ b/server/adapters/plugins.py @@ -5,6 +5,12 @@ from typing import Dict from datetime import datetime from .base import ChatCompletionRequest +def get_current_time_info() -> str: + """获取当前时间信息""" + now = datetime.now() + weekdays = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"] + return f"{now.strftime('%Y年%m月%d日 %H:%M:%S')} {weekdays[now.weekday()]}" + def get_web_search_mode(request: ChatCompletionRequest) -> str: """获取联网搜索模式""" if getattr(request, 'deep_search', False): @@ -84,7 +90,7 @@ def build_openai_search_tool(mode: str) -> Dict: def build_glm_search_tool(mode: str) -> Dict: """构建 GLM 联网搜索工具""" - today = datetime.now().strftime("%Y年%m月%d日") + today = get_current_time_info() if mode == "deep": # 深度搜索:返回搜索结果详情 diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo deleted file mode 100644 index b217ae1..0000000 --- a/tsconfig.tsbuildinfo +++ /dev/null @@ -1 +0,0 @@ -{"root":["./src/main.ts","./src/components/icons/index.ts","./src/composables/useKeyboard.ts","./src/services/api.ts","./src/services/authService.ts","./src/services/conversationApi.ts","./src/services/request.ts","./src/stores/auth.ts","./src/stores/chat.ts","./src/stores/settings.ts","./src/types/chat.ts","./src/utils/helpers.ts","./src/utils/migrateData.ts","./src/App.vue","./src/components/chat/ChatHeader.vue","./src/components/chat/ChatMain.vue","./src/components/chat/MessageList.vue","./src/components/chat/WelcomeScreen.vue","./src/components/input/AttachmentPreview.vue","./src/components/input/ChatInput.vue","./src/components/message/CodeBlock.vue","./src/components/message/MessageActions.vue","./src/components/message/MessageBubble.vue","./src/components/message/components/EChartsContainerNode.vue","./src/components/message/components/Loading.vue","./src/components/message/components/ThinkingNode.vue","./src/components/modals/ConversationSettingsModal.vue","./src/components/modals/SearchModal.vue","./src/components/modals/SettingsModal.vue","./src/components/modals/ShortcutsModal.vue","./src/components/sidebar/ChatSidebar.vue","./src/components/sidebar/ConversationItem.vue","./src/components/ui/FormSelect.vue","./src/components/ui/FormSlider.vue","./src/components/ui/FormSwitch.vue"],"errors":true,"version":"5.9.3"} \ No newline at end of file