优化意图识别示例,新增命令行参数解析功能,支持输入输出文件路径和调试模式,增强代码可读性和灵活性。同时更新Dify工具,调整检索信息获取逻辑,确保重排得分信息的正确传递。
This commit is contained in:
@@ -304,8 +304,8 @@ class IntentRecognizer:
|
||||
|
||||
rewrite_start_time = time.time()
|
||||
# 准备问题改写提示
|
||||
# terms_dict = [term.model_dump(exclude={"description"}) for term in keywords.terms]
|
||||
terms_dict = [term.model_dump() for term in keywords.terms]
|
||||
terms_dict = [term.model_dump(exclude={"description"}) for term in keywords.terms]
|
||||
# terms_dict = [term.model_dump() for term in keywords.terms]
|
||||
keywords_str = json.dumps(terms_dict, ensure_ascii=False)
|
||||
query_rewrite_parser = PydanticOutputParser(pydantic_object=QueryRewrite)
|
||||
# formatted_prompt = query_rewrite_prompt.format(query=query,
|
||||
@@ -401,27 +401,27 @@ class IntentRecognizer:
|
||||
)
|
||||
|
||||
# 步骤3: 进行意图识别和槽位填充
|
||||
result = self._process_intent_and_slot(rewrite.rewrite, conversation_context, chat_history, previous_slots)
|
||||
result.update({"keywords": keywords_terms.model_dump(),
|
||||
"rewrite": rewrite.model_dump(),
|
||||
"query_keys": query_keys})
|
||||
return result
|
||||
# # 步骤3: 进行意图分类
|
||||
# classification = self._classify_intent(query)
|
||||
# result = self._process_intent_and_slot(rewrite.rewrite, conversation_context, chat_history, previous_slots)
|
||||
# result.update({"keywords": keywords_terms.model_dump(),
|
||||
# "rewrite": rewrite.model_dump(),
|
||||
# "query_keys": query_keys})
|
||||
# return result
|
||||
# 步骤3: 进行意图分类
|
||||
classification = self._classify_intent(rewrite.rewrite, conversation_context, chat_history, previous_slots)
|
||||
|
||||
# # 步骤4: 进行槽位填充
|
||||
# # 如果是有效分类,进行槽位填充
|
||||
# slot_filling_result = {}
|
||||
# if classification.vertical_classification not in ["其他", "闲聊"] and classification.sub_classification not in ["其他", "闲聊"]:
|
||||
# slot_filling_result = self._fill_slots(rewrite.rewrite, classification)
|
||||
# 步骤4: 进行槽位填充
|
||||
# 如果是有效分类,进行槽位填充
|
||||
slot_filling_result = {}
|
||||
if classification.vertical_classification not in ["其他", "闲聊"] and classification.sub_classification not in ["其他", "闲聊"]:
|
||||
slot_filling_result = self._fill_slots(rewrite.rewrite, classification, conversation_context, chat_history, previous_slots)
|
||||
|
||||
# return {
|
||||
# "classification": classification.model_dump(),
|
||||
# "keywords": keywords_terms.model_dump(),
|
||||
# "rewrite": rewrite.model_dump(),
|
||||
# "query_keys": query_keys,
|
||||
# "slot_filling": slot_filling_result
|
||||
# }
|
||||
return {
|
||||
"classification": classification.model_dump(),
|
||||
"keywords": keywords_terms.model_dump(),
|
||||
"rewrite": rewrite.model_dump(),
|
||||
"query_keys": query_keys,
|
||||
"slot_filling": slot_filling_result
|
||||
}
|
||||
|
||||
|
||||
def _fill_slots(self, query: str, classification: Classification, conversation_context: str = "",
|
||||
|
||||
Reference in New Issue
Block a user