mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-10-06 18:14:35 +02:00
Allow connectors that have documents with feedback to be deleted
This commit is contained in:
@@ -9,6 +9,7 @@ from sqlalchemy.orm import Session
|
|||||||
|
|
||||||
from danswer.configs.constants import DEFAULT_BOOST
|
from danswer.configs.constants import DEFAULT_BOOST
|
||||||
from danswer.datastores.interfaces import DocumentMetadata
|
from danswer.datastores.interfaces import DocumentMetadata
|
||||||
|
from danswer.db.feedback import delete_document_feedback_for_documents
|
||||||
from danswer.db.models import Document as DbDocument
|
from danswer.db.models import Document as DbDocument
|
||||||
from danswer.db.models import DocumentByConnectorCredentialPair
|
from danswer.db.models import DocumentByConnectorCredentialPair
|
||||||
from danswer.db.utils import model_to_dict
|
from danswer.db.utils import model_to_dict
|
||||||
@@ -168,5 +169,8 @@ def delete_documents(db_session: Session, document_ids: list[str]) -> None:
|
|||||||
def delete_documents_complete(db_session: Session, document_ids: list[str]) -> None:
|
def delete_documents_complete(db_session: Session, document_ids: list[str]) -> None:
|
||||||
logger.info(f"Deleting {len(document_ids)} documents from the DB")
|
logger.info(f"Deleting {len(document_ids)} documents from the DB")
|
||||||
delete_document_by_connector_credential_pair(db_session, document_ids)
|
delete_document_by_connector_credential_pair(db_session, document_ids)
|
||||||
|
delete_document_feedback_for_documents(
|
||||||
|
document_ids=document_ids, db_session=db_session
|
||||||
|
)
|
||||||
delete_documents(db_session, document_ids)
|
delete_documents(db_session, document_ids)
|
||||||
db_session.commit()
|
db_session.commit()
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
from sqlalchemy import asc
|
from sqlalchemy import asc
|
||||||
|
from sqlalchemy import delete
|
||||||
from sqlalchemy import desc
|
from sqlalchemy import desc
|
||||||
from sqlalchemy import select
|
from sqlalchemy import select
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
@@ -151,3 +152,14 @@ def create_doc_retrieval_feedback(
|
|||||||
|
|
||||||
db_session.add(retrieval_feedback)
|
db_session.add(retrieval_feedback)
|
||||||
db_session.commit()
|
db_session.commit()
|
||||||
|
|
||||||
|
|
||||||
|
def delete_document_feedback_for_documents(
|
||||||
|
document_ids: list[str], db_session: Session
|
||||||
|
) -> None:
|
||||||
|
"""NOTE: does not commit transaction so that this can be used as part of a
|
||||||
|
larger transaction block."""
|
||||||
|
stmt = delete(DocumentRetrievalFeedback).where(
|
||||||
|
DocumentRetrievalFeedback.document_id.in_(document_ids)
|
||||||
|
)
|
||||||
|
db_session.execute(stmt)
|
||||||
|
Reference in New Issue
Block a user