毎日収集する情報に圧倒されていませんか?マークダウン ファイル、ビデオ、Web ページ、PDF の海の中で迷ってしまうことがよくありますか?これまでにない方法でシームレスにインデックスを作成し、検索し、さらにはこれらすべてのコンテンツを操作できる方法があるとしたらどうでしょうか? Personal Knowledge Management の未来へようこそ: 第 2 回 Brain AI エージェント プロジェクト。
Tiago Forte の Second Brain という画期的なアイデアは、メモを取ることについての私たちの考え方に革命をもたらしました。単にアイデアを書き留めるだけではありません。それは、学習と創造性を高める強力なツールを作成することです。 Tiago Forte による第 2 の脳の構築について詳しくは、こちらをご覧ください。
自動インデックス作成: ファイルを手動で並べ替える必要はもうありません。マークダウン ファイルのコンテンツと、含まれるリンク (PDF ドキュメント、YouTube ビデオ、Web ページなど) のインデックスを自動的に作成します。
スマート検索エンジン: コンテンツについて質問すると、当社の AI が堅牢な OpenAI 大規模言語モデルを使用して正確な回答を提供します。あなたのコンテンツを隅々まで知り尽くしたパーソナルアシスタントがいるようなものです。
簡単な統合: Second Brain の方法に従う場合でも、独自のメモ取り方法を使用する場合でも、当社のシステムはあなたのスタイルとシームレスに統合し、情報の真の力を活用するのに役立ちます。
生産性の向上: 整理に費やす時間を減らし、イノベーションに多くの時間を費やします。情報に迅速かつ効率的にアクセスすることで、本当に重要なことに集中できます。
メモやコンテンツに圧倒されないようにしてください。彼らを成長、革新、生産性の味方にしてください。私たちと一緒に個人知識の管理方法を変革し、未来への飛躍を目指しましょう。
Second Brain の方法や独自の方法でマークダウン ファイルを使用してメモを取る場合、このプロジェクトはマークダウン ファイルのコンテンツと含まれるリンク (PDF ドキュメント、YouTube ビデオ、Web ページ) に自動的にインデックスを作成し、質問できるようにします。 OpenAI 大規模言語モデルを使用してコンテンツを作成します。
このシステムは、LangChain フレームワークと ChromaDB ベクター ストア上に構築されています。
システムは、マークダウン ノートを保存するディレクトリを入力として受け取ります。たとえば、私は Obsidian でメモを取ります。その後、システムは次のパイプラインを使用して、これらのファイルの変更を自動的に処理します。
グラフTD
A[エディターからのマークダウン ファイル]-->B[マークダウンとポインターからのテキスト ファイル]-->C[テキスト チャンク]-->D[ベクター データベース]-->E[Second Brain AI Agent]
マークダウン ファイルから、transform_md.py はマークダウン ファイルからテキストを抽出し、マークダウン ファイル内のリンクから PDF、URL、YouTube ビデオを抽出してテキストに変換します。マークダウン ファイルから履歴データを抽出するためのサポートがいくつかあります。 ## History
セクションがある場合、またはファイル名にHistory
が含まれる場合、ファイルは### 10 Sep 2023
のような<day> <month> <year>
セクションに従って複数の部分に分割されます。 ### 10 Sep 2023
。
これらのテキスト ファイルから、transform_txt.py はこれらのテキスト ファイルをチャンクに分割し、ベクトル埋め込みを作成し、これらのベクトル埋め込みをベクトル データベースに保存します。
2 番目の脳エージェントは、ベクトル データベースを使用して、大規模言語モデルに質問するためのコンテキストを取得します。このプロセスは、検索拡張生成 (RAG) と呼ばれます。
実際には、このプロセスは標準の RAG よりも複雑です。質問を分析し、意図に応じて別のチェーンを使用します。
フローチャート TD
A[質問] --> C[/意図を取得/]
C --> E[要約リクエスト] --> EA[/すべてのチャンクを抽出/] --> EB[/チャンクを要約/]
C --> F[pdf または URL ルックアップ] --> FA[/URL の抽出/]
C --> D[活動報告]
C --> G[通常の質問]
D --> DA[/期間メタデータを取得/] --> DB[/主題メタデータを取得/] --> DC[/時間なしで質問を抽出/] --> H[/ベクター データベースからn最も近い文書を抽出メタデータによってフィルタリングされます/]
G --> GA[/質問を戻す/] --> GB[/ベクトル データベースから最も近いドキュメントをn抽出/]
H --> I[/文書をコンテキストとして使用してnLLM に質問する/]
GB --> 私
Python 3 インタープリター、 poetry
、およびinotify-tools
がインストールされている必要があります。これらはすべて、私のラップトップ上の Fedora Linux 38 と CI ワークフローの最新の Ubuntu でテストされました。あなたのシステムで動作するかどうか教えてください。
ソースコードを取得します。
$ git clone https://github.com/flepied/second-brain-agent.git
サンプルの .env ファイルをコピーし、設定に合わせて編集します。
$ cp example.env .env
詩を使用して依存関係をインストールします。
$ poetry install
詩、トーチ、pypi の間にはバグがあります。回避するには次のようにします。
$ poetry run pip install torch
次に、作成した virtualenv を使用するには、次の手順を実行します。
$ poetry shell
systemd サービスをインストールして、オペレーティング システムの起動時にさまざまなスクリプトを自動的に管理するには、次のコマンドを使用します (sudo アクセスが必要です)。
$ ./install-systemd-services.sh
md サービスと txt サービスの出力を確認するには:
$ journalctl --unit=sba-md.service --user
$ journalctl --unit=sba-txt.service --user
$ ./similarity.py " What is LangChain? " type=notes
ベクトル ストアを使用して、音符間の新しい接続を見つけます。
$ ./smart_connections.py
次のコマンドを起動して Web UI にアクセスします。
$ 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
以下に例を示します。
詩を使用して追加の依存関係をインストールします。
$ poetry install --with test
そして、次のようにテストを実行します。
$ poetry run pytest
PR を送信する前に、必ずプリコミットをアクティブ化してください。
poetry run pre-commit install