ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
テンプレート
テンプレートがありません。
| この記事の要点 |
|
LangChain とは
LangChain は、LLM (大規模言語モデル) を使ったアプリケーション開発のためのオープンソースフレームワークです。OpenAI / Anthropic / Google / ローカル LLM など多様なモデルを統一的なインターフェースで扱え、RAG・Agent・チェーン処理など複雑なワークフローを少ないコードで構築できます。
2022 年末の ChatGPT 登場と同時期に Harrison Chase 氏が公開して以来、LLM アプリ開発のデファクトスタンダードとなっており、GitHub Star 数も生成 AI 関連 OSS としてはトップクラス。Python 版とJS / TS 版が並行開発されています。
LangChain Python と LangChain JS
| LangChain Python | LangChain JS / TS | |
|---|---|---|
| 用途 | データ処理・バッチ・研究 | Web アプリ・Edge・Serverless |
| 機能の網羅性 | ★ 最新機能が先行 | 主要機能はカバー |
| パッケージ名 | langchain | @langchain/core 他 |
| 環境 | FastAPI / Streamlit / Jupyter | Next.js / Cloudflare Workers / Vercel |
セットアップ・準備
# Python 版
pip install langchain langchain-openai langchain-anthropic langchain-community
# JS / TS 版
npm install @langchain/core @langchain/openai @langchain/anthropic langchain
最初のコード — Hello World
Python (LCEL)
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
# モデル
llm = ChatOpenAI(model="gpt-5")
# プロンプトテンプレート
prompt = ChatPromptTemplate.from_messages([
("system", "あなたはプロの日本語コピーライターです。"),
("user", "{product} のキャッチコピーを 3 つ考えて")
])
# パーサ
parser = StrOutputParser()
# チェーン構築(LCEL)
chain = prompt | llm | parser
# 実行
print(chain.invoke({"product": "低糖質おやつ"}))
JS / TS
import { ChatOpenAI } from "@langchain/openai";
import { ChatPromptTemplate } from "@langchain/core/prompts";
import { StringOutputParser } from "@langchain/core/output_parsers";
const llm = new ChatOpenAI({ model: "gpt-5" });
const prompt = ChatPromptTemplate.fromMessages([
["system", "あなたはプロの日本語コピーライターです。"],
["user", "{product} のキャッチコピーを 3 つ考えて"]
]);
const parser = new StringOutputParser();
const chain = prompt.pipe(llm).pipe(parser);
console.log(await chain.invoke({ product: "低糖質おやつ" }));
主要コンポーネント
| コンポーネント | 役割 | 主なクラス |
|---|---|---|
| Models | LLM / Chat / Embedding モデルの統一 IF | ChatOpenAI, ChatAnthropic, OpenAIEmbeddings |
| Prompts | プロンプトテンプレート・Few-shot | ChatPromptTemplate, FewShotPromptTemplate |
| Output Parsers | LLM 出力を構造化(JSON / Pydantic) | JsonOutputParser, PydanticOutputParser |
| Chains | 複数ステップの組合せ | LCEL (| 演算子) |
| Agents | ツールを使う自律 AI | create_react_agent |
| Memory | 会話履歴の保持 | ConversationBufferMemory |
| Indexes / Retrievers | RAG のためのデータ取得 | VectorStoreRetriever |
| Document Loaders | PDF / HTML / Notion 等から取込 | PyPDFLoader, WebBaseLoader |
| Text Splitters | 長文をチャンク化 | RecursiveCharacterTextSplitter |
LCEL (LangChain Expression Language)
LCEL は LangChain 0.1 以降の標準チェーン記述方法。Unix パイプのように | で要素を繋いで、データの流れを宣言的に表現します。
LCEL の利点
- シンプル: 1 行でチェーンが書ける
- 非同期対応:
ainvoke()/astream()を自動で生成 - バッチ実行:
batch()で並列処理 - ストリーミング:
stream()でトークン単位の逐次出力 - LangSmith 統合: 自動でトレース取得
実践コード例
例 1: RAG をシンプルに構築
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain_community.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
# 1. PDF を読み込んでベクトル化
docs = PyPDFLoader("manual.pdf").load()
chunks = RecursiveCharacterTextSplitter(chunk_size=1000).split_documents(docs)
vectordb = Chroma.from_documents(chunks, OpenAIEmbeddings())
retriever = vectordb.as_retriever()
# 2. RAG チェーン
prompt = ChatPromptTemplate.from_template(
"以下の文脈を踏まえて回答してください。\n文脈: {context}\n質問: {question}"
)
rag_chain = (
{"context": retriever, "question": RunnablePassthrough()}
| prompt
| ChatOpenAI(model="gpt-5")
| StrOutputParser()
)
print(rag_chain.invoke("経費精算の手順は?"))
例 2: Agent (Tool Use)
from langchain_openai import ChatOpenAI
from langchain.agents import create_react_agent, AgentExecutor
from langchain_core.tools import tool
@tool
def get_weather(city: str) -> str:
"""指定した都市の現在の天気を返す"""
# 実際は外部 API を呼ぶ
return f"{city} の天気: 晴れ、気温 22℃"
@tool
def calculator(expression: str) -> str:
"""簡単な数式を評価する"""
return str(eval(expression))
tools = [get_weather, calculator]
llm = ChatOpenAI(model="gpt-5")
agent = create_react_agent(llm, tools, prompt="...")
executor = AgentExecutor(agent=agent, tools=tools)
print(executor.invoke({"input": "東京の天気を教えて、それから 23+45 を計算"}))
例 3: 構造化出力(JSON / Pydantic)
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from pydantic import BaseModel, Field
class CustomerInfo(BaseModel):
name: str = Field(description="顧客の名前")
age: int = Field(description="年齢")
email: str = Field(description="メールアドレス")
llm = ChatOpenAI(model="gpt-5").with_structured_output(CustomerInfo)
prompt = ChatPromptTemplate.from_messages([
("user", "次の自己紹介から情報を抽出: {text}")
])
result = (prompt | llm).invoke({
"text": "私は山田太郎、35歳、メールは yamada@example.com です"
})
print(result.name, result.age, result.email)
# → CustomerInfo オブジェクトとして取得
LangSmith でのデバッグ
LangSmith は LangChain 公式の観測・デバッグ・評価プラットフォーム。本番運用するなら必須レベル:
- トレース: チェーン内の各ステップの入出力・所要時間を可視化
- プロンプトデバッグ: 実際にどんなプロンプトが投げられたか確認
- データセット: 良い回答・悪い回答を蓄積して評価セット化
- 評価: GPT-4 等を Judge にして自動評価
- A/B テスト: プロンプト変更の影響を統計的に検証
# 環境変数を設定するだけで自動でトレース送信される
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY="ls__..."
export LANGCHAIN_PROJECT="my-rag-app"
LangGraph(状態管理)
LangGraph は LangChain チームが開発するグラフベースの Agent / ワークフローフレームワーク。複雑な状態遷移・サイクル・ヒューマン・イン・ザ・ループが必要なケースで威力を発揮:
- 各ノードが LLM やツールを呼び出す
- 条件分岐で次のノードを動的に決定
- 状態 (State) をグラフ全体で共有
- チェックポイント機能で中断・再開可能
- 本格的なマルチステップ Agent / ワークフローを構築可能
代替フレームワーク
| フレームワーク | 得意分野 | 特徴 |
|---|---|---|
| LlamaIndex | ★ RAG / 検索 | RAG に特化、インデックス管理が強力 |
| Haystack | 検索 / NLP | deepset 社製、エンタープライズ実績 |
| Semantic Kernel | .NET / C# | Microsoft 製、Azure と相性良 |
| DSPy | プロンプト自動最適化 | Stanford 発、プログラムでプロンプトを記述 |
| AutoGen | マルチエージェント | Microsoft Research 製、複数 Agent 協調 |
| CrewAI | マルチエージェント | 役割ベースの Agent オーケストレーション |
注意点・落とし穴
- 頻繁な破壊的変更: バージョン間で API が変わることが多い、ピン留め推奨
- 抽象化のオーバーヘッド: シンプルな用途では生 API のほうが早い
- パッケージ分割: 0.1 以降
langchain-core/langchain-openai等に分割、混乱しやすい - ドキュメントの古さ: ネット上の古いサンプルが現行 API で動かないことがある、公式ドキュメント優先
- Agent はまだ実験的: 本番投入は LangGraph 推奨
- コスト管理: チェーンを多段に組むとトークン消費が膨れる、LangSmith でモニタリング
関連リンク
- OpenAI API 入門 — Python / Node.js から GPT-5 を呼ぶ
- Anthropic Claude API 入門 — Claude 4 を使い倒す
- RAG (Retrieval-Augmented Generation) 入門
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
テンプレート
テンプレートがありません。
子ページはありません
- OpenAI API 入門 — Python / Node.js から GPT-5 を呼ぶ
- Anthropic Claude API 入門 — Claude 4 を使い倒す
- RAG (Retrieval-Augmented Generation) 入門
- LangChain 入門 — LLM アプリ開発フレームワーク
人気ページ
- 1 AIツール初心者向け使い方ガイド|ChatGPT/Claude/Midjourney 等の使い方を初心者向けに解説
- 2 Suno 使い方完全ガイド|AI 楽曲生成 / 歌詞付き / 商用利用 / 日本語対応
- 3 入門・基礎知識|AIツール初心者向け使い方ガイド
- 4 Runway 使い方完全ガイド|Gen-3 / Text-to-Video / Image-to-Video
- 5 チャット AI|AIツール初心者向け使い方ガイド
- 6 画像生成 AI|AIツール初心者向け使い方ガイド
- 7 Gemini 使い方完全ガイド|Google 製 AI / Workspace 統合 / Deep Research
- 8 AI コーディング|AIツール初心者向け使い方ガイド
- 9 動画生成 AI|AIツール初心者向け使い方ガイド
- 10 Microsoft Copilot 使い方完全ガイド|Office / Windows / 365 Copilot
最近更新/作成されたページ
- AIツール初心者向け使い方ガイド|ChatGPT/Claude/Midjourney 等の使い方を初心者向けに解説 2026-05-17 09:27:49
- Runway 使い方完全ガイド|Gen-3 / Text-to-Video / Image-to-Video 2026-05-17 09:26:13
- ElevenLabs 使い方完全ガイド|AI 音声 / Voice Cloning / 商用利用 2026-05-17 09:26:13
- NotebookLM 使い方完全ガイド|Google AI 知識ベース / 音声ポッドキャスト生成 2026-05-17 09:26:13
- Stable Diffusion ローカル環境構築|AUTOMATIC1111 / SDXL / 無料・商用可 2026-05-17 09:26:13
- Suno 使い方完全ガイド|AI 楽曲生成 / 歌詞付き / 商用利用 / 日本語対応 2026-05-17 09:26:13
- Notion AI 使い方完全ガイド|社内ナレッジ Q&A / AI 執筆 / 翻訳 2026-05-17 09:26:13
- Perplexity 使い方完全ガイド|引用元付き AI 検索エンジン / Pro Search 2026-05-17 09:26:13
- Midjourney 使い方完全ガイド|料金・プロンプト・主要機能・商用利用 2026-05-17 09:26:13
- GitHub Copilot 使い方完全ガイド|VS Code / JetBrains / Chat / Edits 2026-05-17 09:26:13
- Claude Code 使い方完全ガイド|Anthropic 公式 CLI コーディング エージェント 2026-05-17 09:26:13
- Cursor 使い方完全ガイド|AI 統合 IDE / Tab 補完 / Composer 2026-05-17 09:26:13
- Gemini 使い方完全ガイド|Google 製 AI / Workspace 統合 / Deep Research 2026-05-17 09:26:13
- Claude 使い方完全ガイド|Anthropic 製 AI / Artifacts / Projects / Computer Use 2026-05-17 09:26:13
- ChatGPT 使い方完全ガイド|無料/有料プラン・プロンプト・業務活用法 2026-05-17 09:26:13
コメントを削除してもよろしいでしょうか?