Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LangChain × Ollamaで学ぶLLM & RAG超入門

Avatar for dassimen dassimen
April 27, 2025
59

LangChain × Ollamaで学ぶLLM & RAG超入門

ローカルだけでLLMとRAGについて入門する資料

ソースコードサンプルは以下に配置
- https://github.com/GitHiroki/LLM_Study_Introduction

Avatar for dassimen

dassimen

April 27, 2025
Tweet

Transcript

  1. LangChain × Ollama で学ぶLLM & RAG 超入門 Gemma3 + Ruri

    Embeddings + Chroma + LangChain + FastAPI + Open WebUI LangChain × Ollama で学ぶLLM & RAG 超入門 © 2025 1
  2. 0. 目的 1. Retrieval-Augmented Generation (RAG )の動きを理解する 2. 完全ローカル環境で LLM

    (Gemma3 )を使った検索付き QA API を構築 3. ブラウザ UI (Open WebUI )から RAG と対話して効果を体感する 対象読者は プログラミング経験者(Python ・Docker の基礎が分かる)で AI /LLM は初学者という前提です。 LangChain × Ollama で学ぶLLM & RAG 超入門 © 2025 2
  3. 1. 構成図 Ollama が LLM API と Embedding API を提供(Gemma3

    ・Ruri で推論) FastAPI が LangChain で RAG を実行し、OpenAI 互換エンドポイント /v1/chat/completions として公開 Open WebUI はフロントエンド。環境変数 OPENAI_API_BASE を FastAPI に向ける ことで RAG を UI から利用できる LangChain × Ollama で学ぶLLM & RAG 超入門 © 2025 3
  4. 2. システム要件 項目 推奨値・備考 OS Windows 11 + WSL 2

    (Ubuntu 22.04) Docker Docker Desktop (WSL backend) GPU ( 任意) NVIDIA / CUDA 12 以上 (VRAM 8 GB+) CPU だけでも可(遅くなる) ポート 11434 (Ollama) / 8000 (FastAPI) / 3000 (WebUI) LangChain × Ollama で学ぶLLM & RAG 超入門 © 2025 4
  5. 3. ディレクトリ構成 . ├─ compose.yml ├─ rag_api/ │ ├─ Dockerfile

    │ ├─ app.py # FastAPI + LangChain │ └─ docs/ # 検索対象ファイル(Markdown 等) └─ chroma_store/ # ベクトル DB(自動生成) 学習用のソースコードサンプルは以下に配置してます。 https://github.com/GitHiroki/LLM_Study_Introduction LangChain × Ollama で学ぶLLM & RAG 超入門 © 2025 5
  6. 4. セットアップ手順 1. リポジトリを clone ★リポジトリを用意しよう git clone https://github.com/GitHiroki/LLM_Study_Introduction.git; cd

    LLM_Study_Introduction 2. Docker コンテナ起動 docker compose up -d 3. モデルをダウンロード(別ターミナル) docker exec -it ollama ollama pull gemma3:1b docker exec -it ollama ollama pull kun432/cl-nagoya-ruri-base 4. ブラウザでアクセス http://localhost:3000 へ モデル選択ドロップダウンで gemma-rag を選び、質問を入力 LangChain × Ollama で学ぶLLM & RAG 超入門 © 2025 6
  7. 5. 動作確認チェックリスト チェック 確認方法 RAG が呼ばれてい るか? Open WebUI の

    DevTools → Network で POST /v1/chat/completions を確認 検索結果が変わる か? docs/ にファイルを追加→ docker restart rag-api → 再質問 ベクトル DB が永続 か? docker compose down → up -d 後も回答が保持される LangChain × Ollama で学ぶLLM & RAG 超入門 © 2025 7
  8. 6. 発展課題 1. ストリーミング対応 StreamingResponse で SSE を返し、WebUI の stream=on

    を有効化 2. メタデータフィルタ store.as_retriever(filter={"source": "internal"}) で限定検索 3. LangSmith トレーシング LANGCHAIN_TRACING_V2=true で生成過程を可視化 4. 認証追加 FastAPI で Authorization ヘッダを検証し、Open WebUI 側に同じキーを設定 LangChain × Ollama で学ぶLLM & RAG 超入門 © 2025 8
  9. 7. まとめ Gemma3 (LLM ) + Ruri-base (日本語埋め込み) + Chroma

    (ベクトル DB ) LangChain で RAG パイプラインを構築し、FastAPI で OpenAI 互換 API にラップ Open WebUI から完全ローカル RAG 環境と対話し、効果を体験 LangChain × Ollama で学ぶLLM & RAG 超入門 © 2025 9