🇯🇵 JP | 🌐 EN

第1章:LangChainとは?

LLMアプリケーションフレームワークを理解する

📖 読了時間: 15-20分 📊 難易度: 初級 💻 コード例: 4 📝 演習: 2

学習目標

1.1 LLMアプリケーション構築の課題

GPT-4、Claude、GeminiなどのLarge Language Models(LLM)は、AIで可能なことを革新しました。しかし、これらのモデルを使用して本番対応のアプリケーションを構築するには、いくつかの課題があります:

graph TB subgraph Challenges["一般的な課題"] C1[複数のLLMプロバイダー
異なるAPI] C2[プロンプト管理
テンプレートとバージョニング] C3[メモリと状態
会話履歴] C4[ツール統合
外部APIとデータ] C5[エラー処理
リトライとフォールバック] end C1 --> Problem[複雑で断片化したコード] C2 --> Problem C3 --> Problem C4 --> Problem C5 --> Problem style Problem fill:#e74c3c,color:#fff

フレームワークなしの場合

フレームワークなしでLLMアプリケーションを構築するには、以下が必要です:

1.2 LangChainの登場

LangChainは、Large Language Modelsを活用したアプリケーション構築を簡素化するオープンソースフレームワークです。

LangChainとは?

LangChainは、言語モデルを活用したアプリケーション開発のためのフレームワークです。あらゆるLLMと連携するための統一インターフェース、複雑なワークフローを構築するためのコンポーザブルなコンポーネント、そしてストリーミング、キャッシュ、可観測性などの本番対応機能を提供します。

主な価値提案

機能 メリット
統一インターフェース 1行のコードでLLMプロバイダーを切り替え
コンポーザビリティ シンプルなコンポーネントを連結して複雑なワークフローを構築
組み込みメモリ 会話履歴管理が標準搭載
ツール統合 LLMを外部ツールやAPIに簡単に接続
本番対応機能 ストリーミング、キャッシュ、リトライ、可観測性を含む
コード例1:統一インターフェースの威力
# LangChain:シンプルで統一されたインターフェース
from langchain_openai import ChatOpenAI
from langchain_anthropic import ChatAnthropic
from langchain_google_genai import ChatGoogleGenerativeAI

# 1行でプロバイダーを切り替え - 同じインターフェース!
llm = ChatOpenAI(model="gpt-4")
# llm = ChatAnthropic(model="claude-sonnet-4-20250514")
# llm = ChatGoogleGenerativeAI(model="gemini-pro")

# 同じコードがすべてのプロバイダーで動作
response = llm.invoke("量子コンピューティングを簡単に説明してください")
print(response.content)

1.3 LangChainエコシステム

LangChainは単なるライブラリではなく、LLMアプリケーション開発のさまざまな側面に対応したツールのエコシステムです:

graph TB subgraph Ecosystem["LangChainエコシステム"] LC[🔗 LangChain
コアフレームワーク] LG[🌐 LangGraph
エージェントオーケストレーション] LS[🔍 LangSmith
可観測性] end LC -->|構築| Apps[アプリケーション] LG -->|複雑なワークフロー| Apps LS -->|監視とデバッグ| Apps style LC fill:#667eea,color:#fff style LG fill:#11998e,color:#fff style LS fill:#f093fb,color:#fff style Apps fill:#28a745,color:#fff

LangChain(コア)

主要フレームワークが提供するもの:

LangGraph

ステートフルなマルチアクターアプリケーション構築のための別ライブラリ:

LangSmith

LLMアプリケーションの可観測性プラットフォーム:

1.4 LangChain v1.0:新機能

LangChainは2025年10月に最初の安定版(v1.0)をリリースしました。このマイルストーンで重要な変更がありました:

v1.0の主な変更点

  • 新しいcreate_agent APIcreate_react_agentを置き換える簡素化されたエージェント作成
  • content_blocksプロパティ:プロバイダー間でマルチモーダルコンテンツへの統一アクセス
  • 簡素化された名前空間:コア機能はlangchainに、レガシーはlangchain-classic
  • TypedDict状態:エージェントはPydanticモデルの代わりにTypedDictを使用
コード例2:新しいcreate_agent API(v1.0)
from langchain.agents import create_agent
from langchain_openai import ChatOpenAI

# ツールを定義(第3章で詳しく説明)
def search_web(query: str) -> str:
    """Webで情報を検索する。"""
    return f"検索結果: {query}"

# 新しいv1.0 APIでエージェントを作成
agent = create_agent(
    model=ChatOpenAI(model="gpt-4"),
    tools=[search_web],
    system_prompt="あなたは親切なリサーチアシスタントです。"
)

# エージェントを実行
result = agent.invoke({
    "messages": [
        {"role": "user", "content": "今日の天気は?"}
    ]
})
print(result)

1.5 LangChainのインストール

LangChainはモジュラーインストール方式を採用しています。必要なものだけをインストールしてください:

基本インストール
# コアLangChainパッケージ
pip install langchain

# プロバイダー固有のパッケージ(必要に応じてインストール)
pip install langchain-openai      # OpenAIモデル用
pip install langchain-anthropic   # Anthropic Claude用
pip install langchain-google-genai # Google Gemini用

# コミュニティ統合
pip install langchain-community

# インストール確認
python -c "import langchain; print(f'LangChain {langchain.__version__} installed!')"

現在のバージョン(2026年1月)

  • langchain-core:1.2.6
  • langchain:1.2.0
  • Python要件:>= 3.9

APIキーの設定

ほとんどのLLMプロバイダーはAPIキーが必要です。環境変数として設定してください:

環境設定
# Linux/macOS
export OPENAI_API_KEY="your-openai-key"
export ANTHROPIC_API_KEY="your-anthropic-key"

# Windows (PowerShell)
$env:OPENAI_API_KEY="your-openai-key"
$env:ANTHROPIC_API_KEY="your-anthropic-key"

1.6 最初のLangChainアプリケーション

すべてが動作することを確認するために、シンプルなチャットボットを構築しましょう:

コード例4:Hello LangChain
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage

# モデルを初期化
llm = ChatOpenAI(
    model="gpt-4",
    temperature=0.7  # ランダム性を制御(0=決定論的、1=創造的)
)

# メッセージを作成
messages = [
    SystemMessage(content="あなたは物事を簡単に説明する親切なアシスタントです。"),
    HumanMessage(content="機械学習とは何ですか?")
]

# レスポンスを取得
response = llm.invoke(messages)
print(response.content)

演習

演習1:インストール確認

LangChainと少なくとも1つのプロバイダーパッケージをインストールしてください。以下のコードを実行して確認します:

import langchain
from langchain_core.messages import HumanMessage

print(f"LangChain version: {langchain.__version__}")
print("インストール成功!")

演習2:マルチプロバイダー比較

複数のプロバイダーのAPIキーをお持ちの場合、同じ質問を異なるモデルに投げかけ、レスポンスを比較してみてください。スタイル、長さ、内容にどのような違いがありますか?

まとめ

免責事項

本コンテンツは教育目的で提供されています。LangChainはLangChain Inc.によって開発・保守されています。