diff --git a/apps/knowledge/api/document.py b/apps/knowledge/api/document.py index b8ca2455f..7050a854d 100644 --- a/apps/knowledge/api/document.py +++ b/apps/knowledge/api/document.py @@ -315,3 +315,28 @@ class DocumentTreeReadAPI(APIMixin): required=False, ), ] + + +class DocumentSplitPatternAPI(APIMixin): + @staticmethod + def get_parameters(): + return [ + OpenApiParameter( + name="workspace_id", + description="工作空间id", + type=OpenApiTypes.STR, + location='path', + required=True, + ), + OpenApiParameter( + name="knowledge_id", + description="知识库id", + type=OpenApiTypes.STR, + location='path', + required=True, + ), + ] + + @staticmethod + def get_response(): + return DefaultResultSerializer diff --git a/apps/knowledge/serializers/document.py b/apps/knowledge/serializers/document.py index 84e080eb2..814fbb269 100644 --- a/apps/knowledge/serializers/document.py +++ b/apps/knowledge/serializers/document.py @@ -624,6 +624,26 @@ class DocumentSerializers(serializers.Serializer): return result return [result] + class SplitPattern(serializers.Serializer): + workspace_id = serializers.CharField(required=True, label=_('workspace id')) + knowledge_id = serializers.UUIDField(required=True, label=_('knowledge id')) + + @staticmethod + def list(): + return [ + {'key': "#", 'value': '(?<=^)# .*|(?<=\\n)# .*'}, + {'key': '##', 'value': '(?<=\\n)(?/knowledge/', views.KnowledgeView.Operate.as_view()), path('workspace//knowledge//document', views.DocumentView.as_view()), path('workspace//knowledge//document/split', views.DocumentView.Split.as_view()), + path('workspace//knowledge//document/split_pattern', views.DocumentView.SplitPattern.as_view()), path('workspace//knowledge//document/batch', views.DocumentView.Batch.as_view()), path('workspace//knowledge//document/web', views.WebDocumentView.as_view()), path('workspace//knowledge//document/qa', views.QaDocumentView.as_view()), diff --git a/apps/knowledge/views/document.py b/apps/knowledge/views/document.py index bfaf20d85..ceee584fc 100644 --- a/apps/knowledge/views/document.py +++ b/apps/knowledge/views/document.py @@ -11,7 +11,7 @@ from common.result import result from knowledge.api.document import DocumentSplitAPI, DocumentBatchAPI, DocumentBatchCreateAPI, DocumentCreateAPI, \ DocumentReadAPI, DocumentEditAPI, DocumentDeleteAPI, TableDocumentCreateAPI, QaDocumentCreateAPI, \ WebDocumentCreateAPI, CancelTaskAPI, BatchCancelTaskAPI, SyncWebAPI, RefreshAPI, BatchEditHitHandlingAPI, \ - DocumentTreeReadAPI + DocumentTreeReadAPI, DocumentSplitPatternAPI from knowledge.serializers.document import DocumentSerializers @@ -140,6 +140,22 @@ class DocumentView(APIView): 'knowledge_id': knowledge_id, }).parse(split_data)) + class SplitPattern(APIView): + authentication_classes = [TokenAuth] + + @extend_schema( + summary=_('Get a list of segment IDs'), + description=_('Get a list of segment IDs'), + operation_id=_('Get a list of segment IDs'), + parameters=DocumentSplitPatternAPI.get_parameters(), + responses=DocumentSplitPatternAPI.get_response(), + tags=[_('Knowledge Base/Documentation')] + ) + def get(self, request: Request, workspace_id: str, knowledge_id: str): + return result.success(DocumentSerializers.SplitPattern( + data={'knowledge_id': knowledge_id, 'workspace_id': workspace_id} + ).list()) + class BatchEditHitHandling(APIView): authentication_classes = [TokenAuth]