新增异步意图识别器和相关功能,优化意图识别和槽位填充逻辑,支持异步处理和多线程检索,改进API调用的错误处理和日志记录,增强文档检索和关键词提取功能。
This commit is contained in:
@@ -33,24 +33,10 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
# 创建线程锁,用于保护共享资源
|
||||
recognizer_lock = RLock()
|
||||
|
||||
# 使用单例模式创建意图识别器
|
||||
class RecognizerSingleton:
|
||||
_instance = None
|
||||
_lock = RLock()
|
||||
|
||||
@classmethod
|
||||
def get_instance(cls):
|
||||
if cls._instance is None:
|
||||
with cls._lock:
|
||||
if cls._instance is None:
|
||||
api_key = os.getenv("OPENAI_API_KEY")
|
||||
base_url = os.getenv("OPENAI_API_BASE")
|
||||
model_name = os.getenv("LLM_MODEL_NAME", "gpt-3.5-turbo")
|
||||
cls._instance = IntentRecognizer(api_key=api_key, base_url=base_url, model_name=model_name)
|
||||
return cls._instance
|
||||
api_key = os.getenv("OPENAI_API_KEY")
|
||||
base_url = os.getenv("OPENAI_API_BASE")
|
||||
model_name = os.getenv("LLM_MODEL_NAME", "gpt-3.5-turbo")
|
||||
_instance = IntentRecognizer(api_key=api_key, base_url=base_url, model_name=model_name)
|
||||
|
||||
@app.route('/intent_recognize', methods=['POST'])
|
||||
def intent_recognize():
|
||||
@@ -65,9 +51,7 @@ def intent_recognize():
|
||||
|
||||
start_time = time.time()
|
||||
|
||||
# 获取单例实例并使用线程锁保护关键操作
|
||||
recognizer = RecognizerSingleton.get_instance()
|
||||
result = recognizer.process_query(query=query,
|
||||
result = _instance.process_query(query=query,
|
||||
conversation_context=conversation_context,
|
||||
chat_history=chat_history,
|
||||
previous_slots=previous_slots,
|
||||
@@ -89,8 +73,6 @@ def intent_recognize():
|
||||
for term in keywords["terms"]:
|
||||
term_info = {
|
||||
"名称": term["name"],
|
||||
# "同义词": ";".join(term["synonymous"]) if term["synonymous"] else [],
|
||||
# "描述": term["description"]
|
||||
}
|
||||
term_details.append(term_info)
|
||||
keywords_str = term_details
|
||||
|
||||
Reference in New Issue
Block a user