Spaces:
Sleeping
Sleeping
File size: 1,176 Bytes
338517d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | """``/api/chatbot`` — Global AI chatbot endpoint.
Accessible from every page (except training sessions which have their
own AI Mentor). Helps users understand the platform, navigate features,
and learn about cybersecurity concepts.
"""
from typing import Optional
from fastapi import APIRouter, Depends, HTTPException, Request
from pydantic import BaseModel
from app.core.auth import get_current_user
from app.services.chatbot_service import get_chatbot_response
router = APIRouter()
class ChatbotRequest(BaseModel):
message: str
page: str = ""
lang: str = "ar"
conversationHistory: Optional[list[dict[str, str]]] = None
class ChatbotResponse(BaseModel):
response: str
@router.post("/api/chatbot")
async def ask_chatbot(
req: ChatbotRequest,
request: Request,
user: dict = Depends(get_current_user),
):
if not req.message:
raise HTTPException(status_code=400, detail="الرسالة مطلوبة")
result = await get_chatbot_response(
message=req.message,
conversation_history=req.conversationHistory,
page=req.page,
lang=req.lang,
)
return ChatbotResponse(response=result)
|