Workshop 課程地圖
Intelligent Agent 實作研習 / 多頁教材版

Chapter 4|Ollama 本地模型

說明本地模型在教學場景中的角色,並示範如何用 Ollama 完成本地推理與 provider 切換。

教師研習 理論 + 架構 + 實作 RWD + 深色模式 Mermaid + 程式碼範例

學習目標

  • 理解為什麼教學環境需要本地模型。
  • 能安裝 Ollama、下載模型、用 API 呼叫。
  • 知道如何把 Agent Framework 的 base_url 切到本地模型。

背景與理論

本地模型的價值通常不是要完全取代雲端,而是讓教學在成本、網路、資料治理與班級規模之間取得平衡。Workshop 中最適合的觀念是:外部 API 當主力、本地模型當示範與 fallback,而不是兩者二選一。

安裝與模型下載

curl -fsSL https://ollama.com/install.sh | sh
ollama serve
ollama pull qwen3:8b
ollama pull gemma3:4b
ollama list

建議示範模型

  • Qwen:中文表現與通用能力兼顧。
  • Gemma:Google 系列模型,適合做對照。
  • Llama:生態成熟、教學資料多。
  • DeepSeek:可作為近年本地推理案例。

API 與 OpenAI-Compatible

import requests

resp = requests.post(
    "http://localhost:11434/api/generate",
    json={
        "model": "qwen3:8b",
        "prompt": "請用繁體中文說明 tool calling 的用途",
        "stream": False,
    },
    timeout=60,
)
print(resp.json()["response"])
from openai import OpenAI

client = OpenAI(api_key="ollama", base_url="http://localhost:11434/v1")
resp = client.chat.completions.create(
    model="qwen3:8b",
    messages=[{"role": "user", "content": "請比較 ChatBot 與 Agent。"}],
)
print(resp.choices[0].message.content)

Agent Framework 連接概念

若 framework 支援 OpenAI-compatible provider,通常只要調整 base_urlapi_key 與 model 名稱,就能把同一組教學範例改接本地模型。這種切換方式非常適合用來示範「雲端 / 本地」的抽象邊界。

常見錯誤

  • connection refused:Ollama 尚未啟動。
  • model not found:尚未 ollama pull
  • 記憶體不足:模型太大,需換較小版本。
  • 看似切換成功,其實仍打到雲端:檢查 base_url 與 provider 設定。

實作練習

  1. 下載一個 4B 到 8B 的模型。
  2. 用原生 API 呼叫一次。
  3. 再用 OpenAI-compatible client 呼叫一次。
  4. 比較兩種寫法的異同。

授課提醒