add new standard answer test endpoint (#1789)

This commit is contained in:
pablodanswer
2024-07-12 10:06:30 -07:00
committed by GitHub
parent e90c66c1b6
commit c7af6a4601
5 changed files with 80 additions and 0 deletions

View File

@@ -4,6 +4,16 @@ from danswer.configs.constants import DocumentSource
from danswer.search.enums import SearchType
from danswer.search.models import ChunkContext
from danswer.search.models import RetrievalDetails
from danswer.server.manage.models import StandardAnswer
class StandardAnswerRequest(BaseModel):
message: str
slack_bot_categories: list[str]
class StandardAnswerResponse(BaseModel):
standard_answers: list[StandardAnswer] = []
class DocumentSearchRequest(ChunkContext):

View File

@@ -1,10 +1,14 @@
from fastapi import APIRouter
from fastapi import Depends
from fastapi import HTTPException
from pydantic import BaseModel
from sqlalchemy.orm import Session
from danswer.auth.users import current_user
from danswer.configs.danswerbot_configs import DANSWER_BOT_TARGET_CHUNK_PERCENTAGE
from danswer.danswerbot.slack.handlers.handle_standard_answers import (
oneoff_standard_answers,
)
from danswer.db.engine import get_session
from danswer.db.models import User
from danswer.db.persona import get_persona_by_id
@@ -25,6 +29,8 @@ from danswer.search.utils import dedupe_documents
from danswer.search.utils import drop_llm_indices
from danswer.utils.logger import setup_logger
from ee.danswer.server.query_and_chat.models import DocumentSearchRequest
from ee.danswer.server.query_and_chat.models import StandardAnswerRequest
from ee.danswer.server.query_and_chat.models import StandardAnswerResponse
logger = setup_logger()
@@ -155,3 +161,21 @@ def get_answer_with_quote(
)
return answer_details
@basic_router.get("/standard-answer")
def get_standard_answer(
request: StandardAnswerRequest,
db_session: Session = Depends(get_session),
_: User | None = Depends(current_user),
) -> StandardAnswerResponse:
try:
standard_answers = oneoff_standard_answers(
message=request.message,
slack_bot_categories=request.slack_bot_categories,
db_session=db_session,
)
return StandardAnswerResponse(standard_answers=standard_answers)
except Exception as e:
logger.error(f"Error in get_standard_answer: {str(e)}", exc_info=True)
raise HTTPException(status_code=500, detail="An internal server error occurred")