From 1d55b7c00b6d089546be2db3f60022489ee588c8 Mon Sep 17 00:00:00 2001 From: zihanjian Date: Tue, 29 Jul 2025 11:13:10 +0800 Subject: [PATCH] =?UTF-8?q?docs(ai=5Frouter):=20=E6=9B=B4=E6=96=B0AI?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E5=8A=A9=E6=89=8B=E7=9A=84=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E8=AF=8D=E5=92=8C=E8=BF=94=E5=9B=9E=E6=A0=BC=E5=BC=8F=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=EF=BC=8C=E4=BB=A5=E6=8F=90=E9=AB=98=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=90=86=E8=A7=A3=E5=92=8C=E4=BD=BF=E7=94=A8=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- commands/ai_router.py | 53 ++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/commands/ai_router.py b/commands/ai_router.py index b8c37bf..b443287 100644 --- a/commands/ai_router.py +++ b/commands/ai_router.py @@ -55,8 +55,13 @@ class AIRouter: """构建给AI的系统提示词,包含所有可用功能的信息""" prompt = """你是一个智能路由助手。根据用户的输入,判断用户的意图并返回JSON格式的响应。 -可用的功能列表: -""" + ### 注意: + 1. 你需要优先判断自己是否可以直接回答用户的问题,如果你可以直接回答,则返回 "chat",无需返回 "function" + 2. 如果用户输入中包含多个功能,请优先匹配最符合用户意图的功能。如果无法判断,则返回 "chat"。 + 3. 优先考虑使用 chat 处理,需要外部资料或其他功能逻辑时,再返回 "function"。 + + ### 可用的功能列表: + """ for name, func in self.functions.items(): prompt += f"\n- {name}: {func.description}" if func.params_description: @@ -66,31 +71,33 @@ class AIRouter: prompt += "\n" prompt += """ -分析用户输入,严格按照以下格式返回JSON: + 请你分析用户输入,严格按照以下格式返回JSON: -如果用户需要使用上述功能之一,返回: -{ - "action_type": "function", - "function_name": "上述功能列表中的功能名", - "params": "从用户输入中提取的参数" -} + ### 返回格式: -如果用户只是聊天或者不匹配任何功能,返回: -{ - "action_type": "chat" -} + 1. 如果用户只是聊天或者不匹配任何功能,返回: + { + "action_type": "chat" + } + + 2.如果用户需要使用上述功能之一,返回: + { + "action_type": "function", + "function_name": "上述功能列表中的功能名", + "params": "从用户输入中提取的参数" + } -示例: -- 用户输入"北京天气怎么样" -> {"action_type": "function", "function_name": "weather_query", "params": "北京"} -- 用户输入"看看新闻" -> {"action_type": "function", "function_name": "news_query", "params": ""} -- 用户输入"你好" -> {"action_type": "chat"} -- 用户输入"查一下Python教程" -> {"action_type": "function", "function_name": "perplexity_search", "params": "Python教程"} + #### 示例: + - 用户输入"北京天气怎么样" -> {"action_type": "function", "function_name": "weather_query", "params": "北京"} + - 用户输入"看看新闻" -> {"action_type": "function", "function_name": "news_query", "params": ""} + - 用户输入"你好" -> {"action_type": "chat"} + - 用户输入"查一下Python教程" -> {"action_type": "function", "function_name": "perplexity_search", "params": "Python教程"} -重要: -1. action_type 只能是 "function" 或 "chat" -2. 只返回JSON,无需其他解释 -3. function_name 必须完全匹配上述功能列表中的名称 -""" + #### 格式注意事项: + 1. action_type 只能是 "function" 或 "chat" + 2. 只返回JSON,无需其他解释 + 3. function_name 必须完全匹配上述功能列表中的名称 + """ return prompt def route(self, ctx: MessageContext) -> Tuple[bool, Optional[Dict[str, Any]]]: