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_url、api_key 與 model 名稱,就能把同一組教學範例改接本地模型。這種切換方式非常適合用來示範「雲端 / 本地」的抽象邊界。
常見錯誤
connection refused:Ollama 尚未啟動。model not found:尚未ollama pull。- 記憶體不足:模型太大,需換較小版本。
- 看似切換成功,其實仍打到雲端:檢查 base_url 與 provider 設定。
實作練習
- 下載一個 4B 到 8B 的模型。
- 用原生 API 呼叫一次。
- 再用 OpenAI-compatible client 呼叫一次。
- 比較兩種寫法的異同。
授課提醒
- 本地模型示範時,先強調它是成本與治理上的選項,不一定在每件事都優於雲端。
- 教學時應示範至少一次 base_url 切換,讓學員真正理解 provider abstraction。
- 若學員機器規格差異太大,可改成由教師主機統一提供 Ollama 服務。