From eab4fe83a011c82c0ea69cda23258fad042f94a2 Mon Sep 17 00:00:00 2001 From: Weves Date: Tue, 28 Nov 2023 02:40:21 -0800 Subject: [PATCH] Remove Slack bot personas from web UI --- backend/danswer/db/chat.py | 9 ++++++++- backend/danswer/db/constants.py | 1 + backend/danswer/db/slack_bot_config.py | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 backend/danswer/db/constants.py diff --git a/backend/danswer/db/chat.py b/backend/danswer/db/chat.py index 251b9e51a..9f5ef32ed 100644 --- a/backend/danswer/db/chat.py +++ b/backend/danswer/db/chat.py @@ -5,6 +5,7 @@ from uuid import UUID from sqlalchemy import and_ from sqlalchemy import delete from sqlalchemy import func +from sqlalchemy import not_ from sqlalchemy import select from sqlalchemy.exc import NoResultFound from sqlalchemy.orm import selectinload @@ -12,6 +13,7 @@ from sqlalchemy.orm import Session from danswer.configs.chat_configs import HARD_DELETE_CHATS from danswer.configs.constants import MessageType +from danswer.db.constants import SLACK_BOT_PERSONA_PREFIX from danswer.db.models import ChatMessage from danswer.db.models import ChatSession from danswer.db.models import DocumentSet as DocumentSetDBModel @@ -381,11 +383,16 @@ def upsert_persona( def fetch_personas( - db_session: Session, include_default: bool = False + db_session: Session, + include_default: bool = False, + include_slack_bot_personas: bool = False, ) -> Sequence[Persona]: stmt = select(Persona).where(Persona.deleted == False) # noqa: E712 if not include_default: stmt = stmt.where(Persona.default_persona == False) # noqa: E712 + if not include_slack_bot_personas: + stmt = stmt.where(not_(Persona.name.startswith(SLACK_BOT_PERSONA_PREFIX))) + return db_session.scalars(stmt).all() diff --git a/backend/danswer/db/constants.py b/backend/danswer/db/constants.py new file mode 100644 index 000000000..935fcf701 --- /dev/null +++ b/backend/danswer/db/constants.py @@ -0,0 +1 @@ +SLACK_BOT_PERSONA_PREFIX = "__slack_bot_persona__" diff --git a/backend/danswer/db/slack_bot_config.py b/backend/danswer/db/slack_bot_config.py index 558c31f15..67ff0aaef 100644 --- a/backend/danswer/db/slack_bot_config.py +++ b/backend/danswer/db/slack_bot_config.py @@ -4,6 +4,7 @@ from sqlalchemy import select from sqlalchemy.orm import Session from danswer.db.chat import upsert_persona +from danswer.db.constants import SLACK_BOT_PERSONA_PREFIX from danswer.db.models import ChannelConfig from danswer.db.models import Persona from danswer.db.models import Persona__DocumentSet @@ -11,7 +12,7 @@ from danswer.db.models import SlackBotConfig def _build_persona_name(channel_names: list[str]) -> str: - return f"__slack_bot_persona__{'-'.join(channel_names)}" + return f"{SLACK_BOT_PERSONA_PREFIX}{'-'.join(channel_names)}" def _cleanup_relationships(db_session: Session, persona_id: int) -> None: