Sind Sie mit der Menge an Informationen, die Sie täglich sammeln, überfordert? Verlieren Sie sich oft in einem Meer von Markdown-Dateien, Videos, Webseiten und PDFs? Was wäre, wenn es eine Möglichkeit gäbe, all diese Inhalte nahtlos zu indizieren, zu durchsuchen und sogar mit ihnen zu interagieren wie nie zuvor? Willkommen in der Zukunft des persönlichen Wissensmanagements: Das Second Brain AI Agent Project.
Tiago Fortes bahnbrechende Idee des zweiten Gehirns hat die Art und Weise, wie wir über das Notieren denken, revolutioniert. Es geht nicht nur darum, Ideen aufzuschreiben; Es geht darum, ein leistungsstarkes Werkzeug zu schaffen, das Lernen und Kreativität fördert. Erfahren Sie hier mehr über „Building a Second Brain“ von Tiago Forte.
Automatisierte Indizierung: Kein manuelles Sortieren von Dateien mehr! Indizieren Sie automatisch den Inhalt Ihrer Markdown-Dateien zusammen mit den enthaltenen Links, z. B. PDF-Dokumenten, YouTube-Videos und Webseiten.
Intelligente Suchmaschine: Stellen Sie Fragen zu Ihren Inhalten und unsere KI liefert mithilfe des robusten OpenAI Large Language Model präzise Antworten. Es ist, als hätten Sie einen persönlichen Assistenten, der Ihre Inhalte in- und auswendig kennt!
Mühelose Integration: Ganz gleich, ob Sie der Second-Brain-Methode folgen oder Ihre eigene einzigartige Art des Notizenmachens haben, unser System fügt sich nahtlos in Ihren Stil ein und hilft Ihnen, die wahre Kraft Ihrer Informationen zu nutzen.
Erhöhte Produktivität: Verbringen Sie weniger Zeit mit der Organisation und mehr Zeit mit Innovationen. Durch den schnelleren und effizienteren Zugriff auf Ihre Informationen können Sie sich auf das Wesentliche konzentrieren.
Lassen Sie sich von Ihren Notizen und Inhalten nicht überfordern. Machen Sie sie zu Ihren Verbündeten für Wachstum, Innovation und Produktivität. Verändern Sie mit uns die Art und Weise, wie Sie Ihr persönliches Wissen verwalten, und wagen Sie den Sprung in die Zukunft.
Wenn Sie Notizen mithilfe von Markdown-Dateien wie bei der Second Brain-Methode oder auf Ihre eigene Weise machen, indiziert dieses Projekt automatisch den Inhalt der Markdown-Dateien und die enthaltenen Links (PDF-Dokumente, YouTube-Videos, Webseiten) und ermöglicht Ihnen, Fragen dazu zu stellen Ihre Inhalte mithilfe des OpenAI Large Language Model.
Das System basiert auf dem LangChain-Framework und dem ChromaDB-Vektorspeicher.
Das System verwendet als Eingabe ein Verzeichnis, in dem Sie Ihre Markdown-Notizen speichern. Ich mache zum Beispiel meine Notizen mit Obsidian. Das System verarbeitet dann jede Änderung in diesen Dateien automatisch mit der folgenden Pipeline:
Diagramm TD
A[Markdown-Dateien aus Ihrem Editor] -> B [Textdateien aus Markdown und Zeigern] -> C [Textblöcke] -> D [Vektordatenbank] -> E [Second Brain AI Agent]
Aus einer Markdown-Datei extrahiert transform_md.py den Text aus der Markdown-Datei, dann extrahiert es aus den Links in der Markdown-Datei PDF, URL und YouTube-Video und wandelt sie in Text um. Es gibt eine gewisse Unterstützung für das Extrahieren von Verlaufsdaten aus den Markdown-Dateien: Wenn es einen ## History
Abschnitt gibt oder der Dateiname History
enthält, wird die Datei entsprechend den Abschnitten <day> <month> <year>
wie ### 10 Sep 2023
in mehrere Teile aufgeteilt. ### 10 Sep 2023
.
Aus diesen Textdateien zerlegt transform_txt.py diese Textdateien in Blöcke, erstellt Vektoreinbettungen und speichert diese Vektoreinbettungen dann in einer Vektordatenbank.
Der Agent des zweiten Gehirns verwendet die Vektordatenbank, um den Kontext für die Fragestellung an das große Sprachmodell abzurufen. Dieser Vorgang wird als Retrieval-Augmented Generation (RAG) bezeichnet.
Tatsächlich ist der Prozess komplexer als ein Standard-RAG. Es analysiert die Frage und verwendet dann je nach Absicht eine andere Kette:
Flussdiagramm TD
A[Frage] -> C[/Get Intent/]
C --> E[Zusammenfassungsanforderung] --> EA[/Alle Chunks extrahieren/] --> EB[/Chunks zusammenfassen/]
C --> F[PDF- oder URL-Suche] --> FA[/URL extrahieren/]
C -> D[Aktivitätsbericht]
C -> G[Normale Frage]
D --> DA[/Zeitraummetadaten abrufen/] --> DB[/Betreffmetadaten abrufen/] --> DC[/Frage ohne Zeit extrahieren/] --> H[/Nächste Dokumentenaus der Vektordatenbank extrahieren ngefiltert durch die Metadaten/]
G --> GA[/Schritt zurück Frage/] --> GB[/Nächste Dokumente extrahierennaus der Vektordatenbank/]
H --> I[/Verwenden Sie die Dokumente als Kontextnum die Frage an den LLM zu stellen/]
GB -> I
Sie benötigen einen Python 3-Interpreter, poetry
und die installierten inotify-tools
. All dies wurde unter Fedora Linux 38 auf meinem Laptop und Ubuntu als neuestem CI-Workflow getestet. Lassen Sie mich wissen, ob es auf Ihrem System funktioniert.
Holen Sie sich den Quellcode:
$ git clone https://github.com/flepied/second-brain-agent.git
Kopieren Sie die .env-Beispieldatei und bearbeiten Sie sie entsprechend Ihren Einstellungen:
$ cp example.env .env
Installieren Sie die Abhängigkeiten mithilfe von Poesie:
$ poetry install
Es gibt einen Fehler zwischen Poetry, Torch und Pypi. Um ihn zu umgehen, gehen Sie einfach wie folgt vor:
$ poetry run pip install torch
Um dann die erstellte virtuelle Umgebung zu verwenden, gehen Sie wie folgt vor:
$ poetry shell
Um systemd-Dienste zu installieren, um die verschiedenen Skripts beim Start des Betriebssystems automatisch zu verwalten, verwenden Sie den folgenden Befehl (Sudo-Zugriff erforderlich):
$ ./install-systemd-services.sh
So sehen Sie die Ausgabe der MD- und TXT-Dienste:
$ journalctl --unit=sba-md.service --user
$ journalctl --unit=sba-txt.service --user
$ ./similarity.py " What is LangChain? " type=notes
Verwenden Sie den Vektorspeicher, um neue Verbindungen zwischen Noten zu finden:
$ ./smart_connections.py
Starten Sie diesen Befehl, um auf die Web-Benutzeroberfläche zuzugreifen:
$ 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
Hier ist ein Beispiel:
Installieren Sie die zusätzlichen Abhängigkeiten mithilfe von Poesie:
$ poetry install --with test
Und führen Sie dann die Tests aus, etwa so:
$ poetry run pytest
Bevor Sie eine PR einreichen, stellen Sie sicher, dass Sie Pre-Commit aktivieren:
poetry run pre-commit install