from fastapi import APIRouter from service.dto import UserPromptRequest, BotResponse from api.function import ( generate_streaming_completion, generate_completion_non_streaming, ) from sse_starlette.sse import EventSourceResponse router = APIRouter(tags=["Bot"]) @router.post("/bot") async def bot_generator_general(user_prompt_request: UserPromptRequest): if user_prompt_request.streaming: return EventSourceResponse( generate_streaming_completion( user_prompt_request.prompt, user_prompt_request.streaming ) ) else: response, raw_references, references, metadata, scores = ( generate_completion_non_streaming( user_prompt_request.prompt, user_prompt_request.streaming ) ) return BotResponse( content=response, raw_references=raw_references, references=references, metadata=metadata, scores=scores, ) @router.post("/bot/{category_id}/{title}") async def bot_generator_spesific( category_id: int, title: str, user_prompt_request: UserPromptRequest ): pass @router.get("/bot/{category_id}/{title}") async def get_favourite_data(category_id: int, title: str, human_template): pass