add metadata migration

This commit is contained in:
jyong 2025-02-28 16:34:11 +08:00
parent 96cf0ed5af
commit 3c3e0a35f4
2 changed files with 39 additions and 0 deletions

View File

@ -79,6 +79,7 @@ dataset_detail_fields = {
"external_knowledge_info": fields.Nested(external_knowledge_info_fields),
"external_retrieval_model": fields.Nested(external_retrieval_model_fields, allow_null=True),
"doc_metadata": fields.List(fields.Nested(doc_metadata_fields)),
"built_in_field_enabled": fields.Boolean,
}
dataset_query_detail_fields = {

View File

@ -16,6 +16,7 @@ from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.orm import Mapped
from configs import dify_config
from core.rag.index_processor.constant.built_in_field import BuiltInField
from core.rag.retrieval.retrieval_methods import RetrievalMethod
from extensions.ext_storage import storage
from services.entities.knowledge_entities.knowledge_entities import ParentMode, Rule
@ -444,8 +445,45 @@ class Document(db.Model): # type: ignore[name-defined]
"value": self.doc_metadata.get(metadata.type),
}
metadata_list.append(metadata_dict)
# deal built-in fields
metadata_list.extend(self.get_built_in_fields())
return metadata_list
return None
def get_built_in_fields(self):
built_in_fields = []
built_in_fields.append({
"id": "built-in",
"name": BuiltInField.document_name,
"type": "string",
"value": self.name,
})
built_in_fields.append({
"id": "built-in",
"name": BuiltInField.uploader,
"type": "string",
"value": self.uploader,
})
built_in_fields.append({
"id": "built-in",
"name": BuiltInField.upload_date,
"type": "date",
"value": self.created_at,
})
built_in_fields.append({
"id": "built-in",
"name": BuiltInField.last_update_date,
"type": "date",
"value": self.updated_at,
})
built_in_fields.append({
"id": "built-in",
"name": BuiltInField.source,
"type": "string",
"value": self.data_source_info,
})
return built_in_fields
def process_rule_dict(self):
if self.dataset_process_rule_id: