# OLLAMA + RAGFLOW 經驗談 [TOC] ## 前言 今天是 2025.04.02,我重感冒在家,閒來無事便玩起了 ollama 與 ragflow。起因是我的 github-copilot 每次到月中免費的額度就用完了(真的很好用!),看著我的電競筆電有 GTX1650 顯卡 (4GB GDDR),加上之前為了訓練簡單的 CNN 模型所以把 cuda driver 都安裝好了。既然這樣為何不在本地端實現一個協助程式撰寫的助理呢?我便開始鑽研 ollama。 ## OLLAMA ### 安裝 install - ollama 的下載與安裝在 Linux 與 Windows 中都很方便,因為我同時有在使用 WSL,因此兩條路我都嘗試過。 - Linux (Ubuntu,WSL) 我採用的是 `snap install ollama` 指令直接安裝 - Windows 則是[從這裡](https://ollama.com/download)下載約 1GB 的安裝檔`OllamaSetup.exe` (有點久)並順順的點選安裝,安裝過後會自行啟動背後的服務。 :::info 想在 windows 中關閉 ollama 服務,在工作列右下方尋找 ollama icon,點擊右鍵、點擊`Quit Ollama`。  ::: #### 疑難排解 :::info - 如果我的 ollama serivce 在 windows 中運行,但是想在 wsl Ubuntu 中連線使用,而非再開一個 ollama server,該如何設定? ::: - 我會遇到這個情況是因為 ollama 在主機可以使用 gpu cuda 加速,但有時候在 WSL 中也想用到相同的便利性,但又不想再建立新的 ollama model 空間下載維護,這會耗費更多的空間,而這只需要改一下網路設定: - Ubuntu(WSL): 網路設定使用 `mirrored` 模式而非 `NAT`,讓內外的網域可以互通。 - Windows: 加入環境變數 `OLLAMA_HOST=:11434`, 表示廣播 :::warning 值得注意的是 `localhost` 或 `127.0.0.1` 的轉發不會橫跨進虛擬系統,因此需要使用時機電腦對外的 IP (虛擬IP`192.168.xx.xx`, VPN 等)才能跨進 WSL。若是從 WSL 向主機連線則不會有這樣的問題。 ::: ### 執行模型 Run model ### 管理模型 - 你可以在[官網的模型頁面]()查詢可用的模型,並且使用 `ollama pull <model>` 方式下載,可以選擇不同的參數量,我都只選 8b 以下的,不然 CPU 跑不動。 - `ollama rm <model>` 則可以刪除下載過的模型。 - `ollama list` 查詢本地端現有的模型 (每個LLM都很肥...) ``` $ ollama list NAME ID SIZE MODIFIED qwen2.5:3b 357c53fb659c 1.9 GB 11 hours ago qwen2.5-coder:7b 2b0496514337 4.7 GB 17 hours ago deepseek-r1:8b 28f8fd6cdc67 4.9 GB 17 hours ago qwen2.5-coder:3b e7149271c296 1.9 GB 18 hours ago deepseek-r1:7b 0a8c26691023 4.7 GB 19 hours ago ``` - `ollama run <model>` 可以開始使用模型生成功能 (`/api/generate`),如果模型沒有下載過它會自動得先下載。 ``` $ ollama run qwen2.5:3b >>> Send a message (/? for help) ``` - 離開使用 `/bye` , `/`是 ollama 對話中的跳脫字元 ``` $ ollama run qwen2.5:3b >>> hi Hello! How can I assist you today? >>> /bye ``` - `ollama ps` 可以得知目前正在使用的模型以及部屬在 local 端的狀況 - 3b 模型可以全部使用 GPU 計算 ``` $ ollama ps NAME ID SIZE PROCESSOR UNTIL qwen2.5:3b 357c53fb659c 3.1 GB 100% GPU 4 minutes from now ``` - 7b 模型一部分使用 CPU 計算 ``` $ ollama ps NAME ID SIZE PROCESSOR UNTIL deepseek-r1:7b 0a8c26691023 6.0 GB 43%/57% CPU/GPU 4 minutes from now ``` 由於我的 GPU 有 4GB 的 RAM,因此在 GPU 上完整的跑 3b 的模型,速度比純 CPU 快很多,另外 7b 或是 8b 的模型雖然 GPU 塞不下,但是部分推理交由 CPU 計算的,產生速度還可以接受,因此我就一併下載使用了。 目前嘗試下來 deepseek-r1、qwen2.5系列的在 coding 上都不錯使用,其他的就沒有再多測試了。 ollama 的 serivce 不只`generate`,更多的 API 用法可以從 [github 文件](https://github.com/ollama/ollama/blob/main/docs/api.md)參考。 :::info ollama 甚至已經有 python 的 api library,這部分我找時間再來玩,應該會有更多的互動。 ::: ## VScode extension - Continue 很神奇的名字對吧,我看到第一眼也這麼想。 不難設定,安裝插件後在左邊藍可以看到圖示,接著我是將他拖移到右邊,這樣就不會跟檔案管理員區塊重疊。  - 選擇模型處點選下拉選單選擇,或是新增模型  - 你可以選擇付費的網站貼上 API-KEY,本人是免費仔,所以使用本地端裝好的 ollama  - 有些模型沒有出現在選單上,我點選下方的 `This will update your config file` 的 `config file`  它會開啟 `C:\使用者\<使用這名稱>\.continue\config.yaml` 設定檔,便可以手動新增模型 ``` name: Local Assistant version: 1.0.0 schema: v1 models: - name: deepseek-r1-7b provider: ollama model: deepseek-r1:7b +++ - name: <你想顯示的名稱> +++ provider: ollama +++ model: <ollama 模型名稱> context: - provider: code - provider: docs - provider: diff - provider: terminal - provider: problems - provider: folder - provider: codebase ``` continue 與 github-copilot 相似處就是它同樣能擷取當前檔案中的片段資訊讓其產出 code 時會更加精確,方法是使用`@`加上檔案名稱加在對話前面。 目前使用下來,使用 `qwen2.5-coder:3b` 較為快速,`qwen2.5-coder:7b` 較為嚴謹, `deepseek-r1:7b` 雖然不是針對撰寫程式碼而訓練的,但是它的產物測試起來也不賴。 以上就是我用 Continue + Ollama 取代 github-copilot 的歷程。以下呢,則是走冤枉路的紀錄。 ## Ragflow 我看到 Ragflow 有很多介紹的網站 - [RAGFlow安裝教學、設定、與模型使用技巧](https://ithelp.ithome.com.tw/articles/10369119) - 我大致是照著這個操作的,唯獨要注意的是因為 Ragflow 需要Docker 運行 service 與 mysql,因此我在比較好部屬的 WSL (Ubuntu)上進行,所以在需要輸入`localhost` 時我打的是 `192.168.xx.xx` 的區域網路 IP,原因我在[上面](#疑難排解)有提到過。 - docker 建立的時候有一個 image 很大,大約 10GB,要下載一段時間。 - 這裡是 [github link](https://github.com/infiniflow/ragflow) :::warning 後來我發現在 WSL 上裝 Ragflow 可是一大問題。官方有提到說要保留至少 50GB 的空間,那時候不以為意便直接裝在 WSL 中... ::: - Ragflow 官方也有 [串接 ollama](https://ragflow.io/docs/dev/deploy_local_llm) 的步驟教學 - 這裡有不錯的介紹 {%youtube 9x-9-r2ifig%} - 建立知識庫我是使用 `ollama mxbai-embed-large`模型作為 embedding 用途,而聊天助理則是連接 `ollama qwen2.5:3b`,反應較為快速。 很快的我發現我的系統碟少了 20GB,原來是被 docker 中的 ragflow 服務給吃掉了,而且 cpu 不斷的被占用。我就默默地從 WSL 中移除 docker image 與 ragflow (我花了一下午下載的說..., 至少下載有 10GB)。成功刪除候用 `df` 看一下硬碟使用量從 45GB 降到 31GB。 但在 windows 的系統碟中卻遲遲不見釋放後的空間,不是已經釋放了嗎? ## WSL disk shrink 看到[這網頁]( https://stephenreescarter.net/how-to-shrink-a-wsl2-virtual-disk)之後才知道原來是 .vdx 虛擬磁碟在搞事,他還是維持原本的 45GB,並沒有把空間釋放出來。我照著步驟利用 PowerShell 中的 diskpart 工具將其瘦身 `compact` 後才見到釋出的硬碟空間。 ## 心得 我覺得 ollama 加上 continue 的功能可以放在我的筆電上運用,這確實可以取代線上有限制用量的資源。Ragflow使用起來對於研究文獻探討很有幫助,尤其是建立自己的知識集資料庫是一件很有趣的過程。但我的電腦顯然不夠空間,建議是使用有至少 50GB~100GB 空間的電腦,以及算力較佳的 GPU,再結合 ollama 服務,便可以打造出完整本地端的 RAG 系統,不但可以避免資料外流,更可以無限使用 LLM 模型。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up