Ce projet Generative AI Prod a été conçu comme une base prête pour la production d’une API IA : un serveur FastAPI qui gère le chat IA, l’analyse automatisée de texte, la sauvegarde/recherche de conversations et les fonctionnalités d’administration.
Technologies Utilisées
- Backend : FastAPI (Python)
- Base de Données : MongoDB (stockage des conversations, utilisateurs)
- Cache : Redis (accélération et sessions)
- Auth : JWT + services admin
- Déploiement : Procfile (Heroku ou équivalent), runtime.txt, startup.sh
Endpoints Principaux
POST /api/chat
: Chat IA (gestion parchat_router.py
etchat_service.py
)POST /api/analyse
: Analyse de texte/document (géré paranalyse_router.py
+analysis_service.py
)GET /api/conversations/{id}
: Récupération de conversations sauvegardéesPOST /api/admin/...
: Fonctions administratives (gestion utilisateurs, logs, etc.)
Architecture (dossiers)
main.py
: point d’entrée FastAPImodels/
: schémas de données (Pydantic + Mongo)routes/
: routes FastAPI (chat_router.py
,analyse_router.py
,admin_router.py
)services/
: logique métier (chat_service
,analysis_service
,admin_services
,saveConversation_service
)utils/
: configuration du cache (Redis) et promptsrequirements.txt
: dépendancesProcfile
/runtime.txt
: config de déploiement cloudstartup.sh
: script de démarrage
Base de Données
- MongoDB :
users
(infos et droits d’accès)conversations
(messages, contexte)analysis
(résultats d’analyse de texte)
Fonctionnalités Clés
- Chat conversationnel basé IA
- Analyse de texte automatisée
- Sauvegarde et récupération de conversations
- Interface d’administration
- Cache/accélération via Redis
- Déploiement cloud (Heroku ou équivalent)
Démonstration
L’API expose sa documentation Swagger à l’URL /docs
, permettant de tester facilement les endpoints
(chat, analyse, administration).
Conclusion
Generative AI Prod propose une API robuste pour déployer des services IA en production : conversation, analyse, gestion et persistance, avec une architecture claire et modulaire.
routes/chat_router.py (extrait représentatif “comme celui-là”)
from fastapi import APIRouter, Depends, HTTPException
from pydantic import BaseModel
from typing import Dict, Any, Optional
from services.chat_service import ChatService
from services.mongodb_connection import get_database
router = APIRouter(prefix="/api/chat", tags=["chat"])
class ChatRequest(BaseModel):
message: str
conversation_id: Optional[str] = None
@router.post("")
async def chat_endpoint(req: ChatRequest, db=Depends(get_database)):
"""
Reçoit un message, appelle le ChatService, sauvegarde la conversation en MongoDB,
puis renvoie la réponse générée par le modèle IA.
"""
try:
chat_service = ChatService(db)
result = await chat_service.process(req.message, req.conversation_id)
return {"ok": True, "data": result}
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))