mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-09-21 23:04:49 +02:00
add new standard answer test endpoint (#1789)
This commit is contained in:
@@ -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):
|
||||
|
@@ -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")
|
||||
|
Reference in New Issue
Block a user