生成式AI出現之後,許多筆記軟體也使用AI賦能了。他們的多半是在筆記軟體的界面整合一個隨時存取的AI助理,例如Notion AI,能夠協助使用者更快的整理大綱,還有生成文案。
現在Joplin能作到這點了!安裝非官方開發的延伸模組「Jarvis」即可將筆記傳送給LLM處理,即時在Jopin與LLM對話並生成Markdown筆記。
JARVIS這個縮寫很有創意,跟鋼鐵人裡面的智慧管家同名,但其實全名是:Joplin Assistant Running a Very Intelligent System
Ivon將在本文分享Jarvis的用法。
1. Jarvis的功能#
- 支援連接到線上(ChatGPT與Google Gemini)與本機語言模型(Ollama),使用後者的話,所有資料都是離線處理的,保護隱私
- 在Joplin筆記中聊天,將語言模型生成的文本直接放到筆記,不用再從其他軟體複製過來。
- 所有生成的文字都是Markdown格式,方便排版。
- 將本機筆記當作一種RAG資料庫,透過嵌入模型檢索,列出相關的筆記,協助整理散落的資料。
- 改寫選中的文本,重新整理想法。
- 在滑鼠指標停留的地方,接續寫下去。
- 針對筆記生成標題、總結、標籤,提供分類上的建議。
- 與Jarvis討論筆記的內容,快速抓出重點。
- 使用Semantic Scholar搜尋,進行學術文獻探討。
2. 前置設定#
2.1. 準備語言模型軟體#
雖然Jarvis可以連線到ChatGPT API,但是都用開源筆記軟體了,不如使用Local LLM吧!
我的設定以本機語言模型為主,讓Jarvis連線到Ollama服務,存取分詞器以及語言模型。
請先用 Docker架設Ollama,下載一個中文語言模型,參閱 著名的開源大型語言模型列表
再開啟Joplin,到延伸模組頁面搜尋「安裝Jarvis」。延伸模組若有問題請到 alondmnt/joplin-plugin-jarvis回報。
剛安裝會跳出整理相關筆記的提示,可以先按取消跳過。
2.2. 設定嵌入模型#
嵌入模型用於整理筆記內容,成為相關筆記搜尋的依據。
Jarvis預設的嵌入模型只支援英文,要中文的目前有 mxbai-embed-large,請先在Ollama的界面下載。
點選Joplin工具 → 選項 → 延伸模組 → Jarvis,切換到Related Notes頁面,模型選Ollama
模型名稱填寫
mxbai-embed-large
,API endpoint設定http://localhost:11434/api/embed
然後點選Joplin → 工具 → Jarvis → Toggle Related Notes
然後再點選Joplin → 工具 → Jarvis → Update Jarvis note DB,更新資料庫
2.3. 設定語言模型#
點選Joplin工具 → 選項 → 延伸模組 → Jarvis
切換到Annotations頁面,設定總結筆記的語言為中文
切換到Chat頁面,模型選Ollama
設定角色提示詞,例如我使用Qwen 2.5 3B,就設定輸出語言必須為繁體中文。下面輸入要使用的模型。API endpoint設定
http://localhost:11434/v1/chat/completions
3. 實際操作:跟語言模型聊天#
Chat with Jarvis的模式不會跳出一個視窗,而是直接將聊天內容印在筆記本上。由於LLM多半會使用Markdown輸出文字,這樣LLM生成文字的時候等同會自動利用Joplin的Markdown機制排版。這個模式適合用於創意發想階段,你能夠把跟LLM對話的紀錄都記下來,用Markdown格式帶著走。
點選Joplin筆記編輯欄位的機器人圖示,或者點Joplin → 工具 → Jarvis → Chat with Jarvis,開始聊天。
跳出第一個回覆,接著你要在User旁邊輸入提示詞,再點一次機器人圖示
它就會生成回應
如果你希望是在獨立視窗回應,點選Joplin → 工具 → Jarvis → Ask Jarvis,這裡就有許多快捷選單能選,例如請求LLM抓出這個段落是否有上下文不一致的問題?
它就會把觀點印出來。
4. 實際操作:改寫筆記內容#
讓LLM改些一段文字,使之更為流暢。不過這也要看你選的語言模型中文好不好就是了。
選取一個段落文字,點選Joplin → 工具 → Jarvis → Edit selection with Jarvis
輸入希望修改的內容
生成後取代文本
如果點選Joplin → 工具 → Jarvis → Auto-complete with Jarvis的話,則是在滑鼠指標停留的地方接續寫下去,不過它的段落偵測能力不太好的樣子。
另外可以點選Joplin → 工具 → Jarvis → Annoate notes: summary,為目前的筆記生成一份總結。
5. 實際操作:搜尋相關筆記#
全域搜尋跟當下撰寫的筆記內容有關的其他筆記。你還可以跟Joplin詢問整篇筆記的內容,用於複習一些知識點。
點選Joplin → 工具 → Jarvis →Toggle Related Notes
再點選Joplin → 工具 → Jarvis → Find Related Notes
老實說我覺得這功能對中文支援度不好,可能是嵌入模型用得不好,或是預設的context length只有2048個token太短了?還不如用Joplin內建的搜尋。
Jarvis還有一個Chat with your notes的功能,用法類似Chat with Jarvis,先按一下Jopin編輯器上方的機器人頭按鈕,輸入提示詞,再點選Joplin → 工具 → Jarvis → Chat With your notes
它會將其他筆記的摘要(非全文)送給語言模型處理,進行全域搜尋,然後再回答你的問題,最後利用Joplin內建的反向連結功能,指出它的答案來自哪一個筆記。