0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】LangChainって何?大学生でもわかるAIアプリ開発入門

Posted at

こんにちは!最近、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が自分で判断して、必要なツールを選んで使う機能です。一番高度な機能ですね。

実際に始めてみよう

必要なもの

  1. Python(バージョン3.8以上)
  2. OpenAI APIキー(有料ですが、初回クレジットがもらえます)
  3. やる気

インストール

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)

これだけで動きます!簡単ですよね。

よくある使用例

大学生活での活用アイデア

  1. レポート作成アシスタント:参考文献を読み込ませて、要約や引用を手伝ってもらう
  2. 試験対策チャットボット:講義資料をアップロードして、質問に答えてもらう
  3. 論文読解サポート:難しい論文を読ませて、わかりやすく説明してもらう
  4. 語学学習:会話練習の相手になってもらう
  5. プログラミング学習:コードの説明やバグ修正のヒントをもらう

注意点

コストについて

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"
)

基本的な使い方は同じなので、環境に合わせて選んでくださいね!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?