LangChainとは?初心者向けに基本機能から活用事例まで解説
技術解説 2025.11.30

LangChainとは?初心者向けに基本機能から活用事例まで解説

Kanzaki
Author

LangChainの基本から実践的な使い方まで初心者向けに解説。主要機能(Chain、Memory、Retrieval、Agent)の仕組みと、RAGやチャットボット開発などの活用事例をわかりやすく紹介します。

「LangChainって聞いたことはあるけど、何ができるの?」

「生成AIを使ったアプリを作りたいけど、どう始めればいい?」

このような疑問を持っている方は多いのではないでしょうか。

LangChainは、ChatGPTなどの大規模言語モデル(LLM)を活用したアプリケーション開発を効率化するフレームワークです。本記事では、LangChainの基本から活用事例まで、初心者向けにわかりやすく解説します。

LangChainとは?

LangChainの概要

LangChainは、大規模言語モデル(LLM)を活用したアプリケーション開発のためのオープンソース・フレームワークです。2022年10月にHarrison Chase氏によって開発され、現在GitHubで最も急成長しているオープンソースプロジェクトの一つとなっています。

LangChainの役割

簡単に言えば、LangChainはChatGPTやGPT-4などのLLMを「つなぎ合わせて」、より高度なアプリケーションを構築するための開発ツールキットです。

LangChainを使わない場合:

  • LLMのAPIを直接呼び出す複雑なコードが必要
  • 会話の文脈を保持する仕組みを自作する必要がある
  • 外部データとの連携を一から実装する必要がある

LangChainを使う場合:

  • 統一されたインターフェースで様々なLLMを簡単に利用可能
  • 会話履歴の管理機能が標準で用意されている
  • 外部データとの連携機能が充実している
読者
読者

ChatGPTのAPIを直接使うのとは何が違うんですか?

AIアドバイザー
AIアドバイザー

ChatGPT APIだけだと、単発の質問と回答しかできません。LangChainを使うと、複数の処理を連結したり、外部のデータベースと連携したり、会話の文脈を記憶させたりと、より複雑で実用的なアプリケーションを簡単に作れるようになります。

なぜLangChainが注目されているのか

従来のLLM活用には、以下のような課題がありました。

1. 複数のLLMの使い分けが難しい:OpenAI、Anthropic、Googleなど、プロバイダーごとにAPIの仕様が異なる

2. 外部データとの連携が複雑:社内文書やデータベースとLLMを組み合わせるのが大変

3. プロンプトエンジニアリングが属人化:効果的なプロンプトの管理・再利用が難しい

LangChainは、これらすべてを解決する統合的なソリューションを提供しています。

LangChainの主要機能

主要機能

LangChainには、LLMアプリケーション開発に必要な機能がすべて揃っています。

1. Chain(チェーン)

複数の処理を鎖のようにつなげて実行する機能です。「Chain」がLangChainの名前の由来でもあります。

処理の流れの例:

1. ユーザーから質問を受け取る

2. 必要に応じてデータベースを検索

3. LLMに質問+検索結果をプロンプトとして渡す

4. LLMの回答を受け取り、ユーザーに返却

このような複数ステップの処理を、一つのChainとして定義・管理できます。

2. Memory(メモリ)

会話の履歴や状態を保存し、文脈を継続できるようにする機能です。

通常のLLM APIでは、毎回の会話がリセットされてしまいます。Memoryを使うことで、チャットボットが過去のやり取りを覚えて、文脈に沿った回答ができるようになります。

主な記憶方式:

  • ConversationBufferMemory:全ての会話履歴を保持
  • ConversationSummaryMemory:過去の対話を要約して保存
  • ConversationBufferWindowMemory:最新のN件だけを保持

3. Retrieval(リトリーバル)

大量のドキュメントから、質問に関連する情報だけを検索・抽出する機能です。

LLMは一度に処理できるテキスト量に制限があります。100ページ以上のドキュメント全文をプロンプトに入れることはできません。

Retrievalの仕組み:

1. 膨大なドキュメントをあらかじめベクトル化してデータベースに保存

2. ユーザーの質問を同じくベクトル化

3. ベクトル近傍検索で関連性の高い文書を取得

4. その文書をLLMにコンテキストとして渡して回答を生成

これが、いわゆるRAG(Retrieval-Augmented Generation)の基本的な仕組みです。

4. Agent(エージェント)

LLMが自律的に判断して、必要なツールを使いながらタスクを完了する機能です。

最もワクワクする機能と言えるでしょう。Agentを使うと、LLMが状況に応じて検索エンジンを使ったり、計算を実行したり、データベースにアクセスしたりと、複合的なタスクを自動で処理できます。

Agentの動作例:

1. ユーザーの指示を受け取る

2. LLMが「どのツールを使うべきか」を自律的に判断

3. 必要なツールを呼び出して中間結果を取得

4. 最終的な回答を生成

5. Model I/O(モデル入出力管理)

異なるLLMプロバイダーを統一されたインターフェースで扱える機能です。

OpenAI、Anthropic Claude、Google Geminiなど、様々なLLMを同じコードスタイルで利用できます。プロジェクトの途中でモデルを変更したい場合も、コードの修正は最小限で済みます。

6. Callbacks(コールバック)

処理の実行状況を監視・記録する機能です。

ログ記録、データのストリーミング、トークン使用量のカウントなど、本番運用に必要な監視機能を実装できます。

合同会社四次元 LangChainを活用したAIシステム開発を支援

LangChainの始め方

始め方

LangChainはPythonで使用するのが最も一般的です。基本的な使い方を見ていきましょう。

環境構築

まず、必要なパッケージをインストールします。

“`bash

基本パッケージのインストール

pip install langchain

pip install langchain-openai

pip install langchain-community

“`

基本的な使い方

最もシンプルなLangChainの使用例です。

“`python

from langchain_openai import ChatOpenAI

from langchain.schema import HumanMessage, SystemMessage

import os

APIキーの設定

os.environ[“OPENAI_API_KEY”] = “your-api-key-here”

LLMの初期化

llm = ChatOpenAI(model=”gpt-4″, temperature=0.7)

メッセージの作成と送信

messages = [

SystemMessage(content=”あなたは親切なAIアシスタントです。”),

HumanMessage(content=”LangChainについて簡潔に説明してください。”)

]

response = llm.invoke(messages)

print(response.content)

“`

プロンプトテンプレートの活用

同じ形式のプロンプトを繰り返し使う場合は、テンプレートを定義すると便利です。

“`python

from langchain.prompts import PromptTemplate

from langchain_openai import ChatOpenAI

from langchain.schema import HumanMessage

llm = ChatOpenAI(model=”gpt-4″, temperature=0.7)

テンプレートの定義

template = PromptTemplate(

input_variables=[“topic”, “level”],

template=”””

あなたは{level}レベルの学習者向けの教育者です。

「{topic}」について、わかりやすく説明してください。

回答形式:

1. 概要(50文字以内)

2. 詳細説明

3. 実例

“””

)

プロンプトの生成

prompt = template.format(topic=”機械学習”, level=”初心者”)

response = llm.invoke([HumanMessage(content=prompt)])

print(response.content)

“`

会話履歴を保持するチャット

Memoryを使って、会話の文脈を保持する例です。

“`python

from langchain_openai import ChatOpenAI

from langchain.memory import ConversationBufferMemory

from langchain.chains import ConversationChain

llm = ChatOpenAI(model=”gpt-4″, temperature=0.7)

メモリの初期化

memory = ConversationBufferMemory()

会話チェーンの作成

conversation = ConversationChain(

llm=llm,

memory=memory,

verbose=True

)

会話を続ける

response1 = conversation.predict(input=”こんにちは、私の名前は田中です。”)

print(response1)

response2 = conversation.predict(input=”私の名前を覚えていますか?”)

print(response2) # 田中さんと認識して回答

“`

AIアドバイザー
AIアドバイザー

LangChainの学習は、この基本形から始めて、徐々にRetrievalやAgentなどの高度な機能に進んでいくのがおすすめです。公式ドキュメントも充実していますよ。

LangChainの活用事例

活用事例

LangChainは様々なビジネスシーンで活用されています。

1. 社内文書検索システム(RAG)

課題: 膨大な社内マニュアルや技術文書から必要な情報を見つけるのに時間がかかる

解決策: LangChainのRetrieval機能を使って、自然言語で質問できる文書検索システムを構築

導入効果:

  • 文書検索時間:30分 → 30秒
  • 回答精度:95%以上
  • 新人教育コストの削減

2. カスタマーサポートチャットボット

課題: 24時間対応が必要だが、人員が限られている

解決策: FAQデータや製品マニュアルを学習させた高度なチャットボットを開発

主な機能:

  • 過去の問い合わせ履歴を参照(Memory)
  • 商品データベースとリアルタイム連携(Retrieval)
  • 複雑な問い合わせは人間にエスカレーション

導入効果:

  • 問い合わせ対応時間:50%短縮
  • 顧客満足度:15%向上

3. データ分析アシスタント

課題: 非エンジニアがデータ分析を行いたいが、SQLやPythonの知識がない

解決策: Agent機能を使って、自然言語の指示からSQLやPythonコードを自動生成・実行

使い方の例:

「先月の売上データから、地域別の販売数量TOP10を円グラフで出して」

→ Agentが自動でSQL実行、集計、グラフ描画まで処理

4. 多言語対応AIアシスタント

課題: グローバル展開に伴い、多言語でのサポートが必要

解決策: LangChainで言語判定と翻訳を組み込んだAIアシスタントを構築

対応言語: 英語、中国語、日本語など
特徴: 文化的背景を考慮した回答生成

LangChainのメリット・デメリット

メリットデメリット

メリット

1. 開発効率の劇的向上

従来は言語モデルごとに異なるコードを書く必要がありましたが、LangChainを使えば短いコードで実装可能です。

2. 複数LLMの使い分けが簡単

コストを抑えたい場面ではGPT-3.5、高品質が必要な場面ではGPT-4など、設定を少し変更するだけで切り替えられます。

3. 豊富なコミュニティサポート

ドキュメントが充実しており、GitHubでのissue対応も活発です。

4. 拡張性の高さ

チャットボット、RAG、自律型エージェントなど、様々なユースケースに対応できます。

デメリット・注意点

1. 学習コストの存在

初心者には少し敷居が高いかもしれません。基本的なPythonの知識が前提となります。

2. 日本語対応の制約

多くのプロンプト例が英語版を想定して作られているため、日本語環境では調整が必要な場合があります。

3. バージョンアップの頻度

急速に発展しているため、バージョンアップのたびに一部の機能が変更されることがあります。長期運用では継続的なメンテナンスが必要です。

読者
読者

LlamaIndexという似たフレームワークも聞いたことがあるのですが、違いは何ですか?

AIアドバイザー
AIアドバイザー

LlamaIndexはRAG特化で、データ検索・取得に強みがあります。一方、LangChainは汎用的なLLMアプリ開発全般をカバーしています。シンプルなRAGを素早く構築したいならLlamaIndex、複雑なワークフローや多機能なアプリを作りたいならLangChainがおすすめです。

比較表:LangChain vs LlamaIndex

項目 LangChain LlamaIndex
得意分野 汎用的なLLMアプリ開発 RAG特化・データ検索
学習難易度 中〜高 低〜中
カスタマイズ性 非常に高い 中程度
コミュニティ 大規模・活発 成長中
主な用途 チャットボット、エージェント、複合処理 文書検索、QAシステム

まとめ

LangChainの特徴をまとめると以下の通りです。

項目 内容
概要 LLMアプリ開発のためのオープンソース・フレームワーク
主要機能 Chain、Memory、Retrieval、Agent、Model I/O
言語 Python(推奨)、JavaScript/TypeScript
主な用途 チャットボット、RAG、データ分析、エージェント開発
対応LLM OpenAI、Anthropic、Google Gemini、ローカルLLMなど

LangChainは、生成AIを活用した本格的なアプリケーション開発には欠かせないフレームワークになりつつあります。学習コストはありますが、一度習得すれば開発効率が飛躍的に向上します。

公式ドキュメント(https://docs.langchain.com/)も充実しているので、まずは簡単なチャットボットから始めてみることをおすすめします。