繁中 ▾
取得 API 金鑰

如何使用 Ollama 搭配圖形介面(並設定託管備用)

Ollama 本身在終端機中執行,但任何支援 OpenAI 格式的聊天前端都可以覆蓋其上。以下是設定方法,以及如何將同一個視窗指向雲端端點。

更新

聊天視窗透過發光的線纜同時連線到本地電腦與雲端伺服器

無需綁卡。註冊後,點擊一次即可領取 $0.50 免費試用額度(每人限領一次)。

取得 API 金鑰

重點摘要

  • Ollama 沒有內建的聊天視窗;你需要新增前端,例如 Open WebUI。
  • 前端可連接到 Ollama 或任何 OpenAI 相容的 URL,因此一個 GUI 可以同時維持兩條連線。
  • 雲端連線請使用 Base URL https://api.ollamansfw.com/v1 與模型 ID uncensored。
  • 串流輸出、函式呼叫與 JSON 模式均可透過雲端端點與標準客戶端設定運作。

為什麼 Ollama 需要單獨的 GUI

如果你想了解 如何使用 GUI 搭配 ollama,首先要接受的事實是:Ollama 專案是一個伺服器與命令列工具。它會拉取模型並在本地埠上回應請求。聊天視窗是其他人的工作,而且有好幾種選擇。

這種分工很有用。因為 Ollama 在你自己的機器上暴露了 OpenAI 風格的 API(預設在連接埠 11434 下的 /v1 路徑),任何允許設定自訂 OpenAI Base URL 的前端都可以使用它。這項特性也意味著你可以稍後將該前端指向其他位置。本文將先介紹本地設定,然後將託管端點作為第二個連線加入。

選擇前端

有三類工具涵蓋了大多數使用者。請檢查每個專案的官方文件以獲取最新的安裝步驟,因為它們經常變更。

  • Open WebUI。 自託管的網頁介面。它直接支援 Ollama,也接受任何 OpenAI 相容的連線。通常使用 Docker 或 pip 安裝。
  • 桌面客戶端。 原生應用程式如 Chatbox 或 Msty 允許你透過設定畫面新增 Ollama 伺服器或 OpenAI 相容的供應商。無需執行伺服器。
  • 角色扮演與寫作前端。 SillyTavern 允許你新增 OpenAI 相容的端點,也有類似工具可用於長篇小說與成人伴侶角色。

如果你不想使用 Docker 容器,桌面客戶端是最快的路徑。如果你希望單一網路上的多個人使用共用介面,Open WebUI 是常見選擇。

使用 Open WebUI 的逐步操作

  1. 安裝並啟動 Ollama,然後使用 ollama pull 指令拉取模型。在繼續之前,請確認終端機有收到 Ollama 的回應。
  2. 啟動 Open WebUI。使用 Docker 時,常見模式是發布連接埠並掛載資料卷以儲存其數據。
  3. 開啟網頁,建立第一個本地帳戶(它將成為管理員),並在管理員設定中尋找連線區域。
  4. 確認 Ollama URL 指向運行 Ollama 的機器。如果兩者都在同一台主機上,通常是連接埠 11434 的本地地址。如果 Open WebUI 在容器內運行,localhost 指的是容器本身,這通常是模型列表保持空白的最常見原因。
  5. 重新載入,從下拉選單選擇模型,然後發送訊息。

這是一個完整的本地 GUI。沒有任何資料會離開你的電腦,且速度取決於你的 GPU 或 CPU。

新增 OpenAI 相容的雲端連線

現在是備用方案。假設你能在本機執行的模型對於長場景來說太小,或是你的 GPU 正在渲染中。你可以將第二個連線新增到相同的 GUI。為此你需要一個 API 金鑰,你可以在透過 Google 或電子郵件與密碼註冊後,從 API 金鑰頁面取得。只需一鍵即可獲得一次性的 $0.50 試用額度,無需付款,且有效期為 7 天。

在 Open WebUI 中,新增 OpenAI 連線並使用以下值:

  • Base URL:https://api.ollamansfw.com/v1
  • API 金鑰:你的金鑰,以 Authorization: Bearer 格式傳送
  • 模型:uncensored

如果你偏好在使用容器時使用環境變數,Open WebUI 文件記載了 OPENAI_API_BASE_URL 與 OPENAI_API_KEY 可用於此目的:

docker run -d -p 3000:8080 \
  -e OPENAI_API_BASE_URL=https://api.ollamansfw.com/v1 \
  -e OPENAI_API_KEY=YOUR_KEY \
  -v open-webui:/app/backend/data \
  --name open-webui ghcr.io/open-webui/open-webui:main
# model to pick in the UI: uncensored

重新載入後,uncensored 應會出現在本地模型旁的模型下拉選單中。前端會透過 GET /v1/models 找到它。現在你可以在同一個對話清單中切換本地模型與託管模型。

先在 GUI 之外測試端點

當 GUI 顯示模糊錯誤時,判斷問題出在金鑰還是介面的最快方法是直接呼叫。以下是使用 curl 的串流請求:

curl -N https://api.ollamansfw.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "stream": true,
    "messages": [{"role": "user", "content": "Write two sentences about a lighthouse keeper."}]
  }'

你應該會看到一系列以使用資訊結尾的 data: 行。如果這能運作,表示金鑰與 URL 正常,問題出在前端。疑難排解頁面 涵蓋了典型錯誤,例如缺少 /v1 或金鑰中的尾隨空白。

用於本地模型的相同客戶端設定大多可以沿用。溫度、top_p、停止序列、種子與懲罰參數都會傳遞給模型。

在你的程式碼中使用雲端端點

GUI 只是一種客戶端。腳本與小型應用程式是另一種,雲端端點與標準 OpenAI SDK 相容。支援函式呼叫與 JSON 模式,如果你的 GUI 或代理程式使用這些功能,這很重要。

from openai import OpenAI

client = OpenAI(base_url="https://api.ollamansfw.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",
    response_format={"type": "json_object"},
    messages=[
        {"role": "system", "content": "Reply with a JSON object with keys title and summary."},
        {"role": "user", "content": "A short story about a lighthouse keeper."},
    ],
)
print(resp.choices[0].message.content)

Node 中的模式相同:

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.ollamansfw.com/v1",
  apiKey: process.env.API_KEY,
});

const stream = await client.chat.completions.create({
  model: "uncensored",
  stream: true,
  messages: [{ role: "user", content: "Name three sailing knots." }],
});
for await (const part of stream) {
  process.stdout.write(part.choices[0]?.delta?.content ?? "");
}

快速入門 有更多範例,包括使用 tool_choice 的函式呼叫。

常見問題與解決方案

GUI 設定中的大多數失敗都來自少數幾個原因。

  • 本地連線的模型列表為空。 前端無法連線到 Ollama。檢查地址,並記住容器化的 GUI 無法將你的主機視為 localhost。
  • 託管端點返回 401。 金鑰遺失或錯誤。再次貼上金鑰且不要包含空白,並確保 GUI 將其作為 bearer token 傳送。
  • 所有請求都返回 404。 Base URL 可能缺少 /v1,或者重複了兩次。
  • 回覆停止或介面當機。 某些前端會透過代理程式緩衝串流輸出。嘗試上述的直接 curl 測試,如果串流正常,請檢查 GUI 前方的代理程式設定。
  • 本地回覆緩慢。 模型太大,超出你的 VRAM 並溢出到系統記憶體。選擇較小的量化版本,或將該聊天切換到託管連線。

記住一個規則:對於小說與成人伴侶應用程式,雲端模型在合法成人用途下不會拒絕內容,但涉及未成年人的性內容永遠不被允許,服務會將其作為硬性限制執行。

GUI 中需注意的限制與費用

前端可以同時發送多個請求,例如在生成聊天標題時,同時讓主要回覆進行串流輸出。完整金鑰允許 8 個並行請求與每分鐘 300 個請求。試用金鑰允許 2 個並行請求與每分鐘 60 個請求。串流請求會佔用其槽位直到串流結束。如果超過限制,你會收到 HTTP 429,代碼為 rate_limited 或 concurrency,在暫時超載時會收到帶有 Retry-After: 5 的 429。在 GUI 中關閉背景標題生成是試用金鑰的簡單修復方法。

費用按 token 計費:輸入每 1M token 為 $0.15,輸出每 1M token 為 $0.50。帶有 2,000 token 歷史記錄與 500 token 回覆的聊天輪次,費用為 $0.0003 加上 $0.00025,總計 $0.00055。回應標頭包含 X-Balance-USD,因此你可以隨時查看額度消耗。儲值詳情請見定價頁面。本站僅接受加密貨幣:TRC20 上的 USDT 或 Base 上的 USDC,金額為 $20 至 $500 的整數。

上下文視窗為 100,000 token,因此非常長的聊天會隨著歷史記錄增長而在每次輪次中產生更高費用,因為每次都會傳送完整的歷史記錄。大多數 GUI 都有設定可以修剪或摘要舊訊息。

問答

Ollama 有自己的圖形介面嗎?

Ollama 主要是一個伺服器與命令列工具。聊天視窗來自其他獨立專案,例如 Open WebUI 或桌面客戶端,你需要將它們連接到 Ollama。

一個 GUI 能否同時使用本地模型與託管模型?

可以,只要前端支援多個連線。將 Ollama 新增為其中一個連線,並將 OpenAI 相容的 URL 新增為另一個連線,然後在每個聊天中選擇所需的模型。

為什麼我的 GUI 顯示託管端點沒有模型?

請確認 Base URL 以 /v1 結尾、金鑰沒有多餘的空格,且 GUI 被允許呼叫 GET /v1/models。如果仍然失敗,請手動輸入模型 ID uncensored。

如果我收到 HTTP 429 該怎麼辦?

你觸發了速率或並行限制。請減少平行請求,等待 Retry-After 標頭中的秒數,然後重試。