Ollamaに長期記憶を持たせる方法
LangChain + ChromaDB + OpenWebUI + Mem0 を使って、あなただけのローカルAIアシスタントを育てよう
📋 目次
🤔 長期記憶とは?なぜOllamaに必要なの?
ChatGPTの「メモリ機能」をローカルAIで実現する方法を解説します。
Ollama単体には「記憶」がない
Ollamaはローカルで動くAIエンジンとしては優秀ですが、標準では会話をまたいだ記憶機能がありません。毎回「私はWordPressを使っています」「初心者向けに説明して」と伝えるのは面倒ですよね。外部に記憶を保存し、毎回プロンプトへ注入する仕組みを作ることで解決できます。
「長期記憶」を持たせると、AIが次のようなことを覚えてくれます:
好みの口調
「短く」「初心者向け」「専門用語少なめ」を記憶
環境設定
「Cocoon使用」「Python初心者」「WordPress運営」を記憶
過去の会話
「前回のSEO設定」「以前相談したCSS」を記憶
禁止事項
「この話題は避けて」「危険なコードは書かない」を記憶
実際にこんな体験ができます
あなた:「CocoonのCSSどうする?」
AI:「前回あなたはCocoonを使っていると言っていましたね。追加CSSならこの方法がおすすめです…」
🔍 記憶の仕組みを図解で理解しよう
外部DBに記憶を保存して、毎回プロンプトへ注入するシンプルな仕組みです。
🔄 長期記憶付きAIの処理フロー
ポイントは「ベクトル検索(RAG)」
過去の会話が大量になっても、関係ある記憶だけを取り出すことができます。これが「RAG(検索型記憶)」の仕組みです。「CocoonのCSS」と質問すれば、WordPress・Cocoon・CSS関連の記憶だけが自動で引き出されます。
🛠️ 必要なツール・構成を選ぼう
初心者から上級者まで、レベル別に最適な構成を紹介します。
3つのレベル別おすすめ構成
自分のスキルや目的に合わせて構成を選びましょう。あとからアップグレードもできます。
超シンプル構成
おすすめ度:★★★★☆
テキストファイルに記憶を保存し、毎回プロンプトへ読み込むだけ。Pythonの基礎さえわかれば作れます。
LangChain + ChromaDB
おすすめ度:★★★★★
本格的なベクトル検索で関連記憶だけを取り出す構成。ChatGPTのメモリに近い体験ができます。本記事で詳しく解説します。
OpenWebUI + Mem0
おすすめ度:★★★★★
ChatGPT風UIで使いやすく、Mem0が重要な情報を自動で整理・優先順位付けしてくれる最強構成。
📊 構成別の比較表
| 評価項目 | 🌱 超シンプル | ⚙️ LangChain+ChromaDB | 🚀 OpenWebUI+Mem0 |
|---|---|---|---|
| 導入の簡単さ | |||
| 記憶の精度 | |||
| 使いやすさ(UI) | △ CUI(コマンド操作) | △ CUI(コマンド操作) | ◎ ChatGPT風ブラウザUI |
| 記憶の自動整理 | ✗ なし | △ 手動管理 | ◎ Mem0が自動整理 |
| 拡張性 | △ 限定的 | ○ RAG・エージェント追加可 | ◎ 音声・画像・Web検索も対応 |
※ スコアは執筆時点の評価です。
🐍 実践!LangChain + ChromaDB セットアップ
Windowsでのコピペで動く完全手順を紹介します。
この章でできること
Pythonスクリプト1ファイルで、ベクトル検索付きの長期記憶チャットが完成します。「私はCocoonを使っています」と伝えると、次回以降AIが自動で覚えてくれます。
📋 ステップバイステップ手順
🦙 Ollamaインストール&モデルのダウンロード
Ollama公式サイトからインストーラーをダウンロードしてインストール後、PowerShellで以下を実行します。
ollama pull llama3.2 # メインの会話モデル(軽量版) ollama pull nomic-embed-text # 記憶検索用の埋め込みモデル
🐍 Pythonインストール
Python公式サイトからインストーラーをダウンロード。インストール時に必ず「☑ Add Python to PATH」にチェックを入れてください。
📁 作業フォルダの作成と仮想環境のセットアップ
例えば C:\ai_memory_chat フォルダを作成し、その中でShift+右クリック→「ターミナルを開く」から以下を実行します。
python -m venv venv # 仮想環境を作成 venv\Scripts\activate # 仮想環境を起動(Windowsの場合)
📦 必要なライブラリのインストール
以下のコマンドを実行してください。langchain-ollama は最近追加された必須パッケージです。
pip install langchain pip install langchain-community pip install langchain-ollama pip install chromadb
📝 メインスクリプトの作成
作業フォルダに chat_memory.py というファイルを作り、以下のコードをコピペしてください。
from langchain_ollama import OllamaLLM from langchain_ollama import OllamaEmbeddings from langchain_chroma import Chroma from langchain.schema import Document # ========= 設定 ========= LLM_MODEL = "llama3.2" # 使うモデル名 EMBED_MODEL = "nomic-embed-text" # 記憶検索用モデル # ========= LLM(会話AI) ========= llm = OllamaLLM(model=LLM_MODEL) # ========= Embedding(記憶の変換) ========= embeddings = OllamaEmbeddings(model=EMBED_MODEL) # ========= ChromaDB(記憶の保存先) ========= db = Chroma( collection_name="memory", embedding_function=embeddings, persist_directory="./chroma_db" # ここにDBが保存される ) # システムプロンプト(AIの基本設定) SYSTEM_PROMPT = """ あなたは親切なAIアシスタントです。 ルール: - 初心者向けに説明する - 日本語で回答する - 危険なコードは書かない - 専門用語は少なめにする """ print("AIチャット開始(終了するには exit と入力)") while True: user_input = input("\nあなた: ") if user_input == "exit": break # ===== 過去記憶の検索 ===== memories = db.similarity_search(user_input, k=3) memory_text = "\n".join([m.page_content for m in memories]) # ===== プロンプトの組み立て ===== prompt = f"""{SYSTEM_PROMPT} 【過去の記憶】 {memory_text} 【ユーザーの質問】 {user_input} 上記の記憶を考慮して回答してください。 """ # ===== AI回答の生成 ===== response = llm.invoke(prompt) print(f"\nAI: {response}") # ===== 会話を記憶として保存 ===== db.add_documents([ Document(page_content=f"ユーザー: {user_input}\nAI: {response}") ])
▶ スクリプトを実行!
以下のコマンドで起動します。最初に「私はCocoonを使っています」と話しかけてみましょう。
python chat_memory.py
実行に成功すると ./chroma_db フォルダが作成されます。このフォルダにすべての記憶が保存されます。次回起動時も記憶は引き継がれます。
ChromaDBは最近バージョンアップが多いため、from langchain_chroma import Chroma でエラーが出た場合は pip install langchain-chroma を別途実行してください。
🚀 OpenWebUI + Mem0 最強構成
ChatGPT風のブラウザUIで、さらに便利にローカルAIを使いこなしましょう。
OpenWebUIとは?
一言で言うと「Ollama版 ChatGPT」です。ブラウザで開くだけで使えるUIが提供されます。会話履歴・ファイル読み込み・RAG・複数モデル切替に対応しています。
Open WebUI
提供:Open WebUI コミュニティ(OSS)
ChatGPTにそっくりなブラウザUIでOllamaを操作できます。会話履歴・ファイル読み込み・RAG・複数モデル切替など高機能。最近は音声・画像・Web検索・MCPエージェントにも対応。
Mem0
提供:Mem0 AI(OSS+クラウドプラン)
ChatGPTの長期記憶に最も近い体験ができるライブラリ。「Cocoonを使っている」という一文を自動で {"framework": "Cocoon"} のように整理・構造化して保存します。
🐳 OpenWebUI をDockerで導入する手順
🐳 Docker Desktopのインストール
Docker Desktop公式サイトからインストールして起動しておきます。
▶ Open WebUIをDockerで起動
PowerShellで以下のコマンドを実行するだけ。初回のみイメージダウンロードに時間がかかります。
docker run -d ^ -p 3000:8080 ^ -v open-webui:/app/backend/data ^ --name open-webui ^ ghcr.io/open-webui/open-webui:main
🌐 ブラウザでアクセス
ブラウザで http://localhost:3000 を開けば完成です。初回は管理者アカウントの登録が必要です。
OpenWebUIが起動したら、左上の「モデル選択」からollamaで取得したモデル(例:llama3.2)を選ぶと、すぐにチャットができます。RAGやファイル読み込みは左サイドバーの「+」から設定できます。
🏆 最強構成の全体像
⚠️ 注意点・よくある失敗と対策
長期記憶をうまく育てるために知っておきたいポイントです。
記憶は「量より質」が大切です。なんでもかんでも保存すると、古い・間違った情報が混ざり、AIの回答精度が下がります。
記憶の肥大化
長く使うとDBが膨れ上がり、動作が遅くなる・古い情報が混入するなどの問題が起きます。
文脈汚染
無関係な過去記憶が混ざり込み、AIが엉뚱な回答をすることがあります。
古い情報の残存
「以前はAというツールを使っていた」という記憶が、乗り換えた後も残り続けます。
本格運用するならMem0が解決してくれる
記憶の整理・古い情報の排除・優先度管理・ユーザープロファイル化——これらをすべて自動でやってくれるのがMem0の強みです。長期的に使いたいなら、Mem0の導入を強くおすすめします。
Mem0のクラウドAPIを使う場合はデータが外部サーバーへ送信されます。完全ローカルで使いたい場合は、OSSのセルフホスト版またはChromeDB単体の構成を選んでください。
📌 まとめ・あなたへのおすすめロードマップ
段階的にアップグレードして、自分だけのローカルAIを育てよう。
WordPress運営者・Python学習者へのおすすめ順
WordPress・SEO・Pythonを継続的に相談したいなら、まずOllama+OpenWebUIから始めて、慣れてきたらRAGとMem0を追加するのが最も現実的なルートです。
🦙 Ollama + OpenWebUI を導入する
まずはChatGPT風UIでローカルAIを体験。Dockerコマンド1発で完成。履歴と複数モデル切替が使えるようになります。
🗄️ RAG(ChromaDB)を追加して記憶を持たせる
本記事のPythonスクリプトを参考に、ベクトル検索付きの長期記憶を実装します。WordPressマニュアルや過去記事を学習させることも可能です。
🧠 Mem0を追加して記憶を自動整理させる
本格的に毎日使うなら、Mem0でユーザープロファイルを自動管理。「Cocoon使用・初心者向け希望・SEO相談中」を記憶し続ける最強AIが完成します。
📚 将来的にできること
- WordPress過去記事を丸ごと学習
- SEO・Search Consoleデータ活用
- 自動記事要約・リライト提案
- Python/CSS相談の継続学習
🔧 使えるモデル例
- llama3.2:3b(軽量・初心者向け)
- qwen3:4b(日本語に強い)
- gemma3:4b(Googleモデル)
- nomic-embed-text(記憶検索用)
✅ データプライバシー
- すべてローカルで動作
- データが外部へ送られない
- ChatGPTより安全な運用が可能
- オフラインでも動作OK
この記事の手順通りに進めれば、Ollama + LangChain + ChromaDB の長期記憶チャットが完成します。次のステップとしてOpenWebUI・Mem0を追加すると、ChatGPT以上の「自分専用AIアシスタント」に育てることができます。

コメント