modify status

This commit is contained in:
朱潮 2025-08-25 01:49:28 +08:00
parent f1494fedea
commit 71fe9c5e9a

View File

@ -1136,6 +1136,11 @@ class DocumentSerializers(serializers.Serializer):
@staticmethod @staticmethod
def post_embedding(document_list, knowledge_id, workspace_id): def post_embedding(document_list, knowledge_id, workspace_id):
for document_dict in document_list: for document_dict in document_list:
# 跳过高级学习文档(已经通过异步任务处理)
if document_dict.get('is_advanced_learning'):
from common.utils.logger import maxkb_logger
maxkb_logger.info(f"Skipping refresh for advanced learning document: {document_dict.get('id')}")
continue
DocumentSerializers.Operate(data={ DocumentSerializers.Operate(data={
'knowledge_id': knowledge_id, 'knowledge_id': knowledge_id,
'document_id': document_dict.get('id'), 'document_id': document_dict.get('id'),
@ -1202,11 +1207,11 @@ class DocumentSerializers(serializers.Serializer):
document_model = document_model_list[idx] document_model = document_model_list[idx]
maxkb_logger.info(f"Submitting async advanced learning task for document: {document_model.id}") maxkb_logger.info(f"Submitting async advanced learning task for document: {document_model.id}")
# 设置文档状态为解析 # 设置文档状态为排队
ListenerManagement.update_status( ListenerManagement.update_status(
QuerySet(Document).filter(id=document_model.id), QuerySet(Document).filter(id=document_model.id),
TaskType.EMBEDDING, TaskType.EMBEDDING,
State.PARSING State.PENDING
) )
# 提交异步任务 # 提交异步任务
@ -1248,7 +1253,7 @@ class DocumentSerializers(serializers.Serializer):
if len(document_model_list) == 0: if len(document_model_list) == 0:
return [], knowledge_id, workspace_id return [], knowledge_id, workspace_id
query_set = query_set.filter(**{'id__in': [d.id for d in document_model_list]}) query_set = query_set.filter(**{'id__in': [d.id for d in document_model_list]})
return native_search( document_result_list = native_search(
{ {
'document_custom_sql': query_set, 'document_custom_sql': query_set,
'order_by_query': QuerySet(Document).order_by('-create_time', 'id') 'order_by_query': QuerySet(Document).order_by('-create_time', 'id')
@ -1257,7 +1262,16 @@ class DocumentSerializers(serializers.Serializer):
os.path.join(PROJECT_DIR, "apps", "knowledge", 'sql', 'list_document.sql') os.path.join(PROJECT_DIR, "apps", "knowledge", 'sql', 'list_document.sql')
), ),
with_search_one=False with_search_one=False
), knowledge_id, workspace_id )
# 标记高级学习文档
for idx, document in enumerate(instance_list):
llm_model_id = document.get('llm_model_id')
vision_model_id = document.get('vision_model_id')
if llm_model_id and vision_model_id and idx < len(document_result_list):
document_result_list[idx]['is_advanced_learning'] = True
return document_result_list, knowledge_id, workspace_id
def batch_sync(self, instance: Dict, with_valid=True): def batch_sync(self, instance: Dict, with_valid=True):
if with_valid: if with_valid:
@ -1438,12 +1452,12 @@ class DocumentSerializers(serializers.Serializer):
if not mineru_api_type: if not mineru_api_type:
raise AppApiException(500, _('MinerU API not configured')) raise AppApiException(500, _('MinerU API not configured'))
# 更新文档状态为解析中(而不是排队中 # 更新文档状态为排队中
for document_id in document_id_list: for document_id in document_id_list:
ListenerManagement.update_status( ListenerManagement.update_status(
QuerySet(Document).filter(id=document_id), QuerySet(Document).filter(id=document_id),
TaskType.EMBEDDING, TaskType.EMBEDDING,
State.PARSING State.PENDING
) )
# 调用异步任务处理文档 # 调用异步任务处理文档