将事件名称转义成中文及优化关键字检索
This commit is contained in:
@@ -32,6 +32,24 @@ v1_router = v = APIRouter()
|
||||
gEvent_handler = None
|
||||
|
||||
|
||||
CH_Event_map={
|
||||
'CHUNKING':'文本切片',
|
||||
'NODE_PARSING':'节点解析',
|
||||
'EMBEDDING':'生成向量',
|
||||
'LLM':'知识问答',
|
||||
'QUERY':'查询',
|
||||
'RETRIEVE':'检索',
|
||||
'SYNTHESIZE':'答案合成',
|
||||
'TREE':'总结',
|
||||
'SUB_QUESTION':'问题分解',
|
||||
'TEMPLATING':'生成提示词模板',
|
||||
'FUNCTION_CALL':'函数调用',
|
||||
'RERANKING':'节点重排',
|
||||
'EXCEPTION':'执行异常',
|
||||
'AGENT_STEP':'单步执行'
|
||||
}
|
||||
|
||||
|
||||
class ChatCallbackEvent(BaseModel):
|
||||
event_type: ChatEventType
|
||||
payload: Optional[Dict[str, Any]] = None
|
||||
@@ -99,7 +117,7 @@ class ChatCallbackEvent(BaseModel):
|
||||
"id": self.payload.get('nodeid'),
|
||||
"node_id": self.payload.get('nodeid'),
|
||||
"node_type": "http-request",
|
||||
"title": f"正在执行事件:{self.payload.get('title')}",
|
||||
"title": CH_Event_map[self.payload.get('title')],
|
||||
"index": self.payload.get('index'),
|
||||
"predecessor_node_id": self.payload.get('predecessor_node_id'),
|
||||
"inputs": '',
|
||||
@@ -117,7 +135,7 @@ class ChatCallbackEvent(BaseModel):
|
||||
"id": self.payload.get('nodeid'),
|
||||
"node_id": self.payload.get('nodeid'),
|
||||
"node_type": "http-request",
|
||||
"title": f"事件执行结束:{self.payload.get('title')}",
|
||||
"title": CH_Event_map[self.payload.get('title')],
|
||||
"index": self.payload.get('index'),
|
||||
"predecessor_node_id": self.payload.get('predecessor_node_id'),
|
||||
"inputs": '',
|
||||
|
||||
@@ -43,6 +43,16 @@ class HybridRetriever(BaseRetriever):
|
||||
for node in bmNodes:
|
||||
bmDic[node.node_id] = node
|
||||
|
||||
vecScores = [node_with_score.score for node_with_score in vecNodes]
|
||||
bmSores = [node_with_score.score for node_with_score in bmNodes]
|
||||
|
||||
vec_min_score = min(vecScores)
|
||||
vec_max_score = max(vecScores)
|
||||
|
||||
bm_min_score = min(bmSores)
|
||||
bm_max_score = max(bmSores)
|
||||
|
||||
|
||||
result_tups = []
|
||||
for i in range(len(vecNodes)):
|
||||
node = vecNodes[i]
|
||||
@@ -52,7 +62,11 @@ class HybridRetriever(BaseRetriever):
|
||||
bmDic.pop(node.node_id)
|
||||
else:
|
||||
bmScore = 0.0
|
||||
full_similarity = (self._alpha * node.score) + (
|
||||
|
||||
bmScore = self.normal_score(bmScore,bm_min_score,bm_max_score)
|
||||
vecScore = self.normal_score(node.score,vec_min_score,vec_max_score)
|
||||
|
||||
full_similarity = (self._alpha * vecScore) + (
|
||||
(1 - self._alpha) * bmScore
|
||||
)
|
||||
result_tups.append((full_similarity, node))
|
||||
@@ -64,4 +78,10 @@ class HybridRetriever(BaseRetriever):
|
||||
result_tups = sorted(result_tups, key=lambda x: x[0], reverse=True)
|
||||
for full_score, node in result_tups:
|
||||
node.score = full_score
|
||||
return [n for _, n in result_tups][:self._out_top_k]
|
||||
return [n for _, n in result_tups][:self._out_top_k]
|
||||
|
||||
def normal_score(self,score,min,max):
|
||||
if min == max:
|
||||
return 1.0 if score > 0 else 0.0
|
||||
else:
|
||||
return (score - min) / (max - min)
|
||||
Reference in New Issue
Block a user