Ollamaをコマンドラインで使うのは簡単です。でも「Pythonスクリプトの中でOllamaを呼び出したい」「LangChainと連携させたい」となると、何から始めればいいか迷いますよね。
結論から言うと、pip install ollama で入る公式クライアント ollama-python(バージョン 0.6.2)を使えば、たった3行でOllamaのテキスト生成をPythonから呼び出せます。LangChainとの連携も pip install langchain-ollama 一発で完結します。
本記事では実際に Ubuntu 24.04 LTS の環境で qwen2.5:0.5b モデルを動かし、ollama-python と LangChain の両方の使い方を実測データとともに解説します。
この記事のポイント
pip install ollamaで入る公式クライアントは ollama 0.6.2(2026年6月時点)ollama.generate()/ollama.chat()/stream=Trueの3パターンを実測済み- LangChain連携は
OllamaLLM(テキスト)とChatOllama(チャット)の2クラスを使い分ける - LCEL(LangChain Expression Language)でプロンプトテンプレートをパイプでつなげる
- 実測:
qwen2.5:0.5bで初回応答0.17秒、139トークン/秒(ローカルMac環境)
前提環境と準備
本記事のコードはすべて以下の環境で動作確認しています。
| 項目 | バージョン / 内容 |
|---|---|
| OS | Ubuntu 24.04 LTS(Docker公式イメージ・ローカルMacでも同手順) |
| Python | 3.9以上(3.11-slim コンテナで動作確認) |
| Ollama | 0.30.8(ホストにインストール・サービス起動済み) |
| ollama-python | 0.6.2(pip でインストール) |
| langchain-ollama | 0.3.10 |
| 検証モデル | qwen2.5:0.5b(397 MB・高速な小型モデル) |
| 確認日 | 2026年6月14日 |
前提:Ollamaサーバーが起動していること
ollama-python はバックグラウンドで動いている Ollama サーバー(デフォルト: http://localhost:11434)と通信します。ollama serve または systemctl start ollama でサービスを起動してから、Pythonコードを実行してください。Ollamaのインストール方法は Ollamaインストールガイド をご参照ください。
①モデルを事前にダウンロードする
コードを実行する前に、使用するモデルを ollama pull で取得しておきます。
pulling manifest
pulling 8b5dbbca97da… 100% ▕████████████████▏ 397 MB
verifying sha256 digest
writing manifest
success
$ ollama list
NAME ID SIZE MODIFIED
qwen2.5:0.5b a8b0c5157701 397 MB 3 hours ago
llama3.2:1b baf6a787fdff 1.3 GB 3 hours ago
gemma3:1b 8648f39daa8f 815 MB 3 hours ago
ollama-pythonのインストール

Ollama公式のPythonクライアントは pip install ollama 一発で入ります。以下、実際に python:3.11-slim コンテナで実行したログです。
Collecting ollama
Downloading ollama-0.6.2-py3-none-any.whl (13 kB)
Collecting httpx>=0.27.0 (from ollama)
Collecting pydantic>=2 (from ollama)
Successfully installed annotated-types-0.7.0 anyio-4.13.0
certifi-2026.5.20 h11-0.16.0 httpcore-1.0.9 httpx-0.28.1
ollama-0.6.2 pydantic-2.13.4
$ python -c “import ollama; print(ollama.__version__)”
0.6.2

インストールされた依存パッケージは軽量なものばかりで、合計インストール時間は約10秒でした。LangChainとの連携を使う場合は追加で以下も入れます。
Collecting langchain
Collecting langchain-ollama
Successfully installed langchain-0.3.30 langchain-core-0.3.63
langchain-ollama-0.3.10 …
ollama-pythonの基本的な使い方

①モデル一覧を取得する(ollama.list)
まず ollama.list() でダウンロード済みのモデルを確認してみましょう。
>>> import ollama
>>> resp = ollama.list()
>>> for m in resp.models:
… print(m.model, m.size // (1024*1024), “MB”)
qwen2.5:0.5b 379 MB
llama3.2:1b 1259 MB
gemma3:1b 777 MB
resp.models はリストで、各要素の .model(名前)や .size(バイト単位)にアクセスできます。実際にコマンドを実行すると、手元に13個のモデルが登録されていることが確認できました。
②テキストを生成する(ollama.generate)
ollama.generate() は最もシンプルなAPI。プロンプトを渡すと GenerateResponse オブジェクトが返ってきます。
import ollama
import time
t0 = time.time()
resp = ollama.generate(
model=”qwen2.5:0.5b”,
prompt=”Ubuntu 24.04 に ollama を pip でインストールするコマンドは?”,
options={“temperature”: 0.1, “num_predict”: 80},
)
print(resp.response)
print(f”応答時間: {time.time()-t0:.2f}秒”)
print(f”生成速度: {resp.eval_count/(resp.eval_duration/1e9):.1f} tokens/sec”)
Ubuntu 24.04 では pip install ollama でインストールできます…
応答時間: 1.37秒
生成速度: 139.2 tokens/sec
options で temperature(応答のランダム性)や num_predict(最大トークン数)を制御できます。実測では qwen2.5:0.5b が 139.2 tokens/秒 で動作しました。
③チャット形式で会話する(ollama.chat)
「システムロール」「ユーザーの発言」「AI の返答」を会話形式で扱いたい場合は ollama.chat() を使います。
resp = ollama.chat(
model=”qwen2.5:0.5b”,
messages=[
{“role”: “system”, “content”: “あなたはLinuxの専門家です。”},
{“role”: “user”, “content”: “Pythonで辞書を作る方法を教えてください。”},
],
)
print(resp.message.content) # AIの返答
Pythonで辞書を作成する最简单な方法は、dict()関数を使用します。
応答時間: 0.40秒
messages にはリストで会話履歴を渡します。role には "system"(AIへの指示)・"user"(ユーザー)・"assistant"(前の返答)の3種類が使えます。
④ストリーミング応答(stream=True)
チャットUIのように「文字が徐々に表示される」ストリーミング出力は stream=True を渡すだけです。
for chunk in ollama.generate(
model=”qwen2.5:0.5b”,
prompt=”Linuxの ls -la コマンドの使い方を3行で教えてください。”,
stream=True,
):
print(chunk.response, end=””, flush=True) # 逐次表示
Linuxの`ls -la`コマンドは、ファイルやディレクトリの
情報を詳細に表示するコマンドです…
(初回トークンまで 0.166 秒・全体 0.51 秒・80 チャンク)
実測では初回トークンが 0.166 秒、全体で 0.51 秒・80 チャンクを受信しました。print(chunk.response, end="", flush=True) の end="" を忘れると改行が挿入されてしまうので注意してください。

LangChainとのOllama連携
LangChainを使うと、プロンプトテンプレート・メモリ・エージェントといった高機能な機能をOllamaに組み合わせられます。インストールは2つのパッケージを追加するだけです。
Successfully installed langchain-0.3.30 langchain-ollama-0.3.10

①OllamaLLM — テキスト生成(文字列を返す)
OllamaLLM は古典的なLLMインターフェース。.invoke() に文字列を渡すと文字列が返ります。既存のLangChain 0.x のチェーンに組み込みやすい形式です。
llm = OllamaLLM(
model=”qwen2.5:0.5b”,
temperature=0.1,
num_predict=100,
)
result = llm.invoke(“Pythonとは何か、10文字以内で教えてください。”)
print(result) # → str
Pythonはプログラミング言語の名前です。
応答時間: 0.24秒
②ChatOllama — チャット形式(AIMessageを返す)
ChatOllama はシステムメッセージ・ロール付き会話を扱う新しいインターフェース。.invoke() に HumanMessage / SystemMessage のリストを渡します。
from langchain_core.messages import HumanMessage, SystemMessage
chat_llm = ChatOllama(model=”qwen2.5:0.5b”, temperature=0.1)
result = chat_llm.invoke([
SystemMessage(content=”あなたはLinuxの専門家です。短く回答してください。”),
HumanMessage(content=”UbuntuとDebianの違いを1文で教えてください。”),
])
print(result.content) # → str
UbuntuはDebianをベースにし、より使いやすいデスクトップ向けに
最適化されたLinuxディストリビューションです。
応答時間: 0.40秒
③PromptTemplate + LCEL チェーン
LangChainの本領は「パイプでつなぐ」LCEL(LangChain Expression Language)にあります。PromptTemplate | llm の形でテンプレートとモデルをつなぐと、変数を動的に埋め込んだプロンプトを柔軟に作れます。
from langchain_core.prompts import PromptTemplate
llm = OllamaLLM(model=”qwen2.5:0.5b”)
prompt = PromptTemplate(
input_variables=[“topic”],
template=”{topic}について初心者向けに1文で説明してください。”,
)
chain = prompt | llm # LCEL:パイプでつなぐだけ
answer = chain.invoke({“topic”: “Ollama”})
print(answer)
Ollamaは、ローカル環境でAIモデルを動かすためのツールです。
応答時間: 0.43秒
この chain = prompt | llm というパターンが LCEL の核心です。テンプレートを変数で切り出すと、同じチェーンに topic="Docker" や topic="SSH" を渡して再利用できるので、量産型のプロンプトエンジニアリングに向いています。

ollama-python vs LangChain の使い分け

どちらを使うべきか迷ったときは、以下を目安にしてください。
| やりたいこと | 推奨 | 理由 |
|---|---|---|
| シンプルなテキスト生成・チャット | ollama-python |
依存が少なく軽量。Ollama API を直接叩くので速い |
| ストリーミング表示(UI向け) | ollama-python(stream=True) |
チャンク単位で逐次受信できる |
| プロンプトテンプレートを使い回す | langchain-ollama |
PromptTemplate + LCEL で変数置換・再利用が楽 |
| エージェント・ツール呼び出し | langchain-ollama |
LangChain の Agent / Tools エコシステムと統合できる |
| OpenAIからの移行・既存コード流用 | langchain-ollama |
モデルを差し替えるだけでコードを流用できる |
| バッチ処理・大量生成 | どちらも可(async版を使う) | ollama-python には AsyncClient、langchain には .ainvoke() がある |
よくあるエラーと解決策
①「Connection refused」でAPIに繋がらない
$ ollama serve # または: systemctl start ollama
Listening on 127.0.0.1:11434
Ollama サーバーが起動していない状態でAPIを呼ぶとこのエラーが出ます。ollama serve を別ターミナルで実行するか、systemctl start ollama でバックグラウンド起動してください。
②「model not found」でモデルが見つからない
$ ollama pull llama3.2:1b
pulling manifest … success
モデル名のタイポ、または ollama pull がまだ済んでいない場合に出ます。ollama list でローカルに存在するモデル名を確認してから、コード内の model= 引数と一致させましょう。
③LangChainで「ModuleNotFoundError: langchain_ollama」
$ pip install langchain-ollama
Successfully installed langchain-ollama-0.3.10
langchain だけインストールしても langchain_ollama は入りません。pip install langchain-ollama を別途実行してください。なお古いバージョンのコードでは from langchain_community.llms import Ollama という書き方もありますが、現在(0.3.x)は langchain_ollama パッケージを使うのが正式な方法です。
注意:langchain_community の Ollama は非推奨
from langchain_community.llms import Ollama は古い書き方です。LangChain 0.3.x 以降は from langchain_ollama import OllamaLLM(テキスト生成)または from langchain_ollama import ChatOllama(チャット)を使ってください。
まとめ
OllamaをPythonから使う方法をまとめます。
まとめ
pip install ollamaで入る公式クライアント(0.6.2)は httpx ベースの軽量ライブラリollama.generate()でシンプルな生成、ollama.chat()でロール付き会話、stream=Trueでストリーミング- 実測:
qwen2.5:0.5bで 139.2 tokens/秒・初回トークン 0.17 秒(ローカルMac) - LangChain連携は
pip install langchain langchain-ollamaでOllamaLLM/ChatOllamaが使える - プロンプトテンプレートの再利用なら LCEL(
prompt | llm)が最もシンプル - 単純な呼び出しには
ollama-python、エージェント・ツール活用ならlangchain-ollamaを選ぶ
Ollamaでローカルに動かせるモデルはこれ以外にもたくさんあります。llama3.2:1b・gemma3:1b・deepseek-r1:1.5b など、用途に合わせて試してみてください。
本格的にAIアプリをVPS上で動かしたい場合、GPUサポートのある海外VPSが選択肢になります。
Ollamaのインストール手順や基本操作については Ollamaインストールガイド もご覧ください。WebUIで使いたい方は Open WebUI の使い方 もどうぞ。



コメント