Bläddra i källkod

fix retrieval resource positon missed (#9155)

Co-authored-by: Bowen Liang <liangbowen@gf.com.cn>
Jyong 6 månader sedan
förälder
incheckning
cabdb4ef17

+ 3 - 1
api/core/rag/entities/context_entities.py

@@ -1,3 +1,5 @@
+from typing import Optional
+
 from pydantic import BaseModel
 
 
@@ -7,4 +9,4 @@ class DocumentContext(BaseModel):
     """
 
     content: str
-    score: float
+    score: Optional[float] = None

+ 3 - 0
api/core/rag/retrieval/dataset_retrieval.py

@@ -231,6 +231,9 @@ class DatasetRetrieval:
                                 source["content"] = segment.content
                             retrieval_resource_list.append(source)
         if hit_callback and retrieval_resource_list:
+            retrieval_resource_list = sorted(retrieval_resource_list, key=lambda x: x.get("score"), reverse=True)
+            for position, item in enumerate(retrieval_resource_list, start=1):
+                item["position"] = position
             hit_callback.return_retriever_resource_info(retrieval_resource_list)
         if document_context_list:
             document_context_list = sorted(document_context_list, key=lambda x: x.score, reverse=True)