From 11d96b2807579cb9d9a91664a4b8d47cfe0de6fe Mon Sep 17 00:00:00 2001 From: Yuhong Sun Date: Sat, 28 Oct 2023 14:41:36 -0700 Subject: [PATCH] Rename DanswerBot (#644) --- CONTRIBUTING.md | 6 +++--- backend/Dockerfile | 2 +- .../{bots => danswerbot}/slack/blocks.py | 10 +++++----- .../{bots => danswerbot}/slack/config.py | 0 .../{bots => danswerbot}/slack/constants.py | 0 .../slack/handlers/handle_feedback.py | 6 +++--- .../slack/handlers/handle_message.py | 16 +++++++-------- .../{bots => danswerbot}/slack/listener.py | 20 +++++++++---------- .../{bots => danswerbot}/slack/models.py | 0 .../{bots => danswerbot}/slack/tokens.py | 0 .../{bots => danswerbot}/slack/utils.py | 4 ++-- backend/danswer/server/models.py | 2 +- .../danswer/server/slack_bot_management.py | 6 +++--- backend/supervisord.conf | 4 ++-- 14 files changed, 38 insertions(+), 38 deletions(-) rename backend/danswer/{bots => danswerbot}/slack/blocks.py (95%) rename backend/danswer/{bots => danswerbot}/slack/config.py (100%) rename backend/danswer/{bots => danswerbot}/slack/constants.py (100%) rename backend/danswer/{bots => danswerbot}/slack/handlers/handle_feedback.py (91%) rename backend/danswer/{bots => danswerbot}/slack/handlers/handle_message.py (95%) rename backend/danswer/{bots => danswerbot}/slack/listener.py (94%) rename backend/danswer/{bots => danswerbot}/slack/models.py (100%) rename backend/danswer/{bots => danswerbot}/slack/tokens.py (100%) rename backend/danswer/{bots => danswerbot}/slack/utils.py (98%) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 89d4b897e..966fd09b0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -113,7 +113,7 @@ npm run dev Package the Vespa schema. This will only need to be done when the Vespa schema is updated locally. -Nagivate to `danswer/backend/danswer/datastores/vespa/app_config` and run: +Nagivate to `danswer/backend/danswer/document_index/vespa/app_config` and run: ```bash zip -r ../vespa-app.zip . ``` @@ -139,7 +139,7 @@ To run the backend API server, navigate back to `danswer/backend` and run: ```bash AUTH_TYPE=disabled \ DYNAMIC_CONFIG_DIR_PATH=./dynamic_config_storage \ -VESPA_DEPLOYMENT_ZIP=./danswer/datastores/vespa/vespa-app.zip \ +VESPA_DEPLOYMENT_ZIP=./danswer/document_index/vespa/vespa-app.zip \ uvicorn danswer.main:app --reload --port 8080 ``` _For Windows (for compatibility with both PowerShell and Command Prompt):_ @@ -147,7 +147,7 @@ _For Windows (for compatibility with both PowerShell and Command Prompt):_ powershell -Command " $env:AUTH_TYPE='disabled' $env:DYNAMIC_CONFIG_DIR_PATH='./dynamic_config_storage' - $env:VESPA_DEPLOYMENT_ZIP='./danswer/datastores/vespa/vespa-app.zip' + $env:VESPA_DEPLOYMENT_ZIP='./danswer/document_index/vespa/vespa-app.zip' uvicorn danswer.main:app --reload --port 8080 " ``` diff --git a/backend/Dockerfile b/backend/Dockerfile index 160df17c6..397bd7213 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -46,7 +46,7 @@ COPY ./alembic.ini /app/alembic.ini COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf # Create Vespa app zip -WORKDIR /app/danswer/datastores/vespa/app_config +WORKDIR /app/danswer/document_index/vespa/app_config RUN zip -r /app/danswer/vespa-app.zip . WORKDIR /app diff --git a/backend/danswer/bots/slack/blocks.py b/backend/danswer/danswerbot/slack/blocks.py similarity index 95% rename from backend/danswer/bots/slack/blocks.py rename to backend/danswer/danswerbot/slack/blocks.py index 16f5c8c34..435ec79c0 100644 --- a/backend/danswer/bots/slack/blocks.py +++ b/backend/danswer/danswerbot/slack/blocks.py @@ -8,15 +8,15 @@ from slack_sdk.models.blocks import DividerBlock from slack_sdk.models.blocks import HeaderBlock from slack_sdk.models.blocks import SectionBlock -from danswer.bots.slack.constants import DISLIKE_BLOCK_ACTION_ID -from danswer.bots.slack.constants import LIKE_BLOCK_ACTION_ID -from danswer.bots.slack.utils import build_feedback_block_id -from danswer.bots.slack.utils import remove_slack_text_interactions -from danswer.bots.slack.utils import translate_vespa_highlight_to_slack from danswer.configs.constants import DocumentSource from danswer.configs.constants import SearchFeedbackType from danswer.configs.danswerbot_configs import DANSWER_BOT_NUM_DOCS_TO_DISPLAY from danswer.configs.danswerbot_configs import ENABLE_SLACK_DOC_FEEDBACK +from danswer.danswerbot.slack.constants import DISLIKE_BLOCK_ACTION_ID +from danswer.danswerbot.slack.constants import LIKE_BLOCK_ACTION_ID +from danswer.danswerbot.slack.utils import build_feedback_block_id +from danswer.danswerbot.slack.utils import remove_slack_text_interactions +from danswer.danswerbot.slack.utils import translate_vespa_highlight_to_slack from danswer.direct_qa.interfaces import DanswerQuote from danswer.server.models import SearchDoc from danswer.utils.text_processing import replace_whitespaces_w_space diff --git a/backend/danswer/bots/slack/config.py b/backend/danswer/danswerbot/slack/config.py similarity index 100% rename from backend/danswer/bots/slack/config.py rename to backend/danswer/danswerbot/slack/config.py diff --git a/backend/danswer/bots/slack/constants.py b/backend/danswer/danswerbot/slack/constants.py similarity index 100% rename from backend/danswer/bots/slack/constants.py rename to backend/danswer/danswerbot/slack/constants.py diff --git a/backend/danswer/bots/slack/handlers/handle_feedback.py b/backend/danswer/danswerbot/slack/handlers/handle_feedback.py similarity index 91% rename from backend/danswer/bots/slack/handlers/handle_feedback.py rename to backend/danswer/danswerbot/slack/handlers/handle_feedback.py index e8799f6f4..160e75f33 100644 --- a/backend/danswer/bots/slack/handlers/handle_feedback.py +++ b/backend/danswer/danswerbot/slack/handlers/handle_feedback.py @@ -1,11 +1,11 @@ from slack_sdk import WebClient from sqlalchemy.orm import Session -from danswer.bots.slack.constants import DISLIKE_BLOCK_ACTION_ID -from danswer.bots.slack.constants import LIKE_BLOCK_ACTION_ID -from danswer.bots.slack.utils import decompose_block_id from danswer.configs.constants import QAFeedbackType from danswer.configs.constants import SearchFeedbackType +from danswer.danswerbot.slack.constants import DISLIKE_BLOCK_ACTION_ID +from danswer.danswerbot.slack.constants import LIKE_BLOCK_ACTION_ID +from danswer.danswerbot.slack.utils import decompose_block_id from danswer.db.engine import get_sqlalchemy_engine from danswer.db.feedback import create_doc_retrieval_feedback from danswer.db.feedback import update_query_event_feedback diff --git a/backend/danswer/bots/slack/handlers/handle_message.py b/backend/danswer/danswerbot/slack/handlers/handle_message.py similarity index 95% rename from backend/danswer/bots/slack/handlers/handle_message.py rename to backend/danswer/danswerbot/slack/handlers/handle_message.py index fcbf098a8..813d0ddd8 100644 --- a/backend/danswer/bots/slack/handlers/handle_message.py +++ b/backend/danswer/danswerbot/slack/handlers/handle_message.py @@ -6,14 +6,6 @@ from slack_sdk import WebClient from slack_sdk.errors import SlackApiError from sqlalchemy.orm import Session -from danswer.bots.slack.blocks import build_documents_blocks -from danswer.bots.slack.blocks import build_qa_response_blocks -from danswer.bots.slack.blocks import get_restate_blocks -from danswer.bots.slack.constants import SLACK_CHANNEL_ID -from danswer.bots.slack.models import SlackMessageInfo -from danswer.bots.slack.utils import ChannelIdAdapter -from danswer.bots.slack.utils import fetch_userids_from_emails -from danswer.bots.slack.utils import respond_in_thread from danswer.configs.app_configs import DOCUMENT_INDEX_NAME from danswer.configs.danswerbot_configs import DANSWER_BOT_ANSWER_GENERATION_TIMEOUT from danswer.configs.danswerbot_configs import DANSWER_BOT_DISABLE_DOCS_ONLY_ANSWER @@ -23,6 +15,14 @@ from danswer.configs.danswerbot_configs import DANSWER_REACT_EMOJI from danswer.configs.danswerbot_configs import DISABLE_DANSWER_BOT_FILTER_DETECT from danswer.configs.danswerbot_configs import ENABLE_DANSWERBOT_REFLEXION from danswer.connectors.slack.utils import make_slack_api_rate_limited +from danswer.danswerbot.slack.blocks import build_documents_blocks +from danswer.danswerbot.slack.blocks import build_qa_response_blocks +from danswer.danswerbot.slack.blocks import get_restate_blocks +from danswer.danswerbot.slack.constants import SLACK_CHANNEL_ID +from danswer.danswerbot.slack.models import SlackMessageInfo +from danswer.danswerbot.slack.utils import ChannelIdAdapter +from danswer.danswerbot.slack.utils import fetch_userids_from_emails +from danswer.danswerbot.slack.utils import respond_in_thread from danswer.db.engine import get_sqlalchemy_engine from danswer.db.models import SlackBotConfig from danswer.direct_qa.answer_question import answer_qa_query diff --git a/backend/danswer/bots/slack/listener.py b/backend/danswer/danswerbot/slack/listener.py similarity index 94% rename from backend/danswer/bots/slack/listener.py rename to backend/danswer/danswerbot/slack/listener.py index 81843dbea..167271a34 100644 --- a/backend/danswer/bots/slack/listener.py +++ b/backend/danswer/danswerbot/slack/listener.py @@ -9,18 +9,18 @@ from slack_sdk.socket_mode.request import SocketModeRequest from slack_sdk.socket_mode.response import SocketModeResponse from sqlalchemy.orm import Session -from danswer.bots.slack.config import get_slack_bot_config_for_channel -from danswer.bots.slack.constants import SLACK_CHANNEL_ID -from danswer.bots.slack.handlers.handle_feedback import handle_slack_feedback -from danswer.bots.slack.handlers.handle_message import handle_message -from danswer.bots.slack.models import SlackMessageInfo -from danswer.bots.slack.tokens import fetch_tokens -from danswer.bots.slack.utils import ChannelIdAdapter -from danswer.bots.slack.utils import decompose_block_id -from danswer.bots.slack.utils import get_channel_name_from_id -from danswer.bots.slack.utils import respond_in_thread from danswer.configs.danswerbot_configs import DANSWER_BOT_RESPOND_EVERY_CHANNEL from danswer.configs.danswerbot_configs import NOTIFY_SLACKBOT_NO_ANSWER +from danswer.danswerbot.slack.config import get_slack_bot_config_for_channel +from danswer.danswerbot.slack.constants import SLACK_CHANNEL_ID +from danswer.danswerbot.slack.handlers.handle_feedback import handle_slack_feedback +from danswer.danswerbot.slack.handlers.handle_message import handle_message +from danswer.danswerbot.slack.models import SlackMessageInfo +from danswer.danswerbot.slack.tokens import fetch_tokens +from danswer.danswerbot.slack.utils import ChannelIdAdapter +from danswer.danswerbot.slack.utils import decompose_block_id +from danswer.danswerbot.slack.utils import get_channel_name_from_id +from danswer.danswerbot.slack.utils import respond_in_thread from danswer.db.engine import get_sqlalchemy_engine from danswer.dynamic_configs.interface import ConfigNotFoundError from danswer.utils.logger import setup_logger diff --git a/backend/danswer/bots/slack/models.py b/backend/danswer/danswerbot/slack/models.py similarity index 100% rename from backend/danswer/bots/slack/models.py rename to backend/danswer/danswerbot/slack/models.py diff --git a/backend/danswer/bots/slack/tokens.py b/backend/danswer/danswerbot/slack/tokens.py similarity index 100% rename from backend/danswer/bots/slack/tokens.py rename to backend/danswer/danswerbot/slack/tokens.py diff --git a/backend/danswer/bots/slack/utils.py b/backend/danswer/danswerbot/slack/utils.py similarity index 98% rename from backend/danswer/bots/slack/utils.py rename to backend/danswer/danswerbot/slack/utils.py index c7ecc2346..f071347d4 100644 --- a/backend/danswer/bots/slack/utils.py +++ b/backend/danswer/danswerbot/slack/utils.py @@ -12,12 +12,12 @@ from slack_sdk.errors import SlackApiError from slack_sdk.models.blocks import Block from slack_sdk.models.metadata import Metadata -from danswer.bots.slack.constants import SLACK_CHANNEL_ID -from danswer.bots.slack.tokens import fetch_tokens from danswer.configs.constants import ID_SEPARATOR from danswer.configs.danswerbot_configs import DANSWER_BOT_NUM_RETRIES from danswer.connectors.slack.utils import make_slack_api_rate_limited from danswer.connectors.slack.utils import SlackTextCleaner +from danswer.danswerbot.slack.constants import SLACK_CHANNEL_ID +from danswer.danswerbot.slack.tokens import fetch_tokens from danswer.utils.logger import setup_logger from danswer.utils.text_processing import replace_whitespaces_w_space diff --git a/backend/danswer/server/models.py b/backend/danswer/server/models.py index 8037ddfd2..1b72121f3 100644 --- a/backend/danswer/server/models.py +++ b/backend/danswer/server/models.py @@ -10,7 +10,6 @@ from pydantic import validator from pydantic.generics import GenericModel from danswer.auth.schemas import UserRole -from danswer.bots.slack.config import VALID_SLACK_FILTERS from danswer.configs.app_configs import MASK_CREDENTIAL_PREFIX from danswer.configs.constants import AuthType from danswer.configs.constants import DocumentSource @@ -18,6 +17,7 @@ from danswer.configs.constants import MessageType from danswer.configs.constants import QAFeedbackType from danswer.configs.constants import SearchFeedbackType from danswer.connectors.models import InputType +from danswer.danswerbot.slack.config import VALID_SLACK_FILTERS from danswer.db.models import AllowedAnswerFilters from danswer.db.models import ChannelConfig from danswer.db.models import Connector diff --git a/backend/danswer/server/slack_bot_management.py b/backend/danswer/server/slack_bot_management.py index 68af26157..4548be074 100644 --- a/backend/danswer/server/slack_bot_management.py +++ b/backend/danswer/server/slack_bot_management.py @@ -4,9 +4,9 @@ from fastapi import HTTPException from sqlalchemy.orm import Session from danswer.auth.users import current_admin_user -from danswer.bots.slack.config import validate_channel_names -from danswer.bots.slack.tokens import fetch_tokens -from danswer.bots.slack.tokens import save_tokens +from danswer.danswerbot.slack.config import validate_channel_names +from danswer.danswerbot.slack.tokens import fetch_tokens +from danswer.danswerbot.slack.tokens import save_tokens from danswer.db.engine import get_session from danswer.db.models import ChannelConfig from danswer.db.models import User diff --git a/backend/supervisord.conf b/backend/supervisord.conf index 69b13bd64..9075f0548 100644 --- a/backend/supervisord.conf +++ b/backend/supervisord.conf @@ -22,7 +22,7 @@ autorestart=true # relatively compute-light (e.g. they tend to just make a bunch of requests to # Vespa / Postgres) [program:celery_worker] -command=celery -A danswer.background.celery worker --pool=threads --loglevel=INFO --logfile=/var/log/celery_worker.log +command=celery -A danswer.background.celery worker --pool=threads --autoscale=3,10 --loglevel=INFO --logfile=/var/log/celery_worker.log stdout_logfile=/var/log/celery_worker_supervisor.log stdout_logfile_maxbytes=52428800 redirect_stderr=true @@ -41,7 +41,7 @@ autorestart=true # If not setup, this will just fail 5 times and then stop. # More details on setup here: https://docs.danswer.dev/slack_bot_setup [program:slack_bot_listener] -command=python danswer/bots/slack/listener.py +command=python danswer/danswerbot/slack/listener.py stdout_logfile=/var/log/slack_bot_listener.log stdout_logfile_maxbytes=52428800 redirect_stderr=true