diff --git a/api/core/rag/retrieval/dataset_retrieval.py b/api/core/rag/retrieval/dataset_retrieval.py index 2193d8d3fd..ac868a2250 100644 --- a/api/core/rag/retrieval/dataset_retrieval.py +++ b/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": diff --git a/api/core/tools/utils/dataset_retriever/dataset_multi_retriever_tool.py b/api/core/tools/utils/dataset_retriever/dataset_multi_retriever_tool.py index 802bee4217..032274b87e 100644 --- a/api/core/tools/utils/dataset_retriever/dataset_multi_retriever_tool.py +++ b/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": diff --git a/api/core/tools/utils/dataset_retriever/dataset_retriever_tool.py b/api/core/tools/utils/dataset_retriever/dataset_retriever_tool.py index 946d99ef6f..e0a5ee9aab 100644 --- a/api/core/tools/utils/dataset_retriever/dataset_retriever_tool.py +++ b/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": diff --git a/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py b/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py index 0f239af51a..d77def2c40 100644 --- a/api/core/workflow/nodes/knowledge_retrieval/knowledge_retrieval_node.py +++ b/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, } diff --git a/api/core/workflow/nodes/llm/node.py b/api/core/workflow/nodes/llm/node.py index aff3d2b7c6..f717a2a877 100644 --- a/api/core/workflow/nodes/llm/node.py +++ b/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 diff --git a/api/fields/hit_testing_fields.py b/api/fields/hit_testing_fields.py index d9758474f7..4514c1b8ca 100644 --- a/api/fields/hit_testing_fields.py +++ b/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 = {