在昨天介紹了Ollama,我們認識了 Ollama 的基本概念,也了解如何在本地端運行大型語言模型。今天,我們介紹 Ollama 的 API 端點,並實際透過 ChatOllama 進行串接,讓應用程式能夠像呼叫雲端服務一樣,與本地模型進行互動。今天將說明如何呼叫 API、傳遞請求與取得回應,並示範如何將 ChatOllama 整合到專案中,打造屬於自己的本地 AI 對話系統。
列出本地模型
curl 'http://localhost:11434/api/tags
顯示模型訊息
curl 'http://localhost:11434/api/show -d '{
"model": "gpt-oss:20b"
}'
刪除模型
curl -X DELETE 'http://localhost:11434/api/delete -d '{
"model": "gemma3:27b"
}'
生成回應
curl 'http://localhost:11434/api/generate -d '{
"model": "gpt-oss:20b",
"prompt": "請幫我用一句話介紹台北。"
}'
除了直接呼叫 Ollama 的 API 之外,我們也可以透過 ChatOllama 這個介面,快速把本地模型整合進應用程式中。以下是一個簡單的範例,示範如何透過 ChatOllama 與模型互動,並取得回應:
# ==== 可調參數 ====
MODEL = "gpt-oss:20b"
OLLAMA_BASE_URL = "http://10.0.0.209:11434" # 或 "http://localhost:11434"
SYSTEM_HINT = "你是一個友善的中文助理,請用繁體中文回答問題。"
async def run_agent(nl_query: str):
llm = ChatOllama(
model=MODEL,
base_url=OLLAMA_BASE_URL,
temperature=0.0,
)
messages = [
SystemMessage(content=SYSTEM_HINT),
HumanMessage(content=nl_query),
]
result = await llm.ainvoke(messages)
return result
if __name__ == "__main__":
out = asyncio.run(run_agent("請幫我用一句話介紹台北。"))
print("\n=== 模型回覆 ===")
print(out.content)
建立一個 ChatOllama 實例,設定模型名稱與 Base URL,然後透過 ainvoke() 方法將提示與訊息傳入,並非同步取得模型的回覆。這種方式就像是使用雲端 API 一樣,但是運行在本地端,不需要把資料傳到外部服務,適合內部應用或需要隱私的場景。