TanJingyu 10 órája
szülő
commit
2d64d86e95

+ 0 - 1
knowledge_v2/.cache/9f510b2a8348/function_knowledge/selected_tool.txt

@@ -1 +0,0 @@
-wechat_search_article

+ 0 - 3
knowledge_v2/.cache/9f510b2a8348/function_knowledge/tool_params.json

@@ -1,3 +0,0 @@
-{
-  "keyword": "2025年11月7日 教资查分通知"
-}

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 2
knowledge_v2/.cache/9f510b2a8348/function_knowledge/tool_result.json


+ 26 - 0
knowledge_v2/.cache/9f510b2a8348/knowledge.txt

@@ -0,0 +1,26 @@
+教资查分的信息主要通过官方渠道发布和查询,以确保准确性和安全性。针对“2025年11月7日”这个时间点,正是下半年笔试成绩发布的典型时期。
+
+以下是关于教资查分信息来源的详细说明:
+
+### 一、成绩发布信息来源与查询渠道
+
+1.  **官方发布与通知**
+    *   **中小学教师资格考试网(中国教育考试网)**:这是最权威的官方网站,网址为`https://ntce.neea.edu.cn`。成绩发布通知会第一时间在此网站的“通知公告”栏目公布。
+    *   **中国教育考试网微信小程序/官方微信公众号**:教育部教育考试院会通过其官方微信小程序或相关官方微信公众号同步推送成绩查询通知。
+    *   **中国教师资格网**:`https://www.jszg.edu.cn` 虽然主要负责认定工作,有时也会转发成绩查询通知,但查询具体分数仍需跳转至“中国教育考试网”。
+
+2.  **成绩查询入口**
+    *   **中国教育考试网**:考生可通过访问`https://ntce.neea.edu.cn`官网首页的“成绩查询”入口,或直接访问成绩查询页面`https://cjcx.neea.edu.cn`进行查询。
+    *   **中国教育考试网微信小程序**:在微信APP中搜索并进入“中国教育考试网”小程序,即可查询成绩。
+
+### 二、成绩发布时间与“2025年11月7日”的关联
+
+教资笔试成绩通常在考试结束后的一个月左右公布。
+
+*   **下半年笔试成绩**:一般在每年的11月上旬发布。
+*   **“2025年11月7日”的具体情况**:根据官方发布惯例及已有信息,2025年下半年的笔试成绩已于**2025年11月7日上午10点**发布。因此,您提到的“2025年11月7日”正是下半年教资笔试成绩的官方公布时间。
+
+### 三、重要提示
+
+*   为保障个人信息安全并获取准确成绩,务必通过上述官方渠道进行成绩查询,避免使用非官方的第三方网站。
+*   建议考生收藏“中国教育考试网”的中小学教师资格考试页面(`https://ntce.neea.edu.cn`),以便及时获取最权威和准确的信息。

+ 6 - 0
knowledge_v2/.cache/9f510b2a8348/llm_search/generated_queries.json

@@ -0,0 +1,6 @@
+[
+  "教资查分官方信息发布渠道",
+  "教资考试成绩查询日期通知方式",
+  "教育部考试中心教资查分公告",
+  "教资查分信息一般在哪里公布"
+]

+ 48 - 0
knowledge_v2/.cache/9f510b2a8348/llm_search/merged_knowledge.txt

@@ -0,0 +1,48 @@
+## 中小学教师资格考试(教资)成绩查询指南
+
+中小学教师资格考试(教资)的成绩查询主要通过官方渠道进行,以确保信息的准确性和安全性。以下是关于教资成绩查询的全面指南:
+
+### 一、官方查询渠道
+
+为保障个人信息安全并获取准确成绩,考生应优先选择以下官方渠道进行查询:
+
+1.  **中国教育考试网(中小学教师资格考试网站)**
+    这是最权威、最直接的官方渠道,也是查询教资笔试和面试成绩的首要官方平台。
+    *   **官方网址**:`https://ntce.neea.edu.cn`
+    *   **成绩查询入口**:通常在官网首页设有明显的“成绩查询”入口,也可直接访问成绩查询页面:`https://cjcx.neea.edu.cn`。
+    *   **查询步骤**:访问官网后,找到“考生服务”或“成绩查询”入口,输入您的姓名、证件号码等信息即可查询。
+
+2.  **中国教育考试网微信小程序**
+    为方便考生,教育部教育考试院也开通了官方微信小程序。
+    *   **使用方法**:在微信APP中搜索“**中国教育考试网**”小程序,进入后即可查询成绩。
+
+**特别说明:**
+*   **中国教师资格网**(`https://www.jszg.edu.cn`)主要负责教师资格的认定工作。虽然有时会转发成绩查询通知,但查询具体分数仍需跳转到“中国教育考试网”。
+
+### 二、成绩发布时间
+
+教资考试分为笔试和面试,每年举行两次(上半年和下半年)。成绩发布时间通常在考试结束后的1-2个月内。
+
+*   **笔试成绩**:一般在考后约一个月左右公布。
+    *   **上半年**:通常在4月中下旬。
+    *   **下半年**:通常在11月上旬。
+    *   **例如**:2025年下半年的笔试成绩已于2025年11月7日上午10点发布。
+
+*   **面试成绩**:一般在考后约一个月左右公布。
+    *   **上半年**:通常在6月中旬。
+    *   **下半年**:通常在次年1月上旬。
+    *   **例如**:2025年上半年的面试成绩已于2025年6月11日上午10点发布。
+
+### 三、官方通知方式
+
+教育部教育考试院会通过以下官方渠道发布成绩查询通知:
+
+1.  **官方网站**:最权威的成绩发布通知会发布在**中小学教师资格考试网**(`https://ntce.neea.edu.cn`)的“通知公告”栏目。
+2.  **官方微信**:“中国教育考试网”微信小程序或相关官方微信公众号也会同步推送通知。
+
+### 四、重要提示
+
+*   **合格标准**:笔试各科目的报告满分均为120分,**70分及以上为合格**。
+*   **成绩复核**:如果考生对本人的笔试成绩有异议,可以在规定时间内申请成绩复核。具体复核流程和时间请关注所在省份教育考试院的官方通知。
+*   **查询安全**:请务必通过上述官方渠道进行成绩查询,避免使用非官方的第三方网站,以防个人信息泄露或获取错误信息。
+*   **建议收藏**:建议考生收藏“中国教育考试网”的中小学教师资格考试页面(`https://ntce.neea.edu.cn`),以便及时获取最权威和准确的信息。

+ 14 - 0
knowledge_v2/.cache/9f510b2a8348/llm_search/search_results/search_result_001.txt

@@ -0,0 +1,14 @@
+查询中小学教师资格考试(教资)成绩的官方信息发布渠道主要有以下两个:
+
+### 1. 中国教育考试网 (官方网站)
+这是最权威、最直接的官方渠道。
+*   **官网地址**: `https://ntce.neea.edu.cn`
+*   **成绩查询入口**: 通常在官网首页会有明显的“成绩查询”入口,也可以直接访问成绩查询页面:`https://cjcx.neea.edu.cn`
+
+### 2. 中国教育考试网微信小程序
+为方便考生,教育部教育考试院也开通了官方微信小程序。
+*   **使用方法**: 在微信APP中搜索“**中国教育考试网**”小程序,进入后即可查询成绩。
+
+**重要提示**:
+*   成绩发布时,官方会通过 **中国教育考试网** 发布正式的《关于[年份][上下半年]中小学教师资格考试(笔试/面试)成绩发布的通知》。所有考生应以此通知为准。
+*   建议优先使用上述两个官方渠道进行查询,以确保信息的准确性和安全性,避免通过非官方的第三方网站查询,以防个人信息泄露或获取错误信息。

+ 24 - 0
knowledge_v2/.cache/9f510b2a8348/llm_search/search_results/search_result_002.txt

@@ -0,0 +1,24 @@
+中小学教师资格考试(教资考试)的成绩查询日期和通知方式如下:
+
+### 一、成绩查询日期
+教资考试分为笔试和面试,每年举行两次(上半年和下半年),其成绩发布时间是固定的,通常在考试结束后的1-2个月内。
+
+*   **笔试成绩**:一般在考后约一个月左右公布。
+    *   **上半年**:通常在4月中下旬。
+    *   **下半年**:通常在11月上旬。
+    *   **例如**:2025年下半年的笔试成绩已于**2025年11月7日**上午10点发布。
+
+*   **面试成绩**:一般在考后约一个月左右公布。
+    *   **上半年**:通常在6月中旬。
+    *   **下半年**:通常在次年1月上旬。
+    *   **例如**:2025年上半年的面试成绩已于**2025年6月11日**上午10点发布。
+
+### 二、官方通知方式
+教育部教育考试院会通过以下官方渠道发布成绩查询通知:
+1.  **官方网站**:最权威的通知会发布在 **[中小学教师资格考试网](https://ntce.neea.edu.cn/)** 的“通知公告”栏目。
+2.  **官方微信**:“中国教育考试网”微信小程序或相关官方微信公众号也会同步推送通知。
+
+### 三、成绩查询方式
+成绩开放后,考生可以通过以下方式查询:
+1.  **网站查询**:登录 **[中小学教师资格考试网](https://ntce.neea.edu.cn/ntce/)** 进行查询。
+2.  **微信小程序**:在微信中搜索并使用“**中国教育考试网**”小程序进行查询。

+ 14 - 0
knowledge_v2/.cache/9f510b2a8348/llm_search/search_results/search_result_003.txt

@@ -0,0 +1,14 @@
+根据教育部教育考试院(原教育部考试中心)的最新公告,关于2025年下半年中小学教师资格考试(笔试)的成绩查询信息如下:
+
+### 成绩发布时间
+**2025年11月7日上午10时**
+
+### 成绩查询方式
+1.  **官方网站**:考生可登录“中小学教师资格考试”网站([http://ntce.neea.edu.cn](http://ntce.neea.edu.cn))进行查询。
+2.  **中国教育考试网**:也可通过中国教育考试网([https://cjcx.neea.edu.cn](https://cjcx.neea.edu.cn))进行成绩查询。
+
+### 重要说明
+*   笔试各科目的报告满分均为120分,**70分及以上为合格**。
+*   如果考生对本人的笔试成绩有异议,可以在规定时间内申请成绩复核。具体复核流程和时间请关注所在省份教育考试院的官方通知。
+
+您可以直接访问上述官方网站查询您的成绩。

+ 17 - 0
knowledge_v2/.cache/9f510b2a8348/llm_search/search_results/search_result_004.txt

@@ -0,0 +1,17 @@
+教师资格证考试(教资)的成绩查询信息主要在以下两个官方网站公布:
+
+1.  **中国教育考试网 - 中小学教师资格考试 (NTCE) 项目**
+    *   **网址**:`https://ntce.neea.edu.cn`
+    *   **说明**:这是教育部考试中心主办的官方网站,是查询教资笔试和面试成绩的**首要官方渠道**。成绩发布后,该网站会开通专门的成绩查询入口,并发布相关的通知公告。
+
+2.  **中国教师资格网**
+    *   **网址**:`https://www.jszg.edu.cn`
+    *   **说明**:这个网站主要负责教师资格的**认定**工作。虽然有时也会转发成绩查询的通知,但**查询具体分数仍需跳转到“中国教育考试网”**。在拿到考试合格证明后,后续的认定申请流程都在此网站进行。
+
+**总结一下查询步骤:**
+
+*   成绩公布时,请直接访问 **中国教育考试网** (`https://ntce.neea.edu.cn`)。
+*   在网站首页找到“**考生服务**”或“**成绩查询**”的入口。
+*   输入您的姓名、证件号码等信息即可查询。
+
+建议您收藏“中国教育考试网”的中小学教师资格考试页面,以获取最权威和及时的信息。

+ 26 - 0
knowledge_v2/.cache/9f510b2a8348/multi_search/final_knowledge.txt

@@ -0,0 +1,26 @@
+教资查分的信息主要通过官方渠道发布和查询,以确保准确性和安全性。针对“2025年11月7日”这个时间点,正是下半年笔试成绩发布的典型时期。
+
+以下是关于教资查分信息来源的详细说明:
+
+### 一、成绩发布信息来源与查询渠道
+
+1.  **官方发布与通知**
+    *   **中小学教师资格考试网(中国教育考试网)**:这是最权威的官方网站,网址为`https://ntce.neea.edu.cn`。成绩发布通知会第一时间在此网站的“通知公告”栏目公布。
+    *   **中国教育考试网微信小程序/官方微信公众号**:教育部教育考试院会通过其官方微信小程序或相关官方微信公众号同步推送成绩查询通知。
+    *   **中国教师资格网**:`https://www.jszg.edu.cn` 虽然主要负责认定工作,有时也会转发成绩查询通知,但查询具体分数仍需跳转至“中国教育考试网”。
+
+2.  **成绩查询入口**
+    *   **中国教育考试网**:考生可通过访问`https://ntce.neea.edu.cn`官网首页的“成绩查询”入口,或直接访问成绩查询页面`https://cjcx.neea.edu.cn`进行查询。
+    *   **中国教育考试网微信小程序**:在微信APP中搜索并进入“中国教育考试网”小程序,即可查询成绩。
+
+### 二、成绩发布时间与“2025年11月7日”的关联
+
+教资笔试成绩通常在考试结束后的一个月左右公布。
+
+*   **下半年笔试成绩**:一般在每年的11月上旬发布。
+*   **“2025年11月7日”的具体情况**:根据官方发布惯例及已有信息,2025年下半年的笔试成绩已于**2025年11月7日上午10点**发布。因此,您提到的“2025年11月7日”正是下半年教资笔试成绩的官方公布时间。
+
+### 三、重要提示
+
+*   为保障个人信息安全并获取准确成绩,务必通过上述官方渠道进行成绩查询,避免使用非官方的第三方网站。
+*   建议考生收藏“中国教育考试网”的中小学教师资格考试页面(`https://ntce.neea.edu.cn`),以便及时获取最权威和准确的信息。

+ 26 - 0
knowledge_v2/.cache/9f510b2a8348/multi_search/merged_knowledge.txt

@@ -0,0 +1,26 @@
+教资查分的信息主要通过官方渠道发布和查询,以确保准确性和安全性。针对“2025年11月7日”这个时间点,正是下半年笔试成绩发布的典型时期。
+
+以下是关于教资查分信息来源的详细说明:
+
+### 一、成绩发布信息来源与查询渠道
+
+1.  **官方发布与通知**
+    *   **中小学教师资格考试网(中国教育考试网)**:这是最权威的官方网站,网址为`https://ntce.neea.edu.cn`。成绩发布通知会第一时间在此网站的“通知公告”栏目公布。
+    *   **中国教育考试网微信小程序/官方微信公众号**:教育部教育考试院会通过其官方微信小程序或相关官方微信公众号同步推送成绩查询通知。
+    *   **中国教师资格网**:`https://www.jszg.edu.cn` 虽然主要负责认定工作,有时也会转发成绩查询通知,但查询具体分数仍需跳转至“中国教育考试网”。
+
+2.  **成绩查询入口**
+    *   **中国教育考试网**:考生可通过访问`https://ntce.neea.edu.cn`官网首页的“成绩查询”入口,或直接访问成绩查询页面`https://cjcx.neea.edu.cn`进行查询。
+    *   **中国教育考试网微信小程序**:在微信APP中搜索并进入“中国教育考试网”小程序,即可查询成绩。
+
+### 二、成绩发布时间与“2025年11月7日”的关联
+
+教资笔试成绩通常在考试结束后的一个月左右公布。
+
+*   **下半年笔试成绩**:一般在每年的11月上旬发布。
+*   **“2025年11月7日”的具体情况**:根据官方发布惯例及已有信息,2025年下半年的笔试成绩已于**2025年11月7日上午10点**发布。因此,您提到的“2025年11月7日”正是下半年教资笔试成绩的官方公布时间。
+
+### 三、重要提示
+
+*   为保障个人信息安全并获取准确成绩,务必通过上述官方渠道进行成绩查询,避免使用非官方的第三方网站。
+*   建议考生收藏“中国教育考试网”的中小学教师资格考试页面(`https://ntce.neea.edu.cn`),以便及时获取最权威和准确的信息。

+ 0 - 109
knowledge_v2/CLEAR_CACHE_GUIDE.md

@@ -1,109 +0,0 @@
-# 快速清除缓存指南
-
-## 问题说明
-
-如果您在代码更新前运行过程序,旧的缓存文件不包含`detail`信息(prompt和response)。
-
-更新代码后,系统会从旧缓存读取,导致最终的`execution_record.json`中某些步骤缺少`detail`字段。
-
-## 解决方案
-
-### 方案1: 使用清除工具(推荐)
-
-运行清除缓存工具:
-```bash
-python clear_cache.py
-```
-
-选项:
-1. **列出所有缓存** - 查看缓存了哪些问题
-2. **清除所有缓存** - 删除所有缓存,重新运行
-3. **清除特定问题** - 只删除某个问题的缓存
-
-### 方案2: 手动删除缓存目录
-
-直接删除缓存目录:
-```bash
-# PowerShell
-Remove-Item -Recurse -Force .cache
-```
-
-或者在文件管理器中删除 `.cache` 文件夹。
-
-### 方案3: 代码中清除
-
-```python
-from knowledge_v2.cache_manager import CacheManager
-
-cache = CacheManager()
-
-# 清除所有缓存
-cache.clear()
-
-# 或清除特定问题的缓存
-cache.clear("小老虎 穿搭")
-```
-
-## 重新运行
-
-清除缓存后,重新运行您的代码:
-```python
-from knowledge_v2.function_knowledge import get_knowledge
-
-result = get_knowledge(
-    question="小老虎 穿搭",
-    post_info="无",
-    persona_info="游戏博主"
-)
-```
-
-此时所有步骤都会重新执行,`execution_record.json`中的每个步骤都会包含完整的`detail`信息。
-
-## 验证结果
-
-检查生成的 `execution_record.json`:
-```python
-import json
-
-# 读取执行记录
-with open('.cache/{hash}/execution_record.json', 'r', encoding='utf-8') as f:
-    record = json.load(f)
-
-# 检查每个步骤是否有detail
-for step in record['execution']['steps']:
-    print(f"步骤 {step['step']}: {step['name']}")
-    if 'detail' in step:
-        detail = step['detail']
-        print(f"  - cached: {detail.get('cached', False)}")
-        print(f"  - 有prompt: {'prompt' in detail and detail['prompt'] is not None}")
-        print(f"  - 有response: {'response' in detail and detail['response'] is not None}")
-    else:
-        print("  - ⚠️ 缺少detail字段")
-```
-
-## 预期输出
-
-清除缓存后重新运行,应该看到:
-```
-步骤 1: generate_query
-  - cached: False
-  - 有prompt: True
-  - 有response: True
-步骤 2: select_tool
-  - cached: False
-  - 有prompt: True
-  - 有response: True
-步骤 3: extract_tool_params
-  - cached: False
-  - 有prompt: True
-  - 有response: True
-步骤 4: call_tool
-  (此步骤不涉及LLM,没有detail字段)
-```
-
-## 未来避免此问题
-
-以后如果修改了缓存结构,建议:
-1. 清除旧缓存
-2. 或者升级缓存版本号
-3. 让系统自动识别并忽略旧格式的缓存

+ 26 - 23
knowledge_v2/function_knowledge.py

@@ -252,29 +252,33 @@ class FunctionKnowledge:
             detail_info["fallback"] = "exception"
             return default_params, detail_info
 
-
-    def generate_and_save_new_tool(self, knowledge: str):
-        """异步生成并保存新工具"""
+    def save_knowledge_to_file(self, knowledge: str, combined_question: str):
+        """保存获取到的知识到文件"""
         try:
-            logger.info("开始生成新工具...")
-            prompt_template = self._load_prompt("function_knowledge_generate_new_tool_prompt.md")
-            prompt = prompt_template.format(knowledge=knowledge)
-            
-            tool_code = generate_text(prompt=prompt)
-            
-            # 简单解析工具名(假设工具名在 def xxx( 中)
-            # 这里做一个简单的提取,实际可能需要更复杂的解析
-            import re
-            match = re.search(r"def\s+([a-zA-Z_][a-zA-Z0-9_]*)", tool_code)
-            if match:
-                tool_name = match.group(1)
-                save_path = save_tool_info(tool_name, tool_code)
-                logger.info(f"新工具已保存: {save_path}")
+            logger.info("[保存知识] 开始保存知识到文件...")
+
+            # 获取问题hash
+            import hashlib
+            question_hash = hashlib.md5(combined_question.encode('utf-8')).hexdigest()[:12]
+
+            # 获取缓存目录(和execution_record.json同级)
+            if self.use_cache and self.cache:
+                cache_dir = os.path.join(self.cache.base_cache_dir, question_hash)
             else:
-                logger.warning("无法从生成的代码中提取工具名")
-                
+                cache_dir = os.path.join(os.path.dirname(__file__), '.cache', question_hash)
+
+            os.makedirs(cache_dir, exist_ok=True)
+
+            # 保存到knowledge.txt
+            knowledge_file = os.path.join(cache_dir, 'knowledge.txt')
+            with open(knowledge_file, 'w', encoding='utf-8') as f:
+                f.write(knowledge)
+
+            logger.info(f"✓ 知识已保存到: {knowledge_file}")
+            logger.info(f"  知识长度: {len(knowledge)} 字符")
+
         except Exception as e:
-            logger.error(f"生成新工具失败: {e}")
+            logger.error(f"✗ 保存知识失败: {e}")
 
     def get_knowledge(self, question: str, post_info: str, persona_info: str) -> dict:
         """
@@ -439,7 +443,7 @@ class FunctionKnowledge:
                 logger.info("[步骤4] 未找到合适工具,调用 MultiSearch...")
                 
                 step4_start = time.time()
-                knowledge = get_multi_search_knowledge(query)
+                knowledge = get_multi_search_knowledge(query, cache_key=combined_question)
                 
                 execution_record["execution"]["steps"].append({
                     "step": 4,
@@ -461,8 +465,7 @@ class FunctionKnowledge:
                 
                 # 异步生成新工具
                 logger.info("[后台任务] 启动新工具生成线程...")
-                threading.Thread(target=self.generate_and_save_new_tool, args=(knowledge,)).start()
-            
+                threading.Thread(target=self.save_knowledge_to_file, args=(knowledge, combined_question)).start()
             # 计算总执行时间
             execution_record["metadata"]["execution_time"] = time.time() - start_time
             

+ 11 - 6
knowledge_v2/llm_search_knowledge.py

@@ -296,12 +296,13 @@ class LLMSearchKnowledge:
             logger.error(f"✗ 合并知识文本失败: {e}")
             raise
     
-    def get_knowledge(self, question: str) -> str:
+    def get_knowledge(self, question: str, cache_key: str = None) -> str:
         """
         主方法:根据问题获取知识文本
         
         Args:
             question: 问题字符串
+            cache_key: 可选的缓存键,用于与主流程共享同一缓存目录
             
         Returns:
             str: 最终的知识文本
@@ -309,19 +310,22 @@ class LLMSearchKnowledge:
         Raises:
             Exception: 处理过程中出现错误时抛出异常
         """
+        # 使用cache_key或question作为缓存键
+        actual_cache_key = cache_key if cache_key is not None else question
+        
         try:
             logger.info(f"{'='*60}")
             logger.info(f"LLM Search - 开始处理问题: {question[:50]}...")
             logger.info(f"{'='*60}")
             
             # 步骤1: 生成多个query
-            queries = self.generate_queries(question)
+            queries = self.generate_queries(actual_cache_key)
             
             # 步骤2: 对每个query搜索知识
-            knowledge_texts = self.search_knowledge_batch(question, queries)
+            knowledge_texts = self.search_knowledge_batch(actual_cache_key, queries)
             
             # 步骤3: 合并多个知识文本
-            merged_knowledge = self.merge_knowledge(question, knowledge_texts)
+            merged_knowledge = self.merge_knowledge(actual_cache_key, knowledge_texts)
             
             logger.info(f"{'='*60}")
             logger.info(f"✓ LLM Search 完成 (最终长度: {len(merged_knowledge)})")
@@ -333,18 +337,19 @@ class LLMSearchKnowledge:
             raise
 
 
-def get_knowledge(question: str) -> str:
+def get_knowledge(question: str, cache_key: str = None) -> str:
     """
     便捷函数:根据问题获取知识文本
     
     Args:
         question: 问题字符串
+        cache_key: 可选的缓存键
         
     Returns:
         str: 最终的知识文本
     """
     agent = LLMSearchKnowledge()
-    return agent.get_knowledge(question)
+    return agent.get_knowledge(question, cache_key=cache_key)
 
 
 if __name__ == "__main__":

+ 15 - 7
knowledge_v2/multi_search_knowledge.py

@@ -129,23 +129,27 @@ class MultiSearchKnowledge:
             logger.error(f"✗ 合并知识失败: {e}")
             raise
 
-    def get_knowledge(self, question: str) -> str:
+    def get_knowledge(self, question: str, cache_key: str = None) -> str:
         """
         获取知识的主方法
         
         Args:
             question: 问题字符串
+            cache_key: 可选的缓存键,用于与主流程共享同一缓存目录
             
         Returns:
             str: 最终的知识文本
         """
+        # 使用cache_key或question作为缓存键
+        actual_cache_key = cache_key if cache_key is not None else question
+        
         logger.info(f"{'='*60}")
         logger.info(f"Multi-Search - 开始处理问题: {question[:50]}...")
         logger.info(f"{'='*60}")
         
         # 检查整体缓存
         if self.use_cache:
-            cached_final = self.cache.get(question, 'multi_search', 'final_knowledge.txt')
+            cached_final = self.cache.get(actual_cache_key, 'multi_search', 'final_knowledge.txt')
             if cached_final:
                 logger.info(f"✓ 使用缓存的最终知识 (长度: {len(cached_final)})")
                 logger.info(f"{'='*60}\n")
@@ -156,7 +160,7 @@ class MultiSearchKnowledge:
         # 1. 获取 LLM Search 知识
         try:
             logger.info("[渠道1] 调用 LLM Search...")
-            llm_knowledge = get_llm_knowledge(question)
+            llm_knowledge = get_llm_knowledge(question, cache_key=actual_cache_key)
             knowledge_map["LLM Search"] = llm_knowledge
             logger.info(f"✓ LLM Search 完成 (长度: {len(llm_knowledge)})")
         except Exception as e:
@@ -173,11 +177,11 @@ class MultiSearchKnowledge:
         #     knowledge_map["XHS Search"] = ""
         
         # 3. 合并知识
-        final_knowledge = self.merge_knowledge(question, knowledge_map)
+        final_knowledge = self.merge_knowledge(actual_cache_key, knowledge_map)
         
         # 保存最终缓存
         if self.use_cache and final_knowledge:
-            self.cache.set(question, 'multi_search', 'final_knowledge.txt', final_knowledge)
+            self.cache.set(actual_cache_key, 'multi_search', 'final_knowledge.txt', final_knowledge)
         
         logger.info(f"{'='*60}")
         logger.info(f"✓ Multi-Search 完成 (最终长度: {len(final_knowledge)})")
@@ -185,12 +189,16 @@ class MultiSearchKnowledge:
         
         return final_knowledge
 
-def get_knowledge(question: str) -> str:
+def get_knowledge(question: str, cache_key: str = None) -> str:
     """
     便捷调用函数
+    
+    Args:
+        question: 问题
+        cache_key: 可选的缓存键
     """
     agent = MultiSearchKnowledge()
-    return agent.get_knowledge(question)
+    return agent.get_knowledge(question, cache_key=cache_key)
 
 if __name__ == "__main__":
     # 测试代码

+ 0 - 21
knowledge_v2/tool_infos/wechat_search_article.txt

@@ -1,21 +0,0 @@
-工具名称: wechat_search_article
-
-功能描述: 搜索微信公众号文章
-
-参数说明:
-- keyword (必需): 搜索关键词,字符串类型
-  示例: "英雄联盟"、"黑神话悟空"
-
-返回值:
-- 返回包含文章列表的JSON数据,每篇文章包含标题、链接、摘要等信息
-
-使用示例:
-curl --location 'http://47.84.182.56:8001/tools/call/wechat_search_article' \
---header 'Content-Type: application/json' \
---data '{
-    "keyword": "英雄联盟"
-}'
-
-注意事项:
-- keyword参数不能为空
-- 如果搜索无结果,返回空列表

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott