【ラングチェイン】

LangChain とは?

💡 LLMアプリ開発のレゴブロック
📌 このページのポイント
LangChain — LLMアプリ構築のチェーン構造 ユーザー入力 Chain(チェーン) Prompt テンプレート LLM GPT等 Output パーサー 回答 主要コンポーネント Memory 会話履歴の保持 コンテキスト管理 Retriever 外部データ検索 RAG対応 Tools 外部API呼び出し 計算・検索など Agents 自律的な判断 ツール選択・実行
LangChainのイメージ
ひよこ ひよこ

LangChainって最近よく聞くけど、何がうれしいの?

ペンギン先生 ペンギン先生

LLMに「質問して→回答をもらう」だけじゃなくて、データベース検索やAPI呼び出しを組み合わせた複雑なアプリを、パーツを組み合わせるみたいに作れるんだよ

ひよこ ひよこ

ChainとかAgentってどう違うの?

ペンギン先生 ペンギン先生

Chainは処理の順番が決まっている「パイプライン」で、Agentは状況に応じてLLM自身がどのツールを使うか判断する「自律型」だね。Agentのほうが柔軟だけどその分制御が難しいよ

ひよこ ひよこ

RAGを作るのに便利って聞いたけど?

ペンギン先生 ペンギン先生

そうだね。ドキュメントを読み込んでベクトル化して、質問に関連する部分を検索して、LLMに渡して回答させる、という一連の流れをLangChainなら数十行で書けるんだ

ひよこ ひよこ

おもしろい!弱点はないの?

ペンギン先生 ペンギン先生

ベテランの間でもよく議論になるんだけど、LangChainは抽象化レイヤーが厚すぎてデバッグが大変という批判があるんだ。内部で何が起きているか追いにくくて、本番運用でトラブルシュートに苦労するケースがあるよ

ひよこ ひよこ

便利すぎるのも困りものなんだね……

ペンギン先生 ペンギン先生

そうなんだ。最近はLangChainの反省を活かした軽量フレームワークLlamaIndexやLiteLLMなど)も増えているし、LangChain自体もLCEL(LangChain Expression Language)という新しい書き方で再設計を進めているよ。フレームワーク選びは「自分がどこまで制御したいか」で決めるのが大事だね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「LangChain」って出てきたら「LLMを使ったアプリを部品の組み合わせでサクサク作れるフレームワーク」と思えればだいたいOK!
📖 おまけ:英語の意味
「LangChain」 = 言語の鎖
💬 「Lang」はLanguage(言語)、「Chain」は鎖。LLMへの問いかけを鎖のようにつないで複雑な処理を実現するイメージから名付けられたんだよ
← 用語集にもどる