新增异步意图识别器和相关功能,优化意图识别和槽位填充逻辑,支持异步处理和多线程检索,改进API调用的错误处理和日志记录,增强文档检索和关键词提取功能。

This commit is contained in:
2025-07-03 15:40:36 +08:00
parent 68e3677c34
commit c52627abeb
6 changed files with 1146 additions and 40 deletions
+13 -2
View File
@@ -15,12 +15,13 @@ import concurrent.futures
from tqdm import tqdm
import time
import sys
import asyncio
import argparse
from typing import List, Dict, Any
from langchain.output_parsers import PydanticOutputParser
from pydantic import BaseModel, Field
sys.path.append(os.getcwd())
from rag2_0.intent_recognition import IntentRecognizer
from rag2_0.intent_recognition import IntentRecognizer, AsyncIntentRecognizer
from rag2_0.dify.DifyQueryRetrieval import DifyQueryRetrieval
from rag2_0.intent_recognition.DataModels import Classification
from rag2_0.tool.ModelTool import OpenAiLLM
@@ -79,6 +80,12 @@ class QueryRewriteProcessor:
self.model_name = model_name or os.getenv("LLM_MODEL_NAME", "gpt-3.5-turbo")
self.recognizer = IntentRecognizer(api_key=self.api_key, base_url=self.base_url, model_name=self.model_name)
# 使用asyncio.run()运行异步create方法
self.recognizer_async = asyncio.run(AsyncIntentRecognizer.create(
api_key=self.api_key,
base_url=self.base_url,
model_name=self.model_name
))
self.dify_query_retrieval = DifyQueryRetrieval(api_key=dify_api_key, base_url=dify_base_url)
def is_retrieved_doc_relevant(self, query: str, retrieved_doc: List[Dict[str, Any]]) -> Dict[str, Any]:
@@ -168,7 +175,11 @@ class QueryRewriteProcessor:
logging.error(f"读取Excel文件时出错: {e}", exc_info=True)
return []
def process_query(self, query: str, conversation_context: str = "", chat_history: List[Dict[str, str]] = None, previous_slots: Dict[str, str] = None, enable_retrieval: bool = False):
def process_query(self, query: str,
conversation_context: str = "",
chat_history: List[Dict[str, str]] = None,
previous_slots: Dict[str, str] = None,
enable_retrieval: bool = False):
"""
处理单个查询,支持重试机制,并包含槽位填充