Documentation du site BACR
Documentation complète du contenu du site basée sur l'application BACR
Table des matières
Commencer
Aperçu
BACR (Bot Assistant with Contextual Retrieval) est un assistant de chat IA sophistiqué qui combine le traitement avancé de documents, le routage intelligent des requêtes et la mémoire persistante. Construit avec Python, Flet, LangGraph et FAISS, BACR offre une expérience d'assistant IA de bureau puissante avec des capacités de compréhension de documents locales.
Points clés :
- 🤖 Routage IA multi-modèles avec classification automatique des requêtes
- 📚 Système RAG hybride avec recherche vectorielle et reclassement IA
- 💾 Mémoire inter-sessions qui apprend de vos conversations
- 🎨 Interface graphique de bureau moderne avec support des thèmes
- 🔐 Authentification Google OAuth sécurisée
- 📊 Suivi en temps réel de l'utilisation des jetons et des coûts
Pourquoi BACR ?
Pour les développeurs :
- Traitement local des documents sans envoi de fichiers vers des API externes
- Routage intelligent conscient du code pour les questions de programmation
- Support multi-format (PDF, DOCX, TXT, MD, et plus)
- Historique de conversation persistant entre les sessions
Pour les chercheurs :
- RAG avancé avec reclassement Jina AI pour une récupération précise des documents
- Suivi des citations - seules les sources citées sont affichées
- Mémoire inter-sessions pour construire des connaissances au fil du temps
- Exportation des conversations en PDF pour la documentation
Pour les équipes :
- Bases de données isolées par utilisateur pour la confidentialité
- Clés API gérées par serveur pour un déploiement facile
- Mode Zero Data Retention (ZDR) pour les utilisateurs soucieux de la confidentialité
- Suivi des coûts par requête pour la gestion du budget
Fonctionnalités
IA & Intelligence
- Routage intelligent en deux étapes : Les requêtes sont automatiquement classées et routées vers le modèle optimal
- Étape 1 : Gestion de fichiers → RAG (recherche de documents) → LLM direct
- Étape 2 : Codage → Raisonnement → Chat → Recherche
- Intégration de modèles : Accès à plus de 200 modèles IA incluant GPT-4, Claude, Gemini, DeepSeek, et plus
- Streaming en temps réel : Réponses jeton par jeton avec mises à jour de statut en direct
- Suivi des coûts : Surveillez l'utilisation des jetons et les coûts par requête avec des détails détaillés
- Modes de modèle : Basculez entre ZDR et non-ZDR
Traitement de documents (RAG)
- Recherche hybride : Combine la similarité vectorielle avec le reclassement Jina AI
- Embeddings locaux : Utilise un modèle d'embedding GGUF local - pas d'appels API pour les embeddings
- Filtrage intelligent : Le seuil de pertinence supprime automatiquement les morceaux non pertinents
- Citations intelligentes : Le LLM cite les sources comme (Doc 1), (Doc 2) ; seules les sources citées sont affichées
- Stockage persistant : Index FAISS spécifiques à l'utilisateur sauvegardés dans
~/.bacr/user_databases/ - Support multi-format : PDF, TXT, MD, DOCX, XLSX, PPTX, RTF, CSV, JSON, YAML, et plus
Mémoire & Contexte
- Mémoire inter-sessions : Mémoire sémantique LangMem qui persiste à travers toutes les conversations
- Bases de données spécifiques à l'utilisateur : Bases de données SQLite isolées par utilisateur pour la confidentialité
- Historique persistant : Toutes les conversations sauvegardées et consultables
- Conscient du contexte : Chaque session maintient un contexte indépendant avec suivi des fichiers
Interface utilisateur
- Interface Flet moderne : Interface de bureau propre et réactive construite avec Flutter
- Support des thèmes : Thèmes clair, sombre et système (persiste entre les redémarrages)
- Sessions à onglets : Plusieurs conversations indépendantes avec changement facile
- Contrôle de la taille de police : Taille de texte ajustable avec contrôles visuels
- Barre d'état : Nombre de fichiers en temps réel, utilisation des jetons et solde de crédit
- Mode d'exportation : Sélectionnez et exportez des messages spécifiques en PDF
Authentification & Sécurité
- Google OAuth : Connexion sécurisée avec support de connexion automatique via jetons de rafraîchissement
- Photos de profil : Récupérées fraîches depuis Google à chaque connexion
- Isolation des utilisateurs : Toutes les données séparées par compte utilisateur
- Protection de la vie privée : Les données utilisateur sont isolées
Architecture
BACR est construit avec une architecture modulaire qui sépare les préoccupations et permet une maintenance facile :
Couche Frontend :
- Interface graphique basée sur Flet avec composants réactifs
- Intégration Google OAuth pour l'authentification
- Mises à jour de statut en temps réel et réponses en streaming
- Gestion des thèmes et des préférences
Couche Core :
- Gestion de conversation basée sur LangGraph
- Système de routage intelligent en deux étapes
- RAG hybride avec recherche vectorielle et reclassement
- Mémoire inter-sessions avec LangMem
Couche Backend :
- Client API serveur pour l'authentification et la gestion des clés API
- Gestionnaire de modèles avec basculement de mode ZDR/non-ZDR
- Accès multi-modèles
- Suivi de l'utilisation des jetons et calcul des coûts
Couche de stockage :
- Bases de données SQLite spécifiques à l'utilisateur
- Index vectoriels FAISS pour les embeddings de documents
- Système de fichiers local pour la mise en cache des documents
Installation
Exigences
Configuration système requise :
- Système d'exploitation : Windows 10/11, Linux (Ubuntu 20.04+, Fedora, Arch), macOS 11+
- Python : 3.9 ou supérieur
- RAM : 4 Go minimum, 8 Go recommandé
- Espace disque : 2 Go pour l'application et les dépendances
- Internet : Requis pour l'authentification et l'accès API
Windows
Linux
MacOS
Non disponible
Référence CLI
Commandes
BACR fournit un ensemble complet de commandes slash pour gérer les fichiers, les sessions et les conversations.
Gestion des fichiers
/add <filepath>
- Ajouter un document au système RAG pour le contexte
- Supporte : PDF, TXT, MD, DOCX, XLSX, PPTX, RTF, CSV, JSON, YAML
- Exemple :
/add C:\Documents\report.pdf - Crée des embeddings et indexe le document pour la recherche
/remove <filename>
- Supprimer un fichier spécifique du système RAG
- Exemple :
/remove report.pdf - Supprime les embeddings et libère la mémoire
/files
- Lister tous les fichiers actuellement dans le système RAG
- Affiche les noms de fichiers et le nombre de morceaux
- Affiche la taille totale du contexte
/clear
- Supprimer tous les fichiers du système RAG
- Efface tous les embeddings de documents
- N'efface pas l'historique de chat
Gestion des sessions
/new-chat ou Ctrl+N
- Démarrer une nouvelle conversation dans un nouvel onglet
- Crée un contexte indépendant
- Les sessions précédentes restent accessibles
/close-tab ou Ctrl+W
- Fermer l'onglet de conversation actuel
- Sauvegarde la conversation dans la base de données
- Ne peut pas fermer le dernier onglet
/list-chats
- Afficher toutes les conversations sauvegardées
- Affiche les noms de session et les horodatages
- Affiche le nombre de messages
/load-chat <name_or_id>
- Charger une conversation dans l'onglet actuel
- Remplace la conversation actuelle
- Exemple :
/load-chat Project Discussion
/open-chat <name_or_id>
- Ouvrir une conversation dans un nouvel onglet
- Conserve la conversation actuelle
- Exemple :
/open-chat Meeting Notes
/rename-chat <new_name>
- Renommer la conversation actuelle
- Exemple :
/rename-chat Q1 Planning - Ne peut pas renommer les sessions temporaires
/delete-chat <name_or_id>
- Supprimer définitivement une conversation sauvegardée
- Exemple :
/delete-chat Old Notes - Ne peut pas être annulé
Historique de chat
/clear-chat ou /clear
- Effacer l'historique de chat pour la conversation actuelle
- Supprime tous les messages de l'affichage et de l'état
- Ne supprime pas la conversation sauvegardée
- Les fichiers restent dans le contexte
/export-chat
- Exporter la conversation actuelle vers un fichier
- Sauvegarde comme fichier texte horodaté
- Inclut tous les messages et métadonnées
- Emplacement :
~/.bacr/exports/
/import-chat <filepath>
- Importer une conversation depuis un fichier
- Supporte les formats TXT et PDF
- Ajoute à la conversation actuelle
- Exemple :
/import-chat notes.txt
Utilitaires
/tokens
- Afficher l'utilisation des jetons pour la conversation actuelle
- Affiche les jetons d'entrée, de sortie et totaux
- Affiche les coûts estimés
- Agrège sur toutes les sessions
/find <query>
- Rechercher dans tout l'historique de conversation
- Ouvre l'interface de recherche
- Met en évidence les messages correspondants
- Exemple :
/find API documentation
/help
- Ouvre la page d'aide dans le navigateur
- Affiche toutes les commandes disponibles
- Inclut des exemples et des descriptions
/quit
- Fermer l'application
- Sauvegarde toutes les conversations
- Efface les clés API de la mémoire
Configuration
Basculement de thème
- Cliquez sur l'icône de thème dans la barre supérieure
- Bascule entre clair/sombre
- La préférence persiste entre les redémarrages
Taille de police
- Cliquez sur les boutons de taille de police dans la barre supérieure
- Ajuste la taille du texte pour tous les messages
- Plage : 12px à 20px
Basculement du mode ZDR
- Cliquez sur le basculement ZDR dans les paramètres
- Bascule entre les modèles gratuits et premium
- Efface le cache du modèle lors du basculement
Commandes Shell
BACR supporte les commandes shell courantes pour la navigation du système de fichiers :
cd <directory>
- Changer le répertoire de travail actuel
- Exemple :
cd Documents - Affecte les opérations sur les fichiers
ls ou dir
- Lister les fichiers dans le répertoire actuel
- Affiche les noms de fichiers et les tailles
pwd
- Imprimer le répertoire de travail
- Affiche le chemin actuel
cat <file>
- Afficher le contenu du fichier
- Exemple :
cat notes.txt
mkdir <directory>
- Créer un nouveau répertoire
- Exemple :
mkdir projects
rm <file>
- Supprimer un fichier (utiliser avec précaution)
- Exemple :
rm temp.txt
cp <source> <dest>
- Copier un fichier
- Exemple :
cp file.txt backup.txt
mv <source> <dest>
- Déplacer ou renommer un fichier
- Exemple :
mv old.txt new.txt
etc
Exemples d'utilisation
Chat de base :
Utilisateur : Qu'est-ce que l'apprentissage automatique ?
BACR : [Diffuse la réponse avec statut en temps réel]
Traitement de documents :
Utilisateur : /add C:\Reports\Q4_Analysis.pdf
BACR : ✔︎ Q4_Analysis.pdf ajouté avec succès (45 morceaux)
Utilisateur : Quelles étaient les principales conclusions du T4 ?
BACR : Selon l'analyse du T4 (Doc 1), les principales conclusions étaient...
Sources :
• Q4_Analysis.pdf
Flux de travail multi-sessions :
Utilisateur : /new-chat
Utilisateur : /add project_spec.md
Utilisateur : Expliquez le flux d'authentification
BACR : [Fournit une explication détaillée avec citations]
Utilisateur : /rename-chat Auth Documentation
Utilisateur : /export-chat
BACR : ✔︎ Exporté vers ~/.bacr/exports/Auth_Documentation_2026-03-07.txt
Recherche dans l'historique :
Utilisateur : /find API endpoints
BACR : [Ouvre l'interface de recherche avec 12 correspondances sur 3 conversations]
Référence API
Authentification
BACR utilise Google OAuth 2.0 pour l'authentification des utilisateurs et la gestion des clés API basée sur le serveur.
Système RAG
Le système RAG (Retrieval-Augmented Generation) combine la recherche vectorielle, la recherche par mots-clés et le reclassement.
Sécurité
Stockage des données :
- Jetons de rafraîchissement : Registre Windows (chiffré)
- Conversations : SQLite local (spécifique à l'utilisateur)
- Documents : Index FAISS locaux (spécifiques à l'utilisateur)
- Préférences : Registre Windows (chiffré)
Transmission des données :
- Tous les appels API utilisent HTTPS
- Google OAuth utilise le flux PKCE
- Les jetons JWT expirent après 24 heures
- Les jetons de rafraîchissement expirent après 30 jours
Confidentialité :
- Données utilisateur isolées par hash
- Aucun contenu de document envoyé au serveur
- Seuls les embeddings stockés localement
- Utilisation des jetons enregistrée uniquement pour la facturation
Meilleures pratiques :
- Se déconnecter lorsque terminé pour effacer les clés API
- Ne pas partager les jetons de rafraîchissement
- Utiliser le mode ZDR pour les données sensibles
- Exporter régulièrement les conversations importantes
Ressources supplémentaires
Support
- Email : support@bacr.app
Légal
- Conditions d'utilisation : https://bacr.app/terms
- Politique de confidentialité : https://bacr.app/privacy
Version : 1.0.0
Dernière mise à jour : 7 mars 2026
Documentation : https://bacr.app/documentation
