fix bug about removing KB. (#839)

### What problem does this PR solve?

#838 

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
This commit is contained in:
KevinHuSh 2024-05-20 09:23:57 +08:00 committed by GitHub
parent 673a28e492
commit 6683179d6a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -19,12 +19,14 @@ from flask_login import login_required, current_user
from api.db.services import duplicate_name from api.db.services import duplicate_name
from api.db.services.document_service import DocumentService from api.db.services.document_service import DocumentService
from api.db.services.file2document_service import File2DocumentService
from api.db.services.file_service import FileService
from api.db.services.user_service import TenantService, UserTenantService from api.db.services.user_service import TenantService, UserTenantService
from api.utils.api_utils import server_error_response, get_data_error_result, validate_request from api.utils.api_utils import server_error_response, get_data_error_result, validate_request
from api.utils import get_uuid, get_format_time from api.utils import get_uuid, get_format_time
from api.db import StatusEnum, UserTenantRole from api.db import StatusEnum, UserTenantRole, FileSource
from api.db.services.knowledgebase_service import KnowledgebaseService from api.db.services.knowledgebase_service import KnowledgebaseService
from api.db.db_models import Knowledgebase from api.db.db_models import Knowledgebase, File
from api.settings import stat_logger, RetCode from api.settings import stat_logger, RetCode
from api.utils.api_utils import get_json_result from api.utils.api_utils import get_json_result
from rag.nlp import search from rag.nlp import search
@ -139,9 +141,11 @@ def rm():
if not DocumentService.remove_document(doc, kbs[0].tenant_id): if not DocumentService.remove_document(doc, kbs[0].tenant_id):
return get_data_error_result( return get_data_error_result(
retmsg="Database error (Document removal)!") retmsg="Database error (Document removal)!")
f2d = File2DocumentService.get_by_document_id(doc.id)
FileService.filter_delete([File.source_type == FileSource.KNOWLEDGEBASE, File.id == f2d[0].file_id])
File2DocumentService.delete_by_document_id(doc.id)
if not KnowledgebaseService.update_by_id( if not KnowledgebaseService.delete_by_id(req["kb_id"]):
req["kb_id"], {"status": StatusEnum.INVALID.value}):
return get_data_error_result( return get_data_error_result(
retmsg="Database error (Knowledgebase removal)!") retmsg="Database error (Knowledgebase removal)!")
return get_json_result(data=True) return get_json_result(data=True)