LangChain 入門

LangChain は、大規模言語モデル(LLM)アプリケーションを構築するための Python フレームワークです。

LangChain は、さまざまな AI モデルに接続するための統一インターフェースを提供し、ツールを自動的に呼び出し、知識を検索し、コンテキストを記憶できるスマートな Agent の構築をサポートします。


LangChain とは

簡単に言うと、LangChain は次の核心的な問題を解決します:大規模言語モデルが外部の世界とやり取りできるようにする。

ネイティブの LLM はトレーニングデータに基づいてテキストを生成するだけです。しかし、実際のアプリケーションでは、AI がデータベースを照会し、API を呼び出し、ドキュメントを検索し、メールを送信できる必要があります。

LangChain は、これらの機能を連携させるための標準化されたコンポーネントを提供します。

コンポーネント 機能 コア機能 主な用途
Models(モデル) 大規模言語モデルに接続する
  • 統一モデルインターフェース
  • 複数モデルの切り替えに対応
  • GPT / Claude / Gemini などを呼び出す
  • チャットボット
  • テキスト生成
  • AI Q&A
Prompts(プロンプトテンプレート) Prompt テンプレートの管理
  • Prompt のパラメータ化
  • 動的変数の置き換え
  • テンプレートの再利用
  • AI 対話
  • コンテンツ生成
  • 構造化出力
Document Loader(ドキュメント読み込み) 外部ドキュメントデータの読み取り
  • PDF / TXT / DOCX の読み込み
  • ウェブページとデータベースの読み取り
  • ドキュメント形式の統一
  • 知識ベース
  • RAG システム
  • ドキュメントQ&A
Text Splitter(テキスト分割) 長いテキストの分割
  • テキストの Chunk 分割
  • Token 長の制御
  • ベクトル検索の最適化
  • RAG
  • ベクトルデータベース
  • 長文テキスト処理
Memory(メモリ) コンテキスト記憶の実装
  • チャット履歴の保存
  • 長期記憶
  • 対話状態の管理
  • チャットボット
  • AI アシスタント
  • Agent
Retriever(レトリーバー) 関連する知識コンテンツの検索
  • ベクトル検索
  • セマンティック検索
  • RAG データのリコール
  • 企業知識ベース
  • AI 検索
  • ドキュメントQ&A
Tools(ツール) 外部ツールと API の呼び出し
  • インターネット検索
  • データベース照会
  • コードの実行
  • AI Agent
  • 自動化タスク
  • データ分析
Output Parser(出力パーサー) モデル出力結果の解析
  • 構造化出力
  • JSON 解析
  • フォーマット検証
  • API レスポンス
  • 自動化システム
  • データ処理
Chains(チェーン) 複数のコンポーネントを組み合わせてワークフローを形成する
  • 複数ステップの実行
  • プロセスオーケストレーション
  • コンポーネントの連結
  • 複雑な AI アプリケーション
  • RAG ワークフロー
  • Agent システム

技術的な観点から見ると、LangChain はモジュール化された LLM アプリケーション開発フレームワークであり、次の3つの層で構成されています:

層説明パッケージ名
コア抽象層モデル、ツール、メッセージなどの基本インターフェースを定義するlangchain-core
ユーザーインターフェース層init_chat_model、create_agent などの高レベル API を提供するlangchain
統合層OpenAI、Anthropic、Ollama などのサードパーティサービスに接続するlangchain-openai など

なぜ LangChain を選ぶのか

モデル API を一度呼び出すだけであれば、HTTP リクエストを直接使うだけで十分です。しかし、完全な AI アプリケーションを構築する必要がある場合、LangChain には次のような利点があります:

機能説明適用シーン
モデル統一インターフェース1つのコードで OpenAI / Anthropic / DeepSeek などのモデルを切り替える複数モデルの比較テスト、コスト最適化
Agent アーキテクチャモデルがツールを呼び出すタイミングを自動的に決定し、思考と行動のループを形成する自動化タスク、スマートカスタマーサポート
ミドルウェアシステムモデル呼び出しの前後にカスタムロジック(リトライ、キャッシュ、フィルタリング)を挿入する本番環境での信頼性の保証
構造化出力モデルに指定された形式で JSON を返させ、プログラムでの解析を容易にするデータ抽出、フォームへの自動入力
メモリと永続化対話メモリとセッションをまたぐストレージ機能を内蔵マルチターン対話、ユーザー嗜好の記憶
エコシステムが豊富数百のサードパーティ統合があり、主要なモデルとツールをカバーさまざまなサービスへの迅速な接続

LangChain でできること

以下は、LangChain の最も代表的なアプリケーションシナリオです:

スマートチャットボット

マルチターン対話の記憶を備え、外部ツール(天気確認、注文確認、メール送信)を呼び出せるチャットアシスタント。

RAG 知識ベースQ&A

プライベートドキュメント(PDF、ウェブページ、データベース)をベクトル化して保存し、モデルがこれらのドキュメントに基づいて引用元付きで質問に回答できるようにする。

Agent 自動化アシスタント

モデルがタスクの手順を自律的に計画し、必要に応じてさまざまなツールを呼び出して、「先週の売上データを整理してレポートを生成して」のような複雑なマルチステップ操作を完了する。

データ抽出と分析

非構造化テキストから構造化情報を抽出し(例:契約書のスキャン文書からキーフィールドを抽出)、またはモデルにデータ分析の結論を生成させる。


LangChain と LangGraph の関係

多くの初心者がこれら2つのライブラリの違いに困惑します。簡単に言うと:

比較項目LangChainLangGraph
位置づけ高レベル Agent フレームワーク、すぐに使える低レベルワークフローエンジン、細かな制御
習得難易度低い、10行のコードで Agent を作成中〜高、グラフ(Graph)の概念を理解する必要がある
適用シーン標準的な Agent アプリケーション、迅速なプロトタイピング複雑なマルチステップワークフロー、複数 Agent の協調
関係LangChain の create_agent() は、基盤として LangGraph の上に構築されています

本チュートリアルは LangChain に焦点を当てています。学習を始めたばかりなら、LangChain から始めるのが正しい選択です。より細かなフロー制御が必要になったときに、LangGraph を深く学びましょう。


準備

学習を始める前に、次の基礎知識だけが必要です:

  • Python の基本構文(関数、クラス、型アノテーション)
  • pip を使用して Python パッケージをインストールできること
  • 基本的なコマンドライン操作を理解していること
  • 大規模言語モデルの API キーを持っていること(OpenAI、Anthropic などで可)

本チュートリアルのコード例は Python 3.10+ 環境でテスト済みです。

その他の拡張