Quellcode durchsuchen

Fixes 14217: database retrieve api and chat-messages api response doc_metadata (#14219)

yuhaowin vor 1 Monat
Ursprung
Commit
1e3197a1ea

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

@@ -203,6 +203,7 @@ class DatasetRetrieval:
                                 "segment_id": segment.id,
                                 "retriever_from": invoke_from.to_source(),
                                 "score": record.score or 0.0,
+                                "doc_metadata": document.doc_metadata,
                             }
 
                             if invoke_from.to_source() == "dev":

+ 1 - 0
api/core/tools/utils/dataset_retriever/dataset_multi_retriever_tool.py

@@ -123,6 +123,7 @@ class DatasetMultiRetrieverTool(DatasetRetrieverBaseTool):
                             "segment_id": segment.id,
                             "retriever_from": self.retriever_from,
                             "score": document_score_list.get(segment.index_node_id, None),
+                            "doc_metadata": document.doc_metadata,
                         }
 
                         if self.retriever_from == "dev":

+ 1 - 0
api/core/tools/utils/dataset_retriever/dataset_retriever_tool.py

@@ -172,6 +172,7 @@ class DatasetRetrieverTool(DatasetRetrieverBaseTool):
                                     "segment_id": segment.id,
                                     "retriever_from": self.retriever_from,
                                     "score": record.score or 0.0,
+                                    "doc_metadata": document.doc_metadat,  # type: ignore
                                 }
 
                                 if self.retriever_from == "dev":

+ 1 - 0
api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py

@@ -240,6 +240,7 @@ class KnowledgeRetrievalNode(BaseNode[KnowledgeRetrievalNodeData]):
                                 "segment_word_count": segment.word_count,
                                 "segment_position": segment.position,
                                 "segment_index_node_hash": segment.index_node_hash,
+                                "doc_metadata": document.doc_metadata,
                             },
                             "title": document.name,
                         }

+ 1 - 0
api/core/workflow/nodes/llm/node.py

@@ -459,6 +459,7 @@ class LLMNode(BaseNode[LLMNodeData]):
                 "index_node_hash": metadata.get("segment_index_node_hash"),
                 "content": context_dict.get("content"),
                 "page": metadata.get("page"),
+                "doc_metadata": metadata.get("doc_metadata"),
             }
 
             return source

+ 1 - 0
api/fields/hit_testing_fields.py

@@ -7,6 +7,7 @@ document_fields = {
     "data_source_type": fields.String,
     "name": fields.String,
     "doc_type": fields.String,
+    "doc_metadata": fields.Raw,
 }
 
 segment_fields = {