from fastapi import APIRouter, Depends, HTTPException, Request from pydantic import BaseModel import routes.chatbot_handler as chatbot_handler import datetime import random router = APIRouter(tags=["ragchat"]) # settings= get_settings() # تعریف مدل داده‌ها برای درخواست‌های API class RagQueryModal(BaseModel): query: str async def create_chat_id(): date = str((datetime.datetime.now())).replace(' ','-').replace(':','').replace('.','-') chat_id = f'{date}-{random.randint(100000, 999999)}' return chat_id @router.post("/emergency_call") async def emergency_call(payload: RagQueryModal): print('emergency generate answer ...') chat_id = await create_chat_id() answer = await chatbot_handler.ask_chatbot_avalai(payload.query, chat_id) # print('emergency answer ...', answer) await chatbot_handler.credit_refresh() print('*** ... ready for next ... ***') return {"answer": answer} @router.post("/run_chat") async def run_chat(payload: RagQueryModal, request: Request): # request.state.app print('run_chat start ...') chat_id = await create_chat_id() answer = await chatbot_handler.ask_chatbot(payload.query, chat_id) print('*** ... ready for next ... ***') return {"answer": answer}