feat: add convert_uuid_to_str function for UUID serialization in document metadata
--bug=1058357 --user=刘瑞斌 【知识库】通用知识库-上传QA问答对csv和excel文档失败 https://www.tapd.cn/62980211/s/1726470
This commit is contained in:
parent
ec2ddedf93
commit
6a87ccd908
@ -74,6 +74,17 @@ parse_qa_handle_list = [XlsParseQAHandle(), CsvParseQAHandle(), XlsxParseQAHandl
|
|||||||
parse_table_handle_list = [CsvParseTableHandle(), XlsParseTableHandle(), XlsxParseTableHandle()]
|
parse_table_handle_list = [CsvParseTableHandle(), XlsParseTableHandle(), XlsxParseTableHandle()]
|
||||||
|
|
||||||
|
|
||||||
|
def convert_uuid_to_str(obj):
|
||||||
|
if isinstance(obj, dict):
|
||||||
|
return {k: convert_uuid_to_str(v) for k, v in obj.items()}
|
||||||
|
elif isinstance(obj, list):
|
||||||
|
return [convert_uuid_to_str(i) for i in obj]
|
||||||
|
elif isinstance(obj, uuid.UUID):
|
||||||
|
return str(obj)
|
||||||
|
else:
|
||||||
|
return obj
|
||||||
|
|
||||||
|
|
||||||
class BatchCancelInstanceSerializer(serializers.Serializer):
|
class BatchCancelInstanceSerializer(serializers.Serializer):
|
||||||
id_list = serializers.ListField(required=True, child=serializers.UUIDField(required=True), label=_('id list'))
|
id_list = serializers.ListField(required=True, child=serializers.UUIDField(required=True), label=_('id list'))
|
||||||
type = serializers.IntegerField(required=True, label=_('task type'))
|
type = serializers.IntegerField(required=True, label=_('task type'))
|
||||||
@ -844,6 +855,9 @@ class DocumentSerializers(serializers.Serializer):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def get_document_paragraph_model(knowledge_id, instance: Dict):
|
def get_document_paragraph_model(knowledge_id, instance: Dict):
|
||||||
source_meta = {'source_file_id': instance.get('source_file_id')} if instance.get('source_file_id') else {}
|
source_meta = {'source_file_id': instance.get('source_file_id')} if instance.get('source_file_id') else {}
|
||||||
|
meta = {**instance.get('meta'), **source_meta} if instance.get('meta') is not None else source_meta
|
||||||
|
meta = convert_uuid_to_str(meta)
|
||||||
|
|
||||||
document_model = Document(
|
document_model = Document(
|
||||||
**{
|
**{
|
||||||
'knowledge_id': knowledge_id,
|
'knowledge_id': knowledge_id,
|
||||||
@ -853,8 +867,7 @@ class DocumentSerializers(serializers.Serializer):
|
|||||||
lambda x, y: x + y,
|
lambda x, y: x + y,
|
||||||
[len(p.get('content')) for p in instance.get('paragraphs', [])],
|
[len(p.get('content')) for p in instance.get('paragraphs', [])],
|
||||||
0),
|
0),
|
||||||
'meta': {**instance.get('meta'), **source_meta} if instance.get(
|
'meta': meta,
|
||||||
'meta') is not None else source_meta,
|
|
||||||
'type': instance.get('type') if instance.get('type') is not None else KnowledgeType.BASE
|
'type': instance.get('type') if instance.get('type') is not None else KnowledgeType.BASE
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user