LangChain 2026 入門ガイド:Pythonで初めてのLLMアプリを構築
LLMアプリケーション開発の標準フレームワーク。ChainからAgentまで—LLMオーケストレーションの技術をステップバイステップで習得。
LLMが脳なら、LangChainは脳を手足につなげる神経系です。
2026年、単にLLM APIを呼び出すだけでは複雑なビジネスニーズを満たせなくなりました。コンテキストを記憶し、ウェブを検索し、データベースをクエリし、状況に応じてツールを呼び出せるAIが必要です。LangChainはこのために生まれました—LLMアプリケーション構築のデファクトスタンダードとなっています。
LangChainとは?
LangChainは、言語モデルを活用したアプリケーション開発のためのフレームワークです。標準化されたインターフェースセットを提供し、異なるコンポーネント(モデル、プロンプト、メモリ、インデックス、エージェント)をブロックのように組み合わせることができます。
コアコンポーネント:
- Models: ユニバーサルAPIインターフェース—OpenAI、Anthropic、またはローカルのOllamaを自由に切り替え。
- Prompts: プロンプトテンプレートをより科学的に管理・再利用。
- Chains: 複数のステップをリンク(例:記事を要約してからフランス語に翻訳)。
- Agents: タスクに基づいて次に何をすべきかAIに自律的に判断させる(例:検索ツールを呼び出す)。
- Memory: AIに複数ターンの会話内容を記憶させる。
- LangGraph(新星): 2026年のハイライト—複雑で循環的なマルチエージェント協調システムを構築するため。
環境セットアップ
1. Pythonをインストール
Pythonバージョン >= 3.10を確認してください。
2. LangChainをインストール
pipを使用したインストールを推奨します。
# 仮想環境を作成
python -m venv venv
source venv/bin/activate # Windowsユーザー: venv\Scripts\activate
# コアライブラリをインストール
pip install langchain langchain-openai langchain-community
3. APIキーを設定
export OPENAI_API_KEY="sk-proj-xxxxxxxx"
初めてのLLMアプリ:翻訳アシスタント
最もシンプルなChainを書いてみましょう:ユーザー入力を受け取り、フランス語に翻訳します。
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
# 1. モデルを初期化
model = ChatOpenAI(model="gpt-4o")
# 2. プロンプトテンプレートを作成
prompt = ChatPromptTemplate.from_template(
"以下のテキストを{language}に翻訳してください:\n{text}"
)
# 3. 出力パーサーを定義(文字列結果を直接抽出)
parser = StrOutputParser()
# 4. Chainを構築(LCEL構文を使用、パイプラインのように接続)
chain = prompt | model | parser
# 5. 実行
result = chain.invoke({"language": "フランス語", "text": "こんにちは、LangChainを学びたいです。"})
print(result)
# 出力: Bonjour, je veux apprendre LangChain.
これが**LCEL(LangChain Expression Language)**の魔法です。|演算子を使って、プロンプト、モデル、パーサーをパイプラインにチェーンしました。
上級編:RAG(ナレッジベースQ&A)の構築
わずか数行のコード変更で、AIにプライベートデータに基づいて質問に答えさせることができます。
from langchain_community.document_loaders import WebBaseLoader
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain.chains import create_retrieval_chain
from langchain.chains.combine_documents import create_stuff_documents_chain
# 1. ウェブデータを読み込み
loader = WebBaseLoader("https://docs.langchain.com/docs")
docs = loader.load()
# 2. ドキュメントを分割
text_splitter = RecursiveCharacterTextSplitter()
documents = text_splitter.split_documents(docs)
# 3. ベクターデータベースに保存
vector = FAISS.from_documents(documents, OpenAIEmbeddings())
# 4. リトリーバーを作成
retriever = vector.as_retriever()
# 5. Q&Aチェーンを作成
prompt = ChatPromptTemplate.from_template("""以下のコンテキストに基づいて質問に答えてください:
<context>
{context}
</context>
質問: {input}""")
document_chain = create_stuff_documents_chain(model, prompt)
retrieval_chain = create_retrieval_chain(retriever, document_chain)
# 6. 質問する
response = retrieval_chain.invoke({"input": "LangChainとは何ですか?"})
print(response["answer"])
LangSmith:デバッグの強力な味方
LLMアプリ開発で最も苦痛なのは何?出力がおかしくなった時にどのステップが間違っているかわからないこと。 LangSmithはLangChainの公式モニタリングプラットフォームです。環境変数を設定するだけ:
export LANGCHAIN_TRACING_V2="true"
export LANGCHAIN_API_KEY="your-api-key"
すべてのChain実行トレース、トークン消費、レイテンシメトリクスがウェブダッシュボードで視覚化されます。これはプロンプトの最適化やAgentのデバッグに不可欠です。
次に学ぶべきこと
- LangServe: Chainをワンクリックで REST APIとしてデプロイ。
- LangGraph: ステートフルで循環的なAgentワークフローの構築を学ぶ(2026年の主流)。
- マルチモーダル: 画像や音声モデルの組み込みを試す。
LangChainはAI開発の敷居を下げています。今や、誰もがAIエンジニアになれます。