From cefac6399de135c633db0278e04584cadf82e086 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E6=BD=AE?= Date: Fri, 19 Dec 2025 00:03:46 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9F=B3=E8=A7=86=E9=A2=91=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=88=86=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/knowledge/views/document.py | 33 +++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/apps/knowledge/views/document.py b/apps/knowledge/views/document.py index 1100967f..2d93a967 100644 --- a/apps/knowledge/views/document.py +++ b/apps/knowledge/views/document.py @@ -430,8 +430,39 @@ class DocumentView(APIView): 'document_list': r.data}), ) def put(self, request: Request, workspace_id: str, knowledge_id: str): + # 准备分块参数 + from common.utils.logger import maxkb_logger + maxkb_logger.info(f"=== BatchCreate View ===") + maxkb_logger.info(f"request.data type: {type(request.data)}") + if isinstance(request.data, list): + maxkb_logger.info(f"request.data is list with {len(request.data)} items") + # 检查第一个文档的参数 + if len(request.data) > 0: + first_doc = request.data[0] + maxkb_logger.info(f"First doc keys: {list(first_doc.keys())}") + maxkb_logger.info(f"First doc limit: {first_doc.get('limit')}") + maxkb_logger.info(f"First doc stt_model_id: {first_doc.get('stt_model_id')}") + + # 准备 serializer 数据 + serializer_data = { + 'knowledge_id': knowledge_id, + 'workspace_id': workspace_id + } + + # 从第一个文档中提取分块参数(所有文档使用相同的分块设置) + if isinstance(request.data, list) and len(request.data) > 0: + first_doc = request.data[0] + if 'limit' in first_doc: + serializer_data['limit'] = first_doc.get('limit') + if 'patterns' in first_doc: + serializer_data['patterns'] = first_doc.get('patterns') + if 'with_filter' in first_doc: + serializer_data['with_filter'] = first_doc.get('with_filter') + + maxkb_logger.info(f"BatchCreate serializer_data: {serializer_data}") + return result.success(DocumentSerializers.Batch( - data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id} + data=serializer_data ).batch_save(request.data)) class BatchSync(APIView):