Un agent IA qui oublie vos réservations après chaque session ? C'est fini. Voici comment le connecter à une base de données pour qu'il retienne tout, comme un vrai service client.
UN AGENT IA QUI SAUVEGARDE VOS RÉSERVATIONS ? OUI, C'EST POSSIBLE
Imaginez un assistant IA qui gère vos réservations comme un vrai service client : il comprend vos demandes, calcule les prix et confirme les créneaux. Sauf que, jusqu’ici, il oubliait tout après chaque session. Ce tutoriel montre comment lui ajouter une mémoire permanente grâce à une base de données Postgres.
L’idée ? Transformer un simple prototype en outil fiable, capable de retenir les réservations même après un redémarrage. Deux méthodes sont détaillées : une en local avec Docker pour tester rapidement, et une autre dans le cloud pour une utilisation professionnelle.
RÉCAPITULATIF : CE QUE L'AGENT SAIT FAIRE
Cet agent LangGraph gère un processus de réservation en 15 minutes, comme un humain. Ses capacités incluent :
- Répondre aux questions des clients et comprendre leurs besoins.
- Calculer le prix du service et l’afficher.
- Proposer des créneaux disponibles en vérifiant les réservations déjà enregistrées.
- Enregistrer une réservation confirmée avec tous les détails (technicien, horaire, adresse, prix).
Le tout, sans oublier aucune information après une fermeture de l’application.
DEUX MODES DE STOCKAGE : MÉMOIRE TEMPORAIRE OU PERMANENTE
L’agent propose deux façons de stocker les données :
- En mémoire vive (pour les tests rapides) : si la variable
DATABASE_URLn’est pas définie, l’agent utilise une mémoire temporaire. Aucune table n’est créée dans une base de données. - Avec Postgres (pour une utilisation durable) : les réservations sont enregistrées dans une base de données relationnelle, accessible même après un redémarrage.
PRÉPARER L'ENVIRONNEMENT POUR TESTER EN LOCAL
Pour tester l’agent en local avec une interface Streamlit, voici les étapes à suivre :
poetry install
cp .env.example .env
Ces commandes installent les dépendances nécessaires et créent un fichier .env à partir d’un exemple. Il faut ensuite y ajouter la clé API OpenAI et laisser DATABASE_URL vide pour ce test.
LANCER L'INTERFACE STREAMLIT POUR TESTER L'AGENT
Une fois les dépendances installées, lancez l’application avec :
poetry run streamlit run customerserviceagent/streamlit_app.py
L’interface s’ouvre sur localhost:8501. Vous pouvez interagir avec l’agent pour tester ses réponses. Par exemple, si vous demandez un service de nettoyage, il vous proposera directement un prix s’il a toutes les informations nécessaires. Sinon, il vous demandera les détails manquants (taille, adresse) avant de calculer.
POURQUOI LA MÉMOIRE TEMPORAIRE NE SUFFIT PAS
Avec la mémoire vive, l’agent fonctionne bien pour des démonstrations rapides. Mais dès que vous fermez l’application, tout disparaît. Les réservations, les préférences des clients, tout est perdu. Pour un outil utilisable en conditions réelles, il faut une mémoire permanente : une base de données.
TESTER AVEC POSTGRES EN LOCAL GRÂCE À DOCKER
Docker permet de tester l’agent avec une vraie base Postgres sans installer PostgreSQL sur votre ordinateur. Voici comment faire :
docker compose down -v
Cette commande nettoie les conteneurs et volumes Docker existants pour éviter les conflits.
CONFIGURER POSTGRES AVEC DOCKER COMPOSE
Le fichier docker-compose.yml définit un conteneur PostgreSQL version 16 avec les paramètres suivants :
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_USER: booking
POSTGRES_PASSWORD: booking
POSTGRESDB: bookingagent
ports:
- "5432:5432"
volumes:
- booking_pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pgisready -U booking -d bookingagent"]
interval: 5s
timeout: 5s
retries: 10
volumes:
booking_pgdata:
Ce fichier crée un serveur PostgreSQL dans un conteneur Docker, accessible sur le port 5432. Les données sont stockées dans un volume Docker nommé booking_pgdata, ce qui garantit leur persistance même après l’arrêt du conteneur.
DÉMARRER LE CONTENEUR POSTGRES AVEC DOCKER
Lancez le conteneur avec :
docker compose up -d
Docker télécharge l’image officielle de PostgreSQL et démarre le serveur de base de données dans un conteneur isolé. L’application Streamlit, elle, reste locale et se connecte au conteneur via localhost:5432.
CONFIGURER LA CONNEXION À LA BASE DE DONNÉES
Dans le fichier .env, ajoutez la ligne suivante pour indiquer à l’agent où se trouve la base de données :
DATABASEURL=postgresql://booking:booking@localhost:5432/bookingagent
Cette URL contient les informations de connexion :
postgresql://: le protocole de connexion.booking:booking: le nom d’utilisateur et le mot de passe.localhost:5432: l’adresse et le port du serveur.booking_agent: le nom de la base de données.
LANCER L'AGENT AVEC LA BASE DE DONNÉES ACTIVE
Relancez l’application Streamlit avec la base de données configurée :
poetry run streamlit run customerserviceagent/streamlit_app.py
Cette fois, l’agent utilise Postgres pour stocker les réservations. Pour vérifier que tout fonctionne, ouvrez une deuxième fenêtre de navigateur sur localhost:8501 et demandez le même service. L’agent ne proposera pas le créneau que vous aviez réservé précédemment, car il a bien enregistré cette information dans la base de données.
CE QUI SE PASSE EN ARRIÈRE-PLAN
Streamlit et Docker Postgres fonctionnent comme deux processus séparés. Redémarrer Streamlit ne relance que l’application Python. Le conteneur Postgres, lui, continue de tourner. Les données sont stockées dans le volume Docker, pas dans la mémoire de Streamlit. Ainsi, même après un redémarrage de l’interface, l’agent retrouve les réservations enregistrées.
Seul un arrêt complet du conteneur et la suppression du volume (docker compose down -v) effacent les données.
docker compose down -v
[+] down 3/3 ✔ Container customer-service-agent-postgres-1 Removed 0.2s
✔ Volume customer-service-agentbookingpgdata Removed 0.1s
✔ Network customer-service-agent_default Removed
LES AVANTAGES DE DOCKER POUR CE PROJET
Docker offre plusieurs bénéfices pour tester cet agent :
- Isolation : le conteneur Postgres est isolé du reste de l’ordinateur. Vous pouvez l’arrêter ou le supprimer sans affecter d’autres applications.
- Reproductibilité : tout le monde obtient le même environnement grâce au fichier
docker-compose.yml. Pas besoin d’installer PostgreSQL localement. - Persistance : les données sont stockées dans un volume Docker, donc elles survivent à l’arrêt du conteneur.
- Simplicité : une seule commande (
docker compose up -d) suffit pour tout démarrer.
TESTER AVEC UNE BASE POSTGRES DANS LE CLOUD
Pas besoin de Docker si vous utilisez une base de données hébergée, comme Supabase ou Amazon RDS. Voici comment faire :
1. Créez une base de données Postgres dans le tableau de bord de votre fournisseur cloud.
2. Copiez la chaîne de connexion fournie par le service (exemple : postgresql://user:password@host:port/database).
3. Collez cette chaîne dans le fichier .env à la place de DATABASE_URL.
4. Relancez l’agent avec la même commande :
poetry run streamlit run customerserviceagent/streamlit_app.py
Le comportement de l’agent est identique à celui avec Docker. La seule différence ? La base de données tourne sur un serveur distant au lieu d’être locale.
CE QUE ÇA CHANGE POUR VOTRE AGENT IA
Grâce à Postgres, l’agent passe du statut de prototype à celui d’outil utilisable en conditions réelles. Il peut désormais :
- Stocker les réservations de manière permanente.
- Vérifier les créneaux disponibles en temps réel.
- Retrouver les préférences des clients après une fermeture.
C’est la différence entre un chatbot qui oublie tout et un service client fiable.
ET APRÈS ? LES PROCHAINES ÉTAPES POUR UN AGENT PRO
Ce projet est encore en Développement. Voici quelques améliorations possibles :
- Ajouter d’autres canaux de communication, comme WhatsApp.
- Intégrer une couche de sécurité pour réduire les risques d’injection de prompts.
- Améliorer l’expérience utilisateur avec un workflow de réservation plus fluide.
- Ajouter des fonctionnalités avancées, comme des rappels automatiques par email.
L’objectif ? Transformer cet agent en un outil capable de fournir une réelle valeur ajoutée pour les entreprises.
- Towards Data Science
L'indépendance de CLODCO est votre garantie.
Pour que l'actualité de l'IA reste sans filtre et sans concession, votre soutien est indispensable. Votre contribution est le seul moteur de notre liberté éditoriale.
Soutenir CLODCO


