Increase timeout for answer generation for slack bot

This commit is contained in:
Weves 2023-08-04 18:07:15 -07:00 committed by Chris Weaver
parent 70a379b601
commit df62648bbf
3 changed files with 12 additions and 2 deletions

View File

@ -171,3 +171,6 @@ DANSWER_BOT_NUM_DOCS_TO_DISPLAY = int(
os.environ.get("DANSWER_BOT_NUM_DOCS_TO_DISPLAY", "5")
)
DANSWER_BOT_NUM_RETRIES = int(os.environ.get("DANSWER_BOT_NUM_RETRIES", "5"))
DANSWER_BOT_ANSWER_GENERATION_TIMEOUT = int(
os.environ.get("DANSWER_BOT_ANSWER_GENERATION_TIMEOUT", "60")
)

View File

@ -1,6 +1,7 @@
from danswer.chunking.models import InferenceChunk
from danswer.configs.app_configs import DISABLE_GENERATIVE_AI
from danswer.configs.app_configs import NUM_GENERATIVE_AI_INPUT_DOCS
from danswer.configs.app_configs import QA_TIMEOUT
from danswer.datastores.qdrant.store import QdrantIndex
from danswer.datastores.typesense.store import TypesenseIndex
from danswer.db.models import User
@ -27,6 +28,7 @@ def answer_question(
question: QuestionRequest,
user: User | None,
disable_generative_answer: bool = DISABLE_GENERATIVE_AI,
answer_generation_timeout: int = QA_TIMEOUT,
) -> QAResponse:
query = question.query
collection = question.collection
@ -73,7 +75,7 @@ def answer_question(
)
try:
qa_model = get_default_backend_qa_model()
qa_model = get_default_backend_qa_model(timeout=answer_generation_timeout)
except (UnknownModelError, OpenAIKeyMissing) as e:
return QAResponse(
answer=None,

View File

@ -6,6 +6,7 @@ from slack_sdk.socket_mode import SocketModeClient
from slack_sdk.socket_mode.request import SocketModeRequest
from slack_sdk.socket_mode.response import SocketModeResponse
from danswer.configs.app_configs import DANSWER_BOT_ANSWER_GENERATION_TIMEOUT
from danswer.configs.app_configs import DANSWER_BOT_NUM_DOCS_TO_DISPLAY
from danswer.configs.app_configs import DANSWER_BOT_NUM_RETRIES
from danswer.configs.app_configs import QDRANT_DEFAULT_COLLECTION
@ -151,7 +152,11 @@ def process_slack_event(client: SocketModeClient, req: SocketModeRequest) -> Non
@retry(tries=DANSWER_BOT_NUM_RETRIES, delay=0.25, backoff=2, logger=logger)
def _get_answer(question: QuestionRequest) -> QAResponse:
answer = answer_question(question=question, user=None)
answer = answer_question(
question=question,
user=None,
answer_generation_timeout=DANSWER_BOT_ANSWER_GENERATION_TIMEOUT,
)
if not answer.error_msg:
return answer
else: