ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
本稿は LangChain (ラングチェーン) に関する記事です。
| この記事の要点 |
|---|
|
LangChain とは?
LangChain は、LLM を中心としたアプリケーション開発のためのフレームワークです。LLM 単体ではなく、プロンプト・ベクトル DB・外部 API・ツール呼出・メモリといった周辺要素を組み合わせて「チェーン」や「エージェント」を構築するのが目的です。
2022 年に登場後、急速に普及し、LLM アプリ開発の事実上の共通言語になりました。当初は機能を詰め込みすぎてレイヤが厚い批判もありましたが、2024 年以降は LangChain Expression Language (LCEL) 中心のシンプル設計へ整理されています。
LangChain ファミリーの全体像
| プロダクト | 役割 |
|---|---|
| LangChain | 本体ライブラリ。プロンプト・モデル・出力・ベクトル DB・Tool の抽象化 |
| LangGraph | 状態機械でエージェント・ワークフローを組むためのライブラリ(本格運用はこちら) |
| LangSmith | 本番運用向けトレース・評価・モニタリング SaaS |
| LangServe | FastAPI ベースのチェーン公開ヘルパ |
| LangChain Hub | プロンプトテンプレート共有 |
主な特徴
- プロバイダ抽象化 — OpenAI / Anthropic / Google / Ollama 等を同じ API で扱える
- LCEL (LangChain Expression Language) —
|演算子でチェーンを宣言的に組む - 豊富なローダ — PDF / Web / Notion / Confluence / S3 など 100 種類超の Document Loader
- テキスト分割・埋め込み — RAG 構築の標準部品
- ベクトル DB 連携 — Chroma、Faiss、pgvector、Pinecone、Qdrant、Weaviate 等
- Tool 呼出 (Function Calling) — 計算機・検索・コード実行などツールを LLM が選択
- メモリ — 会話履歴の保持・要約
- 非同期・ストリーミング —
astreamでトークン単位の流し込み
典型的な構成: RAG
| ステップ | 担当 | LangChain での部品 |
|---|---|---|
| 1. ドキュメント読込 | Loader | PyPDFLoader、WebBaseLoader |
| 2. テキスト分割 | Text Splitter | RecursiveCharacterTextSplitter |
| 3. 埋め込み生成 | Embeddings | OpenAIEmbeddings、HuggingFaceEmbeddings |
| 4. ベクトル DB に格納 | VectorStore | Chroma、FAISS、PGVector |
| 5. 質問 → 関連文書検索 | Retriever | vectorstore.as_retriever() |
| 6. LLM へプロンプト構築 | Prompt + LLM | ChatPromptTemplate + ChatOpenAI 等 |
| 7. 出力 | Output Parser | StrOutputParser、PydanticOutputParser |
最小サンプル: LCEL でシンプルチェーン
|
from langchain_openai import ChatOpenAI |
最小 RAG サンプル
|
from langchain_community.document_loaders import WebBaseLoader |
LangChain vs LlamaIndex の使い分け
| 観点 | LangChain | LlamaIndex |
|---|---|---|
| 主軸 | 汎用 LLM アプリ・エージェント | データインデックス・検索 (RAG) |
| RAG の作りやすさ | 部品を組合せて作る | 専用 API で短いコードで作れる |
| エージェント | LangGraph で本格組み | Workflow API で組める |
| エコシステム | Tool / Integration が圧倒的に多い | データ取込み (Connector) が強み |
| 本番運用補助 | LangSmith | LlamaCloud |
LangGraph の位置づけ
| エージェントを真面目に作るなら LangGraph |
|---|
LangChain の AgentExecutor はプロトには便利ですが、複雑な分岐や状態管理を扱うと破綻しやすい弱点があります。これを状態機械 (StateGraph) として明示的に組み立てるのが LangGraph です。Anthropic Claude / OpenAI / Gemini のTool 呼出ループ、人間の介入 (human-in-the-loop)、チェックポイントなどを 1 つのグラフで扱え、本番運用に耐える設計が可能になります。
|
インストール
|
# Python |
LangChain は用途別に小さなパッケージに分割されています (langchain-openai、langchain-anthropic、langchain-community 等)。必要なものだけ入れます。
運用上のヒント
| Tips |
|---|
|
注意点
| よくある落とし穴 |
|---|
|
関連
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcatの起動/停止ログとcatalina.log/catalina.outの違い
- 3 【Javascript】base urlを取得する方法
- 4 YouTube Data API (v3) のエラー一覧|403系エラーの確認ポイント
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravelのエラー一覧|原因と対処の入口ページ
- 7 3Dグラフィックス
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOMEの確認方法(Linux, Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- AIの基礎概念 NEW 2026-05-13 10:24:45
- ディープラーニングとは?CNN・RNN・Transformer・LLM の入門 2026-05-13 10:24:07
- 機械学習とは?教師あり・教師なし・強化学習・代表アルゴリズム 2026-05-13 10:24:07
- AIサービスとは?ChatGPT・Claude・Copilot・Gemini など主要サービスの比較 2026-05-13 10:20:39
- AIに必要な数学:線形代数・微積分・確率統計・情報理論・最適化 2026-05-13 10:20:39
- AIライブラリ一覧:PyTorch・TensorFlow・Hugging Face・LangChain 等の比較 2026-05-13 10:20:39
- AIとは?人工知能(機械学習・ディープラーニング・LLM)の入門 2026-05-13 10:20:39
- PyTorch とは?深層学習フレームワークの使い方・TensorFlow との比較 NEW 2026-05-13 10:11:42
- ONNX Runtime とは?クロスプラットフォーム AI 推論エンジン NEW 2026-05-13 10:11:19
- JAX とは?Google 製の関数型数値計算フレームワーク NEW 2026-05-13 10:11:18
- LangChain とは?LLM アプリ開発フレームワークの使い方・RAG NEW 2026-05-13 10:11:17
- LlamaIndex とは?RAG / LLM データ統合フレームワークの使い方 NEW 2026-05-13 10:11:17
- Hugging Face Transformers とは?OSS LLM 利用の標準ライブラリ NEW 2026-05-13 10:11:16
- TensorFlow とは?使い方・Keras・本番デプロイ(vs PyTorch) 2026-05-13 10:11:16
- AIベンダー一覧:OpenAI・Anthropic・Google DeepMind・Microsoft・Meta NEW 2026-05-13 10:00:16
コメントを削除してもよろしいでしょうか?