Spaces:
Sleeping
Sleeping
| """``/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 | |
| 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) | |