こんにちは!最近、ChatGPTをはじめとするAIが話題ですよね。でも「ChatGPTを使って自分のアプリを作りたい!」と思ったことはありませんか?
そんな時に便利なのがLangChainというツールです。今回は、プログラミング初心者でもわかるように、LangChainについて解説していきます。
LangChainとは?
LangChainは、AIを使ったアプリケーションを簡単に作るためのフレームワークです。
フレームワークというのは、「便利な道具箱」のようなもの。料理に例えると、一から調味料を調合するのではなく、すでに用意された調味料セットを使って料理を作る感じです。
なぜLangChainが必要なの?
ChatGPTなどのAIをアプリに組み込もうとすると、実は結構大変なんです。
- APIを呼び出すコードを書く
- 長い文章を分割して処理する
- 過去の会話を記憶させる
- データベースから情報を取得して回答に使う
これらを全部自分で書くのは大変ですよね。LangChainを使えば、こういった機能がすでに用意されているので、開発がグッと楽になります。
LangChainでできること
1. チャットボットの作成
一番シンプルな使い方です。ChatGPTのようなAIと会話できるボットを簡単に作れます。
from langchain_openai import ChatOpenAI
from langchain.schema import HumanMessage
# AIモデルの準備
chat = ChatOpenAI(temperature=0.7)
# メッセージを送信
messages = [HumanMessage(content="Pythonについて教えて")]
response = chat.invoke(messages)
print(response.content)
2. 長期記憶を持たせる
普通のChatGPTは、会話の履歴を覚えていません。でもLangChainを使えば、過去の会話を記憶させることができます。
from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain
# 記憶機能を追加
memory = ConversationBufferMemory()
conversation = ConversationChain(
    llm=chat,
    memory=memory
)
# 会話する
conversation.predict(input="私の名前は太郎です")
conversation.predict(input="私の名前は何でしたか?")
# → "太郎さんですね!"と答えてくれる
3. 自分のデータを使った質問応答(RAG)
これが超便利!自分の持っているPDFファイルや文書の内容について、AIに質問できるようになります。
例えば、大学の講義資料をアップロードして「この資料の要点は?」と聞いたり、論文を読ませて「この研究の新規性は?」と質問したりできます。
from langchain.document_loaders import PyPDFLoader
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
from langchain.chains import RetrievalQA
# PDFを読み込む
loader = PyPDFLoader("lecture_notes.pdf")
documents = loader.load()
# ベクトルデータベースに保存
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(documents, embeddings)
# 質問応答システムを作成
qa_chain = RetrievalQA.from_chain_type(
    llm=chat,
    retriever=vectorstore.as_retriever()
)
# 質問する
answer = qa_chain.run("この資料の主なテーマは何ですか?")
print(answer)
4. AIエージェント(自動タスク実行)
これはちょっと上級編。AIが自分で考えて、複数のツールを使いながらタスクを達成してくれます。
例えば、「今日の天気を調べて、もし雨なら傘を持っていくようリマインドして」みたいな複雑な指示も可能です。
LangChainの主要コンポーネント
LangChainは、いくつかの主要な部品で構成されています。
Models(モデル)
AIの本体です。OpenAI(ChatGPT)、Azure OpenAI、Anthropic(Claude)など、様々なAIサービスを使えます。
Prompts(プロンプト)
AIへの指示文のテンプレートです。毎回同じような指示を書くのは面倒なので、テンプレート化できます。
from langchain.prompts import PromptTemplate
template = "あなたは{subject}の専門家です。{question}について説明してください。"
prompt = PromptTemplate(
    input_variables=["subject", "question"],
    template=template
)
# 使用例
final_prompt = prompt.format(subject="機械学習", question="過学習とは")
Chains(チェーン)
複数の処理を連鎖させる機能です。「文書を読み込む → 要約する → 翻訳する」のような流れを作れます。
Memory(記憶)
会話の履歴を保存する機能です。これにより、文脈を理解した会話ができます。
Agents(エージェント)
AIが自分で判断して、必要なツールを選んで使う機能です。一番高度な機能ですね。
実際に始めてみよう
必要なもの
- Python(バージョン3.8以上)
- OpenAI APIキー(有料ですが、初回クレジットがもらえます)
- やる気
インストール
pip install langchain langchain-openai
最初の一歩
import os
from langchain_openai import ChatOpenAI
# APIキーを設定(事前に取得が必要)
os.environ["OPENAI_API_KEY"] = "your-api-key-here"
# AIモデルを初期化
llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0.7)
# 質問してみる
response = llm.invoke("LangChainの使い方を教えて")
print(response.content)
これだけで動きます!簡単ですよね。
よくある使用例
大学生活での活用アイデア
- レポート作成アシスタント:参考文献を読み込ませて、要約や引用を手伝ってもらう
- 試験対策チャットボット:講義資料をアップロードして、質問に答えてもらう
- 論文読解サポート:難しい論文を読ませて、わかりやすく説明してもらう
- 語学学習:会話練習の相手になってもらう
- プログラミング学習:コードの説明やバグ修正のヒントをもらう
注意点
コストについて
OpenAIのAPIは有料です。使った分だけ料金がかかります(従量課金制)。ただし、gpt-3.5-turboは比較的安価なので、個人の学習用途なら月数百円程度で済むことが多いです。
データのプライバシー
個人情報や機密情報をAIに送信する際は注意が必要です。OpenAIのポリシーでは、API経由で送信されたデータは学習には使われませんが、それでも慎重に扱いましょう。
回答の正確性
AIは時々間違った情報を自信満々に答えることがあります(これを「ハルシネーション」と呼びます)。重要な情報は必ず自分で確認しましょう。
もっと学びたい人へ
LangChainは奥が深く、ここで紹介したのはほんの一部です。
おすすめの学習リソース
- 公式ドキュメント:https://python.langchain.com/
- GitHub:実際のコード例がたくさんあります
- YouTube:チュートリアル動画が豊富
- Qiita / Zenn:日本語の解説記事が増えています
まとめ
LangChainは、AIを使ったアプリケーション開発を簡単にしてくれる強力なツールです。
- チャットボットが作れる
- 自分のデータを使った質問応答ができる
- 会話の履歴を記憶できる
- 複雑なタスクを自動化できる
最初は難しく感じるかもしれませんが、小さなプロジェクトから始めて、少しずつ機能を追加していけば大丈夫です。
あなたもLangChainを使って、便利なAIアプリを作ってみませんか?
プログラミングの世界へようこそ!
補足:Azure OpenAIを使う場合
大学や企業でAzure OpenAIを使っている場合は、以下のようにモデルを初期化します。
from langchain_openai import AzureChatOpenAI
llm = AzureChatOpenAI(
    azure_endpoint="https://your-resource.openai.azure.com/",
    api_key="your-api-key",
    api_version="2024-02-01",
    deployment_name="your-deployment-name"
)
基本的な使い方は同じなので、環境に合わせて選んでくださいね!