本文へ移動
カテゴリ

Webマーケ

Webマーケの記事すべてSEOサイト運営データマネジメントビジネス・マーケ概論広告

インタビュー

インタビューの記事すべて

おすすめサービス

おすすめサービスの記事すべて

おすすめ勉強法

おすすめ勉強法の記事すべて

おすすめ書籍

おすすめ書籍の記事すべて

データサイエンス

データサイエンスの記事すべてデータ解析品質工学多変量解析機械学習生成AI統計学

プログラミング

プログラミングの記事すべてPythonRSQLプログラミングスクール

スタビジについて

記事一覧運営者情報お問い合わせ

【5分で分かる】LangChainのPythonでの使い方 -チュートリアル-

目次
ウマたんウマたん

当サイト【スタビジ】の本記事では、大規模言語モデル(LLM)を上手く扱う上で非常に便利なLangChainというライブラリについて概要からPythonでの使い方まで見ていきたいと思います。LangChainを使うことで複雑な処理に対応したプログラムを簡潔に書くことができるのでLLMを組み込んだサービスを作るときなどに重宝します!

こんにちは!

データサイエンティストのウマたん(@statistics1012)です!

この記事ではChatGPTなどの大規模言語モデル(LLM)を扱う際に便利なLangChainというライブラリについて紹介していきたいと思います!

僕自身ChatGPTのAPIを利用してアプリを開発しているのですが、それだけだとかゆいところに手が届かないことも多かったんです。

しかし、今回紹介するLangChainというライブラリを導入することでかなり便利になりました!

ChatGPTをはじめとするGPTモデルについては以下の記事を参考にしてみてください!

GPT-1→GPT-2→GPT-3→GPT-3.5→ChatGPT→GPT-4までの進化の軌跡と違いをまとめてみた当サイト【スタビジ】の本記事では、昨今のAIの進化のきっかけになっているGPTシリーズについてまとめていきたいと思います。GPT-1から始まりGPT-2、GPT-3、そしてChatGPTであるGPT-3.5、GPT-4と進化してきました。この進化の軌跡と違いについて解説していきます。

ということでこの記事ではそんなLangChainについて解説していきたいと思います!

LangChainとは

それでは早速LangChainについて見ていきましょう!

LangChainの公式サイトやGithubのリポジトリは以下ですので適宜参考にしてみてください。

LangChainの特徴

LangChainの公式サイトには以下のように記述があります。

LangChain は、言語モデルを利用してアプリケーションを開発するためのフレームワークです。私たちは、最も強力で差別化されたアプリケーションは、API を介して言語モデルを呼び出すだけでなく、次のことも行うと信じています。

  1. データを意識する: 言語モデルを他のデータ ソースに接続する
  2. エージェント的である: 言語モデルがその環境と対話できるようにする

そのため、LangChain フレームワークは、そのようなタイプのアプリケーションを可能にするという目的を念頭に置いて設計されています。
(出典:LangChain公式サイト)

そうなんです。LangChainは言語モデルを利用してアプリケーションを作る際に効果を発揮します。

その上で2つの特徴を取り上げている通り、他のデータソースに接続したり対話できるように過去のやり取りを参照したりなどできるようになります。

現状ChatGPTのAPIをそのまま利用すると、インターネット上のデータソースを参照して答えを返したり過去のやり取りを保持して参照しながら答えを返すみたいなことをするにはかなり手間がかかります。

そこら辺の処理をLangChainでは簡易的によしなにやってくれるので、アプリを構築する際に非常に便利なのです!

LangChainの対応範囲

現状LangChainでは、PythonとTypeScriptに対応しておりますが、Pythonの方が圧倒的にできることや呼び出せるAPIの範囲が広いのでPythonを利用することをオススメします。

LangChain対応表 LangChain対応表

ウマたんウマたん

やっぱり時代はPythonだなー!

【Python独学勉強法】Python入門を3ヶ月で習得できる学習ロードマップ当サイト【スタビジ】の本記事では、過去僕自身がPythonを独学を駆使しながら習得した経験をもとにPythonを効率よく勉強する方法を具体的なコード付き実装例と合わせてまとめていきます。Pythonはできることが幅広いので自分のやりたいことを明確にして勉強法を選ぶことが大事です。

Pythonでどこまで出来てTypeScriptだと何が出来ないかは、以下の公式の表を確認すると分かります。

LangChainを使った実例

続いてLangChainを使った実例について見ていきましょう!

BabyAGI

LangChainを使うと自律駆動形のAIを構築することが可能であり、このBabyAGIは目標さえ与えてあげれば、それを元に逐次的にタスクをこなし次のタスクを立てて駆動していきます。

LangChainを使って作られており、公式Githubに処理の流れが記載されております。

BabyAGI処理

以下のような感じでBabyAGIに投げかけてあげると勝手にタスクをこなして次のタスクを自分で立ててどんどんタスクをこなしていきます。

汎用的に使えて、曖昧なゴールに対しても筋道立ててタスクを分解してくれることから世界中で話題になっているAIです。

なんとこの自律駆動形AIは、あのMicosoftの伝説のエンジニア中嶋聡さんの息子さんが開発されたとのこと。

すごい・・・・

AutoGPT

そしてBabyAGIに負けず劣らず話題になっているのがこちらのAutoGPT。

こちらもBabyAGIと同じように自立駆動形AIです。

インターネット上の情報を検索することもできますし、それをもとにタスクを立てることもできます。

ChatGPT単体だと痒いところに手が届かないことをより自律的にやってくれるエージェントAIがAutoGPTです。

こんな感じでLangChainを使うとより自律型のAIを構築することができるのです!

LangChainをPythonで使ってみよう!

それでは、簡単にLangChainをPythonで実装していきましょう!

まずは、ライブラリ「langchain」と、OpenAIのモデルを使うための「langchain-openai」をインストールしていきましょう!

pip install langchain langchain-openai

続いて必要なメソッドをインポートしていきます。

from langchain_openai import ChatOpenAI
from langchain.agents import create_agent
from langgraph.checkpoint.memory import InMemorySaver
import os

続いてOpenAIのAPIキーを取得して環境変数にセットしましょう!

os.environ["OPENAI_API_KEY"] = "<OpenAIのAPIキー>"

そしたら早速LangChainの出番です。

以下のように記載してあげてください。

llm = ChatOpenAI(model="gpt-6-luna")
agent = create_agent(
    model=llm,
    checkpointer=InMemorySaver()  # 過去のやり取りをメモリに保存しておく
)
config = {"configurable": {"thread_id": "1"}}  # 同じthread_idのあいだは会話がつながる

def conversation(prompt):
    result = agent.invoke({"messages": [{"role": "user", "content": prompt}]}, config)
    # 保存されているやり取りをすべて表示
    for message in result["messages"]:
        message.pretty_print()

conversation("データサイエンスを勉強するための方法を3つ教えて下さい。")

以前のLangChainではConversationChainとConversationBufferMemoryを使っていましたが、今はcreate_agentに会話の履歴を保存するcheckpointer(InMemorySaver)を渡す形になっています。

conversationの中身は何でも大丈夫ですので好きなプロンプトを入れてみてください。

以下のような回答が返ってくることが分かると思います。

LangChain※回答のパターンは必ずしも完全一致しません(画像は以前のLangChainで実行したときの画面です)

これではシンプルな一問一答のやり取りですが、続いて以下のように問いかけてみましょう。

conversation("1つ目についてもっと詳しく")

LangChain2

こちらを見てみるとちゃんと今までの過去のやり取りが格納されており(画像ではHistoryという箇所。今のコードでは1つ目の質問と回答も一緒に表示されます)、それをふまえてちゃんとAIが1つ目について詳しく教えてくれています。

この過去の情報を加味した返答は、実はChatGPTのAPIを1回ずつ呼び出すだけだとできないのです!(今のOpenAIのResponses APIには、previous_response_idを渡して前のやり取りを引き継ぐ機能もあります)

OpenAIのAPIだけを使って同じように問いかけてみます。

from openai import OpenAI

client = OpenAI(api_key="<OpenAIのAPIキー>")

prompt = '''データサイエンスを勉強するための方法を3つ教えて下さい。'''

response = client.responses.create(
            model="gpt-6-luna",
            input=prompt
        )

print(response.output_text)


prompt = '''1つ目についてもっと詳しく'''

response = client.responses.create(
            model="gpt-6-luna",
            input=prompt
        )

print(response.output_text)

1つ目のレスポンス

ChatGPT1

2つ目のレスポンス

ChatGPT2

1つ目のレスポンスは正しく返してくれるのですが、2つ目のレスポンスは1つ目の内容を加味した上で返してくれず的外れな会話になってしまっています。。。

このように過去の会話を加味した状態でレスポンスを返してくれるようなプログラムを開発するのであれば、LangChainを使うのが最適なのです!

LangChainと似たことができる機能としてOpenAIが提供しているFunction callingというものがありますのでそちらもぜひ以下の記事で学んでおきましょう!

ChatGPTの便利API機能「Function calling」をPythonで実装!自分だけのAI Agentを作ってみよう!当サイト【スタビジ】の本記事では、ChatGPT(正確にはGPTモデル)のAPIに新しく追加されたFunction callingという機能について解説していきたいと思います。実際にPythonを使ってFunction callingでどんな処理が構築できるのか実装していきますよ!

LangChain まとめ

ここまでで、OpenAIが開発するGPTモデルのAPIを利用する上で非常に便利なLangChainというライブラリについてまとめてきました!

ウマたんウマたん

頭の良い人たちが研究開発した知識をガンガン社会実装していこう!

各種大規模言語モデル(LLM)をPythonで利用する方法やプロンプトエンジニアリングについて知りたい方は当メディアが運営するスタアカの以下のコースを是非チェックしてみてください!

スタアカは業界最安級のAIデータサイエンススクールです。

スタアカ(スタビジアカデミー)のトップページ

【価格】 ライトプラン:1,280円/月(全コースが受講し放題)
プレミアムプラン:129,800円(通常149,800円・買い切り)
【オススメ度】
【サポート体制】
【受講形式】 オンライン形式
【学習範囲】 統計学・機械学習・ディープラーニングを網羅的に学ぶ
生成AI(LLM・RAG・プロンプトエンジニアリング)を学ぶ
SQLとPythonを組み合わせて実データを使った様々なワークを行う
実践的なビジネスフレームワークを学ぶ
マーケティングの実行プラン策定

AIデータサイエンスを学んで市場価値の高い人材になりましょう!

データサイエンスやAIの勉強方法は以下の記事でまとめています。

【5分で分かる】データサイエンティストに必要なスキルと独学勉強ロードマップ!当サイト【スタビジ】の本記事では、データサイエンティストに求められるスキルとそれを身に付けるための勉強法について徹底的にまとめていきます!入門者でも、しっかりデータサイエンティストについて理解しある程度独学で駆け出しの状態までいけることを目指します。 【これだけ!】AI(人工知能)の勉強ロードマップを徹底的に解説!当サイト【スタビジ】の本記事では、AIを勉強するロードマップについて徹底的に解説していきます。まずは、AIの概要について理解して統計学の基本知識・機械学習の基本知識・Pythonでの実装・インフラ周りの知識などを包括的に理解していきましょう!

LangChainに関しては他にも色んな記事で解説されていますが、例えば以下の記事が分かりやすく参考になります。

スポンサーリンク

ウマたんスタビジ編集長

大学院は理系の統計科学研究室で、ベイズ統計学・時系列分析・異常検知を研究。日系・外資の消費財メーカーのデータサイエンティストを経て、現在は会社を経営しながらデータサイエンティストとして働いています。

スタビジアカデミー

読んだ内容を、スタアカの「大規模言語モデル(LLM)・生成系AI」コースで身につける

データサイエンス・AIを、動画と課題で体系的に学べるオンラインスクール。最初のレッスンは無料で見られます。