はじめてのLangChain入門|GPTに記憶や検索機能を持たせる方法とは?
LangChainとは何か?
はじめに
ChatGPTなどの大規模言語モデル(LLM)を使ったプロダクトやサービスが増えてきました。
個人開発でも「チャットボットを作った」といったものが多く見られます。
しかし、実際に使ってみるとこんな悩みにぶつかることがありませんか?
- 毎回ゼロからの会話になってしまい、文脈を覚えてくれない
- 外部データやツールを使いたいが、GPT単体ではできない
- 複数ステップの処理や判断を自動でやってほしい
こうした限界を乗り越えるために開発されたのが「LangChain」というライブラリ。
LangChainとは何か、何ができるのか、そしてどんな人に向いているのか解説します。
LangChainとは?
LangChainは、「大規模言語モデル(LLM)を使ったアプリケーションを構築するためのフレームワーク」
LangChainは、GPTを“記憶・検索・ツール使用”できる賢いアシスタントに進化させるライブラリ
LangChainの主な機能
LangChainが提供する機能は多岐にわたりますが、ここでは代表的なものを紹介します。
1. Chain(チェーン)
複数の処理を連結して、1つのフローとして定義できます。
例:ユーザーの質問 → 外部検索 → 回答の整形 → 応答
2. Memory(メモリ)
過去の会話を記憶して、文脈を保持した対話を可能にします。
3. Tool(ツール)
OpenAIの関数呼び出しや外部API、検索エンジン、計算ツールなどを使えるようにします。
4. Agent(エージェント)
GPT自身が「次に何をするべきか」を考えてツールを呼び出す、“思考して行動するAI”。
5. Retriever(検索器)
ベクターデータベース(例:Pinecone、Supabaseなど)と連携して、文書ベースの検索型チャット(RAG)を実現します。
6. Output Parser / Prompt Template
GPTの出力をJSONなどに整形したり、プロンプト設計を再利用可能にします。
LangChainとOpenAI公式SDKの違い
比較項目 | langchain-openai | openai(公式SDK) |
---|---|---|
主な用途 | LLMアプリ構築 | GPT API直接操作 |
抽象化レベル | 高 | 低 |
記憶機能 | ○(Memoryあり) | × |
ツール連携 | ○(Tool, Agent) | ×(自前で実装) |
チェーン構築 | ○ | ×(手動で組む) |
LangChainは「アプリ全体の設計図や枠組み」、OpenAI SDKは「エンジン部分」だと考えるとわかりやすいです。
実例:LangChainでのコード
import { ChatOpenAI } from "langchain-openai";
const chatModel = new ChatOpenAI({
openAIApiKey: process.env.OPENAI_API_KEY,
modelName: "gpt-4",
});
const res = await chatModel.invoke("こんにちは!最近の天気は?");
console.log(res.content);
このように、LangChainではモデルに直接質問するだけでなく、処理フローの中に組み込んだり、外部データベースとの連携が容易にできます。
どんな人におすすめ?
LangChainは以下のようなユースケースに特に向いています。
- GPTを使ったチャットボットを本格構築したい人
- 社内文書を読み込ませて回答するRAGを作りたい人
- 会話履歴を記憶して継続的な対話ができるAIを作りたい人
- ツール実行、API連携を含む業務支援AIを作りたい人
まとめ
LangChainは、ChatGPTのようなLLMを“部品”として活用しながら、複雑で賢いアプリケーションを構築するためのフレームワークです。
今後ますます、単なるプロンプトだけでなく、LLMをどう組み込むかが問われる時代になります。
LangChainはその第一歩として最適なツールです。
Discussion