スキップしてメイン コンテンツに移動

PythonでOllamaを自在に操作!API連携と自動化の第一歩

PythonでOllamaを自在に操作!API連携と自動化の第一歩

01. はじめに

Ollamaの魅力を最大化するのは、ターミナルからの利用ではなく「プログラムからの制御」です。自作のWebアプリにAIチャット機能を組み込んだり、大量のテキストを自動で要約させたりといった高度なタスクは、API経由で行うことで真価を発揮します。

Ollamaは標準でOpenAI互換のAPIエンドポイントを提供しているため、既存のエコシステムとの統合も簡単です。今回は、世界で最も人気のあるプログラミング言語であるPythonを使って、Ollamaをコードから操作する方法を徹底解説します。

02. OllamaのREST API基礎

API Endpoint

Ollamaが起動しているとき(デフォルトポート11434)、以下のエンドポイントが利用可能です。

  • POST /api/generate: シンプルなテキスト生成
  • POST /api/chat: チャット形式(履歴考慮)の生成
  • POST /api/pull: モデルのダウンロード

特別な認証キーも不要で(localhostの場合)、シンプルなJSONを投げるだけでレスポンスが返ってきます。

03. 公式Pythonライブラリの使い方

requestsを使ってHTTPリクエストを投げても良いですが、公式ライブラリを使うほうが型定義もしっかりしており便利です。

インストール

pip install ollama

基本的な使い方

import ollama

# シンプルな生成
response = ollama.chat(model='llama3', messages=[
  {
    'role': 'user',
    'content': 'PythonでHello Worldを表示するコードは?',
  },
])

print(response['message']['content'])

これだけで、Llama 3からの返答を取得してPythonプログラム内で利用できます。

04. 実践:AIチャットボットの試作

もう少し実用的な、対話履歴を保持する簡単なCLIチャットボットを作ってみましょう。

import ollama

def chat_bot():
    history = []
    print("AI ChatBot (type 'exit' to quit)")
    
    while True:
        user_input = input("You: ")
        if user_input.lower() == 'exit':
            break
            
        # 履歴に追加
        history.append({'role': 'user', 'content': user_input})
        
        # API呼び出し
        response = ollama.chat(model='llama3', messages=history)
        ai_message = response['message']['content']
        
        print(f"AI: {ai_message}")
        
        # AIの返答も履歴に追加
        history.append({'role': 'assistant', 'content': ai_message})

if __name__ == "__main__":
    chat_bot()

このスクリプトを実行するだけで、文脈を記憶したAIとの会話が実現します。メモリ管理(historyリストの肥大化対策)は必要ですが、プロトタイプとしては十分です。

05. ストリーミング応答の処理

ChatGPTのように、文字がパラパラと表示される「ストリーミング」を実装するには、stream=True パラメータを使用します。

stream = ollama.chat(
    model='llama3',
    messages=[{'role': 'user', 'content': '長い物語を書いて'}],
    stream=True,
)

for chunk in stream:
    # 改行なしで逐次出力
    print(chunk['message']['content'], end='', flush=True)

これにより、生成完了を待たずにユーザーに結果を見せることができ、体感速度(UX)が向上します。

06. まとめ

Integration

Python連携ができれば、あとはStreamlitでGUIを付けるもよし、FastAPIでWebサーバー化するもよし、アイデア次第で何でも作れます。

OllamaのAPIはシンプルかつ強力です。ぜひこれを活用して、自分だけのAIアプリケーション開発に挑戦してみてください。既存のハードウェアリソースだけで、ここまで高度なAI開発ができる時代が到来しています。

© 2026 Antigravity Blog Generator. All rights reserved.

コメント