Vision produit
PBOT GPT est une interface de chat conçue pour être à la fois agréable à utiliser, techniquement démonstrative et facile à connecter à de futurs cas d’usage métier.
Cas d’usage
- Assistant IA personnel ou interne.
- Frontend de démonstration pour architecture LLM hybride.
- Base de travail pour un futur produit SaaS conversationnel.
- Client de test pour valider le comportement GPU / CPU / Web de l’API Centrale.
Fonctionnalités principales
Conversation et mémoire
- Création, suppression et historique de conversations.
- Messages persistés en base avec rôle, contenu, modèle et métadonnées.
- Reconstruction du contexte conversationnel pour les nouveaux prompts.
Réponses enrichies
- Affichage du contenu markdown.
- Sources web affichées sous la réponse.
- Sources persistées et réaffichées après rechargement.
- Stockage du mode web et du backend utilisé pour restitution fidèle de l’historique.
Exécution intelligente
- Transmission du mode web par défaut en
auto. - Fallback transparent vers le CPU si besoin, orchestré par l’API Centrale.
- Gestion des erreurs d’exécution avec retour UX lisible.
Expérience utilisateur
- Thème sombre cohérent type glassmorphism.
- Scroll indépendant du bloc de chat.
- Envoi asynchrone pour fluidité perçue.
- Animation de frappe pendant génération.
- Auto-scroll intelligent pour éviter les sauts quand l’utilisateur lit l’historique.
- Affichage discret du mode utilisé : web enrichi, local GPU ou local CPU.
Architecture
| Pattern | Application web Flask avec frontend server-rendered + AJAX pour le chat |
|---|---|
| Front | Templates HTML, CSS factorisé, JavaScript vanilla, rendu markdown |
| Back | Flask, psycopg2, requests, sessions serveur |
| Dépendance centrale | L’application ne parle pas directement au LLM, mais à l’API Centrale |
Modèle de données
Table conversations
iduser_idtitlecreated_atupdated_at
Table messages
conversation_idrolecontentmodel_namesources_jsonweb_modebackend_usedcreated_at
Stack technique
Choix techniques intéressants
- CSS factorisé dans un fichier dédié pour faciliter la maintenance et la cohérence visuelle.
- Rendu markdown côté client pour préserver une expérience riche.
- Sessions Flask pour authentification simple et efficace.
- Backend minimaliste mais extensible, idéal pour faire évoluer l’application en produit.
Flux applicatif
- Connexion utilisateur.
- Ouverture ou création d’une conversation.
- Construction du prompt avec historique récent.
- Appel à l’API Centrale avec le modèle choisi et le mode web par défaut.
- Réception de la réponse enrichie et persistence des métadonnées associées.
- Affichage immédiat puis restitution durable dans l’historique.
Sécurité et gouvernance
- Authentification utilisateur avec mot de passe hashé en base.
- Sessions sécurisées via secret key et paramètres cookie.
- Clé d’API côté serveur pour communiquer avec l’API Centrale.
- Pas d’exposition directe des moteurs LLM au navigateur.
Évolutions possibles
- Recherche plein texte dans l’historique des conversations.
- Streaming token par token pour une expérience encore plus proche des interfaces premium.
- Favoris, tags et export de conversations.
- Mode multi-projets ou multi-contextes.
- Connexion à d’autres outils métier : datasets, dashboards, matching CV/offres, etc.