Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>tags/1.7.2
| return marshal(document_dict, document_status_fields) | return marshal(document_dict, document_status_fields) | ||||
| class DocumentDetailApi(DocumentResource): | |||||
| class DocumentApi(DocumentResource): | |||||
| METADATA_CHOICES = {"all", "only", "without"} | METADATA_CHOICES = {"all", "only", "without"} | ||||
| @setup_required | @setup_required | ||||
| return response, 200 | return response, 200 | ||||
| @setup_required | |||||
| @login_required | |||||
| @account_initialization_required | |||||
| @cloud_edition_billing_rate_limit_check("knowledge") | |||||
| def delete(self, dataset_id, document_id): | |||||
| dataset_id = str(dataset_id) | |||||
| document_id = str(document_id) | |||||
| dataset = DatasetService.get_dataset(dataset_id) | |||||
| if dataset is None: | |||||
| raise NotFound("Dataset not found.") | |||||
| # check user's model setting | |||||
| DatasetService.check_dataset_model_setting(dataset) | |||||
| document = self.get_document(dataset_id, document_id) | |||||
| try: | |||||
| DocumentService.delete_document(document) | |||||
| except services.errors.document.DocumentIndexingError: | |||||
| raise DocumentIndexingError("Cannot delete document during indexing.") | |||||
| return {"result": "success"}, 204 | |||||
| class DocumentProcessingApi(DocumentResource): | class DocumentProcessingApi(DocumentResource): | ||||
| @setup_required | @setup_required | ||||
| return {"result": "success"}, 200 | return {"result": "success"}, 200 | ||||
| class DocumentDeleteApi(DocumentResource): | |||||
| @setup_required | |||||
| @login_required | |||||
| @account_initialization_required | |||||
| @cloud_edition_billing_rate_limit_check("knowledge") | |||||
| def delete(self, dataset_id, document_id): | |||||
| dataset_id = str(dataset_id) | |||||
| document_id = str(document_id) | |||||
| dataset = DatasetService.get_dataset(dataset_id) | |||||
| if dataset is None: | |||||
| raise NotFound("Dataset not found.") | |||||
| # check user's model setting | |||||
| DatasetService.check_dataset_model_setting(dataset) | |||||
| document = self.get_document(dataset_id, document_id) | |||||
| try: | |||||
| DocumentService.delete_document(document) | |||||
| except services.errors.document.DocumentIndexingError: | |||||
| raise DocumentIndexingError("Cannot delete document during indexing.") | |||||
| return {"result": "success"}, 204 | |||||
| class DocumentMetadataApi(DocumentResource): | class DocumentMetadataApi(DocumentResource): | ||||
| @setup_required | @setup_required | ||||
| @login_required | @login_required | ||||
| api.add_resource(DocumentBatchIndexingEstimateApi, "/datasets/<uuid:dataset_id>/batch/<string:batch>/indexing-estimate") | api.add_resource(DocumentBatchIndexingEstimateApi, "/datasets/<uuid:dataset_id>/batch/<string:batch>/indexing-estimate") | ||||
| api.add_resource(DocumentBatchIndexingStatusApi, "/datasets/<uuid:dataset_id>/batch/<string:batch>/indexing-status") | api.add_resource(DocumentBatchIndexingStatusApi, "/datasets/<uuid:dataset_id>/batch/<string:batch>/indexing-status") | ||||
| api.add_resource(DocumentIndexingStatusApi, "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/indexing-status") | api.add_resource(DocumentIndexingStatusApi, "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/indexing-status") | ||||
| api.add_resource(DocumentDetailApi, "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>") | |||||
| api.add_resource(DocumentApi, "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>") | |||||
| api.add_resource( | api.add_resource( | ||||
| DocumentProcessingApi, "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/processing/<string:action>" | DocumentProcessingApi, "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/processing/<string:action>" | ||||
| ) | ) | ||||
| api.add_resource(DocumentDeleteApi, "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>") | |||||
| api.add_resource(DocumentMetadataApi, "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/metadata") | api.add_resource(DocumentMetadataApi, "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/metadata") | ||||
| api.add_resource(DocumentStatusApi, "/datasets/<uuid:dataset_id>/documents/status/<string:action>/batch") | api.add_resource(DocumentStatusApi, "/datasets/<uuid:dataset_id>/documents/status/<string:action>/batch") | ||||
| api.add_resource(DocumentPauseApi, "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/processing/pause") | api.add_resource(DocumentPauseApi, "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/processing/pause") |
| return documents_and_batch_fields, 200 | return documents_and_batch_fields, 200 | ||||
| class DocumentDeleteApi(DatasetApiResource): | |||||
| @cloud_edition_billing_rate_limit_check("knowledge", "dataset") | |||||
| def delete(self, tenant_id, dataset_id, document_id): | |||||
| """Delete document.""" | |||||
| document_id = str(document_id) | |||||
| dataset_id = str(dataset_id) | |||||
| tenant_id = str(tenant_id) | |||||
| # get dataset info | |||||
| dataset = db.session.query(Dataset).where(Dataset.tenant_id == tenant_id, Dataset.id == dataset_id).first() | |||||
| if not dataset: | |||||
| raise ValueError("Dataset does not exist.") | |||||
| document = DocumentService.get_document(dataset.id, document_id) | |||||
| # 404 if document not found | |||||
| if document is None: | |||||
| raise NotFound("Document Not Exists.") | |||||
| # 403 if document is archived | |||||
| if DocumentService.check_archived(document): | |||||
| raise ArchivedDocumentImmutableError() | |||||
| try: | |||||
| # delete document | |||||
| DocumentService.delete_document(document) | |||||
| except services.errors.document.DocumentIndexingError: | |||||
| raise DocumentIndexingError("Cannot delete document during indexing.") | |||||
| return 204 | |||||
| class DocumentListApi(DatasetApiResource): | class DocumentListApi(DatasetApiResource): | ||||
| def get(self, tenant_id, dataset_id): | def get(self, tenant_id, dataset_id): | ||||
| dataset_id = str(dataset_id) | dataset_id = str(dataset_id) | ||||
| return data | return data | ||||
| class DocumentDetailApi(DatasetApiResource): | |||||
| class DocumentApi(DatasetApiResource): | |||||
| METADATA_CHOICES = {"all", "only", "without"} | METADATA_CHOICES = {"all", "only", "without"} | ||||
| def get(self, tenant_id, dataset_id, document_id): | def get(self, tenant_id, dataset_id, document_id): | ||||
| return response | return response | ||||
| @cloud_edition_billing_rate_limit_check("knowledge", "dataset") | |||||
| def delete(self, tenant_id, dataset_id, document_id): | |||||
| """Delete document.""" | |||||
| document_id = str(document_id) | |||||
| dataset_id = str(dataset_id) | |||||
| tenant_id = str(tenant_id) | |||||
| # get dataset info | |||||
| dataset = db.session.query(Dataset).where(Dataset.tenant_id == tenant_id, Dataset.id == dataset_id).first() | |||||
| if not dataset: | |||||
| raise ValueError("Dataset does not exist.") | |||||
| document = DocumentService.get_document(dataset.id, document_id) | |||||
| # 404 if document not found | |||||
| if document is None: | |||||
| raise NotFound("Document Not Exists.") | |||||
| # 403 if document is archived | |||||
| if DocumentService.check_archived(document): | |||||
| raise ArchivedDocumentImmutableError() | |||||
| try: | |||||
| # delete document | |||||
| DocumentService.delete_document(document) | |||||
| except services.errors.document.DocumentIndexingError: | |||||
| raise DocumentIndexingError("Cannot delete document during indexing.") | |||||
| return 204 | |||||
| api.add_resource( | api.add_resource( | ||||
| DocumentAddByTextApi, | DocumentAddByTextApi, | ||||
| "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/update_by_file", | "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/update_by_file", | ||||
| "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/update-by-file", | "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>/update-by-file", | ||||
| ) | ) | ||||
| api.add_resource(DocumentDeleteApi, "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>") | |||||
| api.add_resource(DocumentApi, "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>") | |||||
| api.add_resource(DocumentListApi, "/datasets/<uuid:dataset_id>/documents") | api.add_resource(DocumentListApi, "/datasets/<uuid:dataset_id>/documents") | ||||
| api.add_resource(DocumentIndexingStatusApi, "/datasets/<uuid:dataset_id>/documents/<string:batch>/indexing-status") | api.add_resource(DocumentIndexingStatusApi, "/datasets/<uuid:dataset_id>/documents/<string:batch>/indexing-status") | ||||
| api.add_resource(DocumentDetailApi, "/datasets/<uuid:dataset_id>/documents/<uuid:document_id>") |