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

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

- URL: https://toukei-lab.com/langchain
- 公開: 2023.06.01 / 更新: 2026.10.28
- サイト: スタビジ（https://toukei-lab.com）

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

こんにちは！

データサイエンティストのウマたん([@statistics1012](https://twitter.com/statistics1012?lang=ja))です！

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

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

しかし、今回紹介する[LangChain](https://langchain.com/)というライブラリを導入することでかなり便利になりました！

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

<https://toukei-lab.com/gpt>

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

## LangChainとは

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

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

:::box
**・[公式サイト](https://langchain.com/)**\
**・[Githubリポジトリ](https://github.com/hwchase17/langchain)**
:::

### LangChainの特徴

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

> LangChain は、言語モデルを利用してアプリケーションを開発するためのフレームワークです。私たちは、最も強力で差別化されたアプリケーションは、API を介して言語モデルを呼び出すだけでなく、次のことも行うと信じています。
>
> 1. データを意識する: 言語モデルを他のデータ ソースに接続する
> 2. エージェント的である: 言語モデルがその環境と対話できるようにする
>
> そのため、LangChain フレームワークは、そのようなタイプのアプリケーションを可能にするという目的を念頭に置いて設計されています。\
> （出典：[LangChain公式サイト](https://docs.langchain.com/docs/)）

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

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

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

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

### LangChainの対応範囲

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

![LangChain対応表](/wp-content/uploads/2023/05/c3fb2ee6fe6a8aa306c4067f4a376239.jpg) ![LangChain対応表](/wp-content/uploads/2023/05/9d5853f458a1b091a576ba6ab6fb1c09.jpg)

:::talk{who="umatan"}
やっぱり時代はPythonだなー！
:::

<https://toukei-lab.com/python-learn>

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

:::box
・[LangChain Integrations（Python）](https://docs.langchain.com/oss/python/integrations/providers/overview)\
・[LangChain Integrations（JavaScript/TypeScript）](https://docs.langchain.com/oss/javascript/integrations/providers/overview)
:::

## LangChainを使った実例

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

### BabyAGI

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

:::box
[公式Githubリポジトリ – BabyAGI](https://github.com/yoheinakajima/babyagi)
:::

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

![BabyAGI処理](/wp-content/uploads/2023/05/138c3121f12938de51bbca043a75576d.jpg)

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

:::box
**目標：データサイエンティストになりたい**
:::

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

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

すごい・・・・

### AutoGPT

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

:::box
[公式Githubリポジトリ – AutoGPT](https://github.com/Significant-Gravitas/Auto-GPT)
:::

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

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

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

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

## LangChainをPythonで使ってみよう！

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

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

```python
pip install langchain langchain-openai
```

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

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

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

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

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

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

```python
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](/wp-content/uploads/2023/05/LangChain.jpg)※回答のパターンは必ずしも完全一致しません（画像は以前のLangChainで実行したときの画面です）

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

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

![LangChain2](/wp-content/uploads/2023/05/LangChain2.jpg)

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

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

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

```python
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](/wp-content/uploads/2023/05/ChatGPT1.png)

2つ目のレスポンス

![ChatGPT2](/wp-content/uploads/2023/05/ChatGPT2.png)

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

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

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

<https://toukei-lab.com/function-calling>

## LangChain　まとめ

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

:::talk{who="umatan"}
頭の良い人たちが研究開発した知識をガンガン社会実装していこう！
:::

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

:::box
**・[スタアカ「大規模言語モデル（LLM）・生成系AIコース」](https://toukei-lab.com/achademy/courses/llm/)\
・[スタアカ「プロンプトエンジニアリングコース」](https://toukei-lab.com/achademy/courses/prompt-engeneering/)**
:::

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

![スタアカ（スタビジアカデミー）のトップページ](/wp-content/uploads/2026/10/achademy-top.jpg)

<table class="table">
<tbody>
<tr>
<th>【価格】</th>
<td>ライトプラン：1,280円/月（全コースが受講し放題）<br>
プレミアムプラン：129,800円（通常149,800円・買い切り）</td>
</tr>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【サポート体制】</th>
<td><span class="stars" role="img" aria-label="5点中4点" data-value="4"></span></td>
</tr>
<tr>
<th>【受講形式】</th>
<td>オンライン形式</td>
</tr>
<tr>
<th>【学習範囲】</th>
<td>統計学・機械学習・ディープラーニングを網羅的に学ぶ<br>
生成AI（LLM・RAG・プロンプトエンジニアリング）を学ぶ<br>
SQLとPythonを組み合わせて実データを使った様々なワークを行う<br>
実践的なビジネスフレームワークを学ぶ<br>
マーケティングの実行プラン策定</td>
</tr>
</tbody>
</table>

:::box
**・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析**\
**・世界最大手小売企業のウォルマートの実データを用いた需要予測**\
**・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定**\
**・生成AIのAPIを使ってチャットボットやAIエージェントを作る**
:::

::button[スタアカの受講はこちら]{href="https://toukei-lab.com/achademy/" note="＼今すぐ試す／"}

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

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

<https://toukei-lab.com/data-scientist>

<https://toukei-lab.com/ai-learning>

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

:::related
[Develop applications powered by Language Models with LangChain](https://towardsdatascience.com/develop-applications-powered-by-language-models-with-langchain-d2f7a1d1ad1a)
:::