🌟

LangChainとは?

2025/03/10に公開

近年、LLM(大規模言語モデル)を活用したアプリケーション開発が急速に進んでいます。その中で、LangChain は、LLMを効果的に利用し、柔軟なAIアプリケーションを構築するための強力なフレームワークです。

本記事では、LangChainの概要、主な機能、使い方についてわかりやすく解説し、最後に簡単な実装を紹介します。


1. LangChainとは?

LangChainは、LLM(大規模言語モデル)を活用するためのフレームワークで、以下のような特徴を持ちます。

LLMとの連携が簡単:OpenAI(GPT-4)、Anthropic(Claude)、Google GeminiなどのLLMを簡単に利用できる。

プロンプト管理が容易:テンプレート化や動的プロンプト生成が可能。

外部データの活用:RAG(Retrieval-Augmented Generation)によって、データベースやAPIから情報を取得し、LLMの回答精度を向上させる。

エージェント機能:LLMがツールを使用しながら自律的にタスクを実行できる。

チェーン機能:異なるタスクを連携し、複雑なワークフローを構築できる。

LangChainは、単なるLLMのラッパーではなく、**「LLMを活用したアプリケーションをスムーズに開発できる環境」**を提供することを目的としています。


2. LangChainの主な機能

(1) LLMのラッパー

LangChainは、さまざまなLLM(GPT-4, Claude, Geminiなど)と簡単に連携できます。

from langchain.llms import OpenAI

llm = OpenAI(model_name="gpt-4", temperature=0.7)
response = llm("LangChainって何?")
print(response)

(2) プロンプトのテンプレート化

複雑なプロンプトをテンプレートとして定義し、動的に入力を受け付けることができます。

from langchain.prompts import PromptTemplate

prompt = PromptTemplate(
    input_variables=["topic"],
    template="{topic}について簡単に説明してください。"
)

print(prompt.format(topic="LangChain"))

(3) チェーン(Chain)機能

複数の処理を連携して実行できます。

from langchain.chains import LLMChain
from langchain.llms import OpenAI

llm = OpenAI(model_name="gpt-4")
prompt = PromptTemplate(input_variables=["question"], template="{question}について説明してください。")
chain = LLMChain(llm=llm, prompt=prompt)

print(chain.run("LangChainの使い方"))

(4) RAG(外部データの活用)

外部のデータベースやAPIから情報を取得し、LLMの回答を強化できます。

from langchain.document_loaders import TextLoader
from langchain.indexes import VectorstoreIndexCreator

loader = TextLoader("example.txt")  # テキストファイルをロード
index = VectorstoreIndexCreator().from_loaders([loader])
response = index.query("この文書の概要は?")
print(response)

(5) AIエージェントの構築

LangChainを使って、LLMがツールを活用しながら動作するエージェントを作成できます。

from langchain.agents import load_tools, initialize_agent
from langchain.llms import OpenAI
from langchain.agents import AgentType

llm = OpenAI(model_name="gpt-4")
tools = load_tools(["serpapi", "python"])
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION)

response = agent.run("今日の天気を教えて")
print(response)

3. LangChainの活用例

LangChainを活用すると、以下のようなアプリケーションを簡単に構築できます。

  • チャットボット(LLMを活用した会話型AI)
  • 質問応答システム(外部データを利用した高精度な回答)
  • ドキュメント検索(RAGによる文書要約や検索)
  • 自律型AIエージェント(APIやツールと連携してタスクを実行)

4. LangChainの簡単な実装

以下は、LangChainを使って簡単なQ&Aシステムを作る実装例です。

from langchain.llms import OpenAI
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate

# LLMの設定
llm = OpenAI(model_name="gpt-4")

# プロンプトの定義
prompt = PromptTemplate(
    input_variables=["question"],
    template="質問: {question}\n答え: "
)

# チェーンの作成
chain = LLMChain(llm=llm, prompt=prompt)

# 実行
question = "LangChainとは何ですか?"
answer = chain.run(question)
print("Q:", question)
print("A:", answer)

このコードでは、LLM(GPT-4)に質問を渡し、その答えを生成するシンプルなシステムを作成しています。


5. まとめ

LangChainは、LLMを活用するための強力なフレームワーク。
LLMのラッパー、プロンプト管理、チェーン、エージェント、RAGなど多彩な機能を持つ。
簡単なコードで高度なAIアプリケーションを構築できる。

LangChainを使えば、LLMを活用したアプリ開発がよりスムーズに行えます。次回は、LangChainを活用した応用的な実装について解説します!

Discussion