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.pyetchat_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))