跳到內容

設定:本機 LLM

TomoriBot 可以使用任何 OpenAI 相容的本機 LLM 伺服器進行文字生成與嵌入。 本指南以 Ollama 為例逐步說明,因為它最容易上手。

等你站穩腳步之後,可以考慮更有彈性的伺服器,例如 KoboldCPP,並直接從 Hugging Face 取用開源模型,因為挑選與試玩社群製作的各種模型,正是自己跑 AI 的一半樂趣。

安裝 Ollama。底下的範例使用 Google 的 Gemma 4,但 Ollama 的模型庫裡任何模型都可以。

本機模型跑在你 GPU 的 VRAM(顯示卡內建的記憶體,與系統 RAM 分開)裡。經驗法則:模型至少需要等於它下載大小的可用 VRAM,再加上約 1 到 2 GB 的餘裕給對話脈絡。挑一個你的卡跑得動、最大的 Gemma 4:

你的 GPU VRAM最合適下載大小(約)
~8 GBgemma4:e2b7.2 GB
~12 GBgemma4:12b7.6 GB
~16 GBgemma4:12b(可完整載入)或 gemma4:26b7.6 / 18 GB
24 GB+gemma4:26bgemma4:31b18 / 20 GB

下載大小是 Ollama 預設量化的大小;確切數字請看 模型頁面。不確定自己有多少 VRAM 嗎?Windows 上:工作管理員 → 效能 → GPU,看「專用 GPU 記憶體」。

拉取你選的大小並啟動伺服器:

Terminal window
ollama pull gemma4:12b # swap for the tag that fits your VRAM
ollama serve # listens on http://127.0.0.1:11434

確認從 TomoriBot 執行所在的那台機器可以連到它:

Terminal window
curl http://127.0.0.1:11434/v1/models

記下實際安裝的標籤,因為那會是你註冊的 Model Name:

Terminal window
ollama list
# NAME ID SIZE
# gemma4:12b a1b2c3d4... 7.6 GB

執行 /providers(伺服器範圍)或 /personal providers(只有你自己),選擇 新增自訂端點,然後輸入:

欄位Ollama 的值
endpoint_label你自訂的名稱,例如 home-ollama
API CompatibilityOpenAI-Compatible(推薦)或 Ollama
endpoint_urlOpenAI-Compatible 用 http://127.0.0.1:11434/v1,Ollama 用 http://127.0.0.1:11434
auth_token(留空)

儲存連線之後,選取它並從它的模型下拉選單選擇 + Add new Text Model。填入:

  • Model Name(確切的 API ID): gemma4:12b,也就是 ollama list 裡的確切標籤。
  • Context Window Override: 選填,僅限 Ollama 與 KoboldCPP。設定它(例如 819216384)以調高 Ollama 的預設 num_ctx,否則它小得足以截斷 TomoriBot 的長脈絡。留空則使用伺服器預設值。
  • 各種開關: 如果模型支援函式呼叫就開啟 Tools;只有視覺模型才開啟 Image Understanding;模型能好好處理 JSON 結構描述時開啟 Structured Output。以我們的例子來說,Gemma 4 全都支援,所以全部勾選。

TomoriBot 會在你儲存時驗證連線。如果它回報端點無法連線,常見原因是 localhost 與 Docker 不一致,或 /v1 缺少或多了(請看 常見陷阱)。

加入模型會自動讓它成為作用中的 text 模型,直接開始聊天就能試。如果它因為某些原因沒有生效,請執行 /config > 模型 > 切換模型,然後選取你新註冊的模型。

註冊永遠不會變更 text 以外的任何模型。如果你勾了 Image Understanding,讓這個端點能當作看不懂圖片的聊天模型的視覺輔助,請用 /config > 模型 > 切換模型明確選取它;所有你開啟該開關並註冊的文字端點都會出現在那裡。注意視覺模型只有在聊天模型看不見圖片時才會被諮詢,所以在支援視覺的聊天模型後面設定一個視覺模型,在你切換過去之前沒有任何效果。

選取已儲存的端點,並用它的模型下拉選單加入一個 Embedding 模型(例如 ollama pull nomic-embed-text,Model Name 為 nomic-embed-text:latest)。RAG 功能還需要在 Postgres 安裝 pgvector。你可以看手動設定指南。

這些全都使用同一套流程,只有 URL 與幾點注意事項不同。

  • 啟動時開啟 OpenAI 相容(內建)。預設:http://127.0.0.1:5001/v1
  • API Compatibility:OpenAI-Compatibleendpoint_urlhttp://127.0.0.1:5001/v1
  • 與 Ollama 一樣支援 Context Window Override
  • 載入 GGUF 模型;Model Name 就是已載入模型回報的名稱(通常是檔名主幹),請檢查 KoboldCPP 的 /v1/models 回應。
  • 建置或安裝 llama.cpp,然後用它內附的 OpenAI 相容伺服器提供 GGUF:
    Terminal window
    llama-server -m model.gguf -c 16384 --host 0.0.0.0 --port 8080
  • API Compatibility:OpenAI-Compatibleendpoint_urlhttp://127.0.0.1:8080/v1
  • 在啟動時用 -c 設定脈絡視窗,那是表單的 Context Window Override 只支援 Ollama 與 KoboldCPP,在這裡沒有作用。
  • Model Name 就是 /v1/models 回報的內容;用 --alias my-model 給它一個乾淨的名字。
  • 如果你用 --api-key 啟動它,請把該金鑰放進 auth_token
  • 在 LM Studio 中啟動 Local Server(Developer 分頁)。預設:http://127.0.0.1:1234/v1
  • API Compatibility:OpenAI-Compatibleendpoint_urlhttp://127.0.0.1:1234/v1
  • Model Name 就是 LM Studio 對已載入模型顯示的識別字。
  • 用 OpenAI 相容伺服器提供服務:vllm serve <model>http://127.0.0.1:8000/v1
  • API Compatibility:OpenAI-Compatibleendpoint_urlhttp://127.0.0.1:8000/v1
  • 如果你用 --api-key 啟動 vLLM,請把該金鑰放進 auth_token
  • Model Name 就是伺服中的模型路徑或名稱(與 /v1/models 相符)。
  • 運行 LiteLLM 代理;預設:http://127.0.0.1:4000/v1
  • API Compatibility:OpenAI-Compatibleendpoint_urlhttp://127.0.0.1:4000/v1
  • Model Name 就是你在 LiteLLM 設定中定義的模型別名。
  • 如果代理強制要求主金鑰,請將它設進 auth_token

因為有系統提示詞的變通做法,它有自己專屬的指南: 設定:ChatMock

除了 Ollama 精選的模型庫,Hugging Face 還託管成千上萬的 社群模型。KoboldCPP、llama.cpp 與 LM Studio 都能載入 GGUF 格式,那是一種單檔包裝,你下載之後把伺服器指向它就好。

  1. 找一個 GGUF。 在 Hugging Face 搜尋你的模型加上「GGUF」,像 bartowski 這樣的社群量化者,會在大多數熱門模型發布後不久就推出 GGUF 版本。優先選 instruct 或 chat 變體(名稱以 -Instruct-Chat 結尾);基礎模型不會跟你對話。
  2. 挑一個塞得進你 VRAM 的量化。 同一個 repo 會列出同一個模型的多種量化等級,而 檔案大小大約等於它需要的 VRAM(再加上約 1 到 2 GB 給脈絡,與上面的 大小對照表同一套規則)。下載你選定的那一個 .gguf
  3. 載入它。 用那個檔案啟動 KoboldCPP 或 llama-server(請看 其他伺服器),然後照常到 Discord 註冊端點。
  • 每個標籤一個端點項目。 要在共用同一台伺服器的多個模型上註冊,請選取已儲存的端點,再次使用它的模型下拉選單。真正不同的伺服器或 API 協定,才使用不同的標籤。
  • Model Name 是 API 識別字。 它是送到伺服器的確切字串。填錯是最常見的「連得上但回覆失敗」原因。
  • TomoriBot 跑在 Docker 裡嗎? 容器內的 localhost 不是你的主機。請用 http://host.docker.internal:<port>(Windows 與 macOS)或主機的區網 IP,並把 模型伺服器綁定到 0.0.0.0