rag_qavanin_api/routes/rag_base.py
2025-11-19 11:50:41 +00:00

48 lines
1.3 KiB
Python

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}