前回の「環境構築編」に続いて
今回は必要最低限の機能のみの「最小のChatbot」を作っていきます。
最小のChatbotとは
Chatbotとして必要最低限の機能だけを持たせたChatbotのことを、ここでは「最小のChatbot」と呼びます。
かなり単純で、やることは次の3つだけです。
- ユーザーの入力を受け取る
- その入力をローカルLLMに渡す
- 返ってきた回答を表示する
これだけです。
構成
全体像は以下のとおりです。
ユーザー
↓
ターミナルで質問を入力
↓
Pythonスクリプト
↓
Ollama上のローカルLLM
↓
回答を受け取る
↓
ターミナルに表示
「Pythonが、ローカルで動くAIに質問を中継する」 状態です。
ディレクトリ構成は以下のようになります。
chatbot-test/
├─ .venv/
└─ app.py事前準備
仮想環境(venv)
Pythonの仮想環境(venv)は、プロジェクトごとに独立したPython実行環境を作成し、ライブラリのバージョン競合を防ぐ仕組みです。
これにより、プロジェクトごとに異なるパッケージ環境を安全に管理できます。
以前作った作業用のディレクトリ(サンプルのままならchatbot-test)にて、以下のコマンドを実行してください。
python3 -m venv .venv
source .venv/bin/activate1行目で仮装環境を作成
2行目で仮装環境を有効化
しています。
有効化されると、ターミナルのユーザー名などの左側に仮想環境名が表示されます。

最小のChatbotを実装
ライブラリのインストール
PythonでOllamaを動かすためにライブラリをインストールします。
pip install ollamaコード実装
下記のコードをコピペしたapp.pyファイルを作成します。
from ollama import chat
MODEL_NAME = "gemma3"
def main():
user_input = input("You: ")
response = chat(
model=MODEL_NAME,
messages=[
{"role": "user", "content": user_input}
]
)
answer = response["message"]["content"]
print(f"Bot: {answer}")
if __name__ == "__main__":
main()input()で、ユーザーからのメッセージを受け取り
chat()で、LLMに渡すモデルの指定やメッセージを指定します。
そして、LLMからの返信を受け取り、出力する処理になっています。
コード実行
以下のコマンドでapp.pyを実行します。
python app.py実行すると「You: 」と出てくるので、質問を投げてみます。
「chatbotはどんなことができますか」
と質問すると、以下のような回答が返ってきました。

しっかり会話をしてくれていますね!
※ローカルで実行しているため、ChatGPTのようにスラスラ返信してくれないかもしれません。その場合は待ってあげてください。
おわり
いかがだったでしょうか。
今回はPythonを経由してローカルLLMに質問をするところまでを実装しました。
ローカルでもこんなことができるとは驚きですね…!
次回は「会話履歴つきChatbot」を作っていきます。
お楽しみに〜