您是否對每天收集的資訊感到不知所措?您是否經常發現自己迷失在 Markdown 文件、影片、網頁和 PDF 的海洋中?如果有一種方法能夠以前所未有的方式無縫地索引、搜尋甚至與所有這些內容進行交互,該怎麼辦?歡迎來到個人知識管理的未來:第二大腦人工智慧代理計畫。
蒂亞戈·福爾特(Tiago Forte)關於第二大腦的開創性想法徹底改變了我們思考筆記的方式。這不僅僅是記下想法;它是關於創建一個增強學習和創造力的強大工具。點擊此處了解有關蒂亞戈·福特 (Tiago Forte) 撰寫的《構建第二大腦》的更多資訊。
自動索引:不再需要手動對文件進行排序!自動索引 Markdown 文件的內容以及包含的鏈接,例如 PDF 文件、YouTube 影片和網頁。
智慧搜尋引擎:詢問有關您的內容的問題,我們的人工智慧將使用強大的 OpenAI 大語言模型提供精確的答案。這就像擁有一位對您的內容瞭如指掌的私人助理!
輕鬆整合:無論您遵循第二大腦方法還是擁有自己獨特的筆記方式,我們的系統都能與您的風格無縫集成,幫助您充分利用訊息的真正力量。
提高生產力:花更少的時間組織,花更多的時間進行創新。透過更快、更有效地存取您的訊息,您可以專注於真正重要的事情。
不要讓你的筆記和內容淹沒你。讓他們成為您在成長、創新和生產力方面的盟友。與我們一起改變您管理個人知識的方式並邁向未來。
如果您使用Markdown 文件(例如“第二大腦”方法或使用您自己的方式)做筆記,該項目會自動索引Markdown 文件的內容和包含的連結(pdf 文件、youtube 影片、網頁),並允許您提出以下問題:使用 OpenAI 大語言模型的內容。
該系統建立在 LangChain 框架和 ChromaDB 向量儲存之上。
系統會將您儲存 Markdown 筆記的目錄作為輸入。例如,我用 Obsidian 做筆記。然後系統會透過以下管道自動處理這些文件中的任何變更:
圖解TD
A[編輯器中的 Markdown 檔案]-->B[Markdown 和指標中的文字檔案]-->C[文字區塊]-->D[向量資料庫]-->E[第二大腦 AI 代理程式]
從 Markdown 文件中,transform_md.py 從 Markdown 文件中提取文本,然後從 Markdown 文件內的連結中提取 pdf、url、youtube 影片並將其轉換為文字。支援從 Markdown 文件中提取歷史資料:如果有## History
部分或檔案名稱包含History
,檔案會根據<day> <month> <year>
部分拆分為多個部分,例如### 10 Sep 2023
。
從這些文字檔案中,transform_txt.py 將這些文字檔案分成區塊,建立向量嵌入,然後將這些向量嵌入儲存到向量資料庫中。
第二個大腦代理程式使用向量資料庫來獲取向大型語言模型詢問問題的上下文。這個過程稱為檢索增強生成(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擷取最近的文檔 n透過元資料過濾/]
G --> GA[/後退問題/] --> GB[/從向量資料庫n提取最近的文件/]
H --> I[/使用文件作為上下文n向法學碩士提問/]
國標 --> 我
您需要安裝 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