ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?