Êtes-vous submergé par les informations que vous collectez quotidiennement ? Vous retrouvez-vous souvent perdu dans une mer de fichiers démarques, de vidéos, de pages Web et de PDF ? Et s’il existait un moyen d’indexer, de rechercher et même d’interagir de manière transparente avec tout ce contenu comme jamais auparavant ? Bienvenue dans le futur de la gestion des connaissances personnelles : le projet Second Brain AI Agent.
L'idée révolutionnaire de Tiago Forte, le Second Cerveau, a révolutionné notre façon de penser la prise de notes. Il ne s'agit pas seulement de noter des idées ; il s'agit de créer un outil puissant qui améliore l'apprentissage et la créativité. Apprenez-en davantage sur Construire un deuxième cerveau par Tiago Forte ici.
Indexation automatisée : plus besoin de trier manuellement les fichiers ! Indexez automatiquement le contenu de vos fichiers markdown ainsi que les liens contenus, tels que les documents PDF, les vidéos YouTube et les pages Web.
Moteur de recherche intelligent : posez des questions sur votre contenu et notre IA vous fournira des réponses précises, en utilisant le robuste modèle de langage large OpenAI. C'est comme avoir un assistant personnel qui connaît parfaitement votre contenu !
Intégration sans effort : que vous suiviez la méthode Second Brain ou que vous ayez votre propre façon de prendre des notes, notre système s'intègre parfaitement à votre style, vous aidant à exploiter la véritable puissance de vos informations.
Productivité améliorée : passez moins de temps à vous organiser et plus de temps à innover. En accédant à vos informations plus rapidement et plus efficacement, vous pouvez vous concentrer sur ce qui compte vraiment.
Ne laissez pas vos notes et votre contenu vous submerger. Faites-en vos alliés en matière de croissance, d’innovation et de productivité. Rejoignez-nous pour transformer la façon dont vous gérez vos connaissances personnelles et faites le grand saut vers l’avenir.
Si vous prenez des notes à l'aide de fichiers markdown comme dans la méthode Second Brain ou à votre manière, ce projet indexe automatiquement le contenu des fichiers markdown et les liens contenus (documents pdf, vidéo youtube, pages web) et vous permet de poser des questions sur votre contenu à l’aide du grand modèle de langage OpenAI.
Le système est construit sur le framework LangChain et le magasin de vecteurs ChromaDB.
Le système prend en entrée un répertoire dans lequel vous stockez vos notes de démarque. Par exemple, je prends mes notes avec Obsidian. Le système traite ensuite automatiquement toute modification apportée à ces fichiers avec le pipeline suivant :
graphique TD
A[Fichiers Markdown de votre éditeur]-->B[Fichiers texte de markdown et pointeurs]-->C[Text Chunks]-->D[Base de données vectorielles]-->E[Second Brain AI Agent]
À partir d'un fichier markdown, transform_md.py extrait le texte du fichier markdown, puis à partir des liens à l'intérieur du fichier markdown, il extrait le pdf, l'url, la vidéo youtube et les transforme en texte. Il existe une certaine prise en charge pour extraire les données d'historique des fichiers markdown : s'il y a une section ## History
ou si le nom du fichier contient History
, le fichier est divisé en plusieurs parties selon les sections <day> <month> <year>
comme ### 10 Sep 2023
.
À partir de ces fichiers texte, transform_txt.py divise ces fichiers texte en morceaux, crée des intégrations vectorielles, puis stocke ces intégrations vectorielles dans une base de données vectorielles.
Le deuxième agent cérébral utilise la base de données vectorielles pour obtenir le contexte permettant de poser la question au grand modèle de langage. Ce processus est appelé génération augmentée par récupération (RAG).
En réalité, le processus est plus complexe qu’un RAG standard. Il s'agit d'analyser la question puis d'utiliser une chaîne différente selon l'intention :
organigramme TD
A[Question] --> C[/Obtenir l'intention/]
C --> E[Requête de résumé] --> EA[/Extraire tous les morceaux/] --> EB[/Résumer les morceaux/]
C --> F[Recherche PDF ou URL] --> FA[/Extract URL/]
C --> D[Rapport d'activité]
C --> G[Question régulière]
D --> DA[/Obtenir les métadonnées de la période/] --> DB[/Obtenir les métadonnées du sujet/] --> DC[/Extraire la question sans heure/] --> H[/Extraire les documents les plus prochesnde la base de données vectorielle nfiltré par les métadonnées/]
G --> GA[/Question reculer/] --> GB[/Extraire les documents les plus prochesnde la base de données vectorielles/]
H --> I[/Utiliser les documents comme contextepour poser la question au LLM/]
GB -> je
Vous avez besoin d'un interpréteur Python 3, poetry
et des inotify-tools
installés. Tout cela a été testé sous Fedora Linux 38 sur mon ordinateur portable et Ubuntu le dernier dans les workflows CI. Faites-moi savoir si cela fonctionne sur votre système.
Obtenez le code source :
$ git clone https://github.com/flepied/second-brain-agent.git
Copiez l'exemple de fichier .env et modifiez-le en fonction de vos paramètres :
$ cp example.env .env
Installez les dépendances en utilisant la poésie :
$ poetry install
Il y a un bug entre la poésie, la torche et pypi, pour contourner ce problème, faites simplement :
$ poetry run pip install torch
Ensuite, pour utiliser le virtualenv créé, faites :
$ poetry shell
Pour installer les services systemd afin de gérer automatiquement les différents scripts au démarrage du système d'exploitation, utilisez la commande suivante (nécessite un accès sudo) :
$ ./install-systemd-services.sh
Pour voir le résultat des services md et txt :
$ journalctl --unit=sba-md.service --user
$ journalctl --unit=sba-txt.service --user
$ ./similarity.py " What is LangChain? " type=notes
Utilisez le magasin vectoriel pour trouver de nouvelles connexions entre les notes :
$ ./smart_connections.py
Lancez cette commande pour accéder à l'interface utilisateur Web :
$ streamlit run second_brain_agent.py
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8502
Network URL: http://192.168.121.112:8502
Voici un exemple :
Installez les dépendances supplémentaires en utilisant la poésie :
$ poetry install --with test
Et puis lancez les tests, comme ceci :
$ poetry run pytest
Avant de soumettre un PR, assurez-vous d'activer le pré-engagement :
poetry run pre-commit install