ChatGPT×LangChain Webの最新の情報を取得して文章を生成する方法

  • URLをコピーしました!

※本ページはアフィリエイト広告を利用しています

今回はOpenAIの大規模言語モデルChatGPTを使って、Web上の最新情報を元に文章を生成する方法について解説します。LangChainのエージェントを使用し、簡単なPythonコードで実装できますので、ぜひ活用してみてください。

LangChainと組み合わせることで、ChatGPTが最新情報を元に回答をすることが可能。

また、当ブログ内のChatGPTについての記事を以下のページでまとめていますので、あわせてご覧ください。

目次

ChatGPTとは

ChatGPTは、OpenAIが提供する自然言語生成モデルです。GPT(Generative Pre-training Transformer)と呼ばれるモデルのアーキテクチャを採用しています。

GPTは、Transformerと呼ばれるニューラルネットワークを使用して、文書や言語処理タスクでのテキスト生成を行うモデルです。GPTは、大量のテキストデータを学習し、そのデータをもとに新しい文章を生成することができます。

ChatGPTは、GPTをもとにしたモデルであり、対話型システムやチャットボットなどで使われることを想定して開発されています。対話を続けることができるようになっており、ユーザーが入力するテキストに対して、自然で返答ができるようになっています。

ChatGPTの学習データ

OpenAIが公開している情報によると、ChatGPTの学習しているデータは2021年末までのものとなっています。したがってそれ以降の情報については、ChatGPTに質問しても回答できないということになります。

ChatGPTが対応できるのは2021年末までのデータとなります。

しかし、後程紹介するChatGPTの機能を拡張するLangChainと組み合わせることにより、最新のデータをGoogleの検索エンジンを通して収集し、回答を作成することが可能になります。

OpenAI APIキーの取得

また今回紹介するPythonのプログラムでは、コード内からOpenAIのAPIを介してChatGPTを使用するため、OpneAIのAPIキーが必要になります。
OpenAIのAPIキーの取得方法については以下の記事で解説していますので、事前に取得しておいてください。

LangChainとは

LangChain は、言語モデルを利用したアプリケーションを開発するためのフレームワークです。
今回はこのLangChainのエージェントを使って、必要な最新情報をGoogle検索エンジンで取得し、ChatGPTに入力して回答を生成します。

LangChainの詳細については以下の記事で解説しています。

Google Programmable Search EngineのAPIキーを取得

LangChainを使ってWeb上の情報を収集する際に、Googleの検索エンジンAPIを経由して取得します。
以下の記事でGoogleの検索エンジンIDとAPIキーの取得方法について解説しますので、事前に取得を済ませておいてください。

ライブラリのインストール

今回のアプリケーション構築に必要なライブラリをインストールします。
以下のコマンドを実行してインストールしてください。

OpenAIのライブラリ

pip install openai

LangChainのライブラリ

pip install langchain

Googleの検索エンジンのライブラリ

pip install google-api-python-client

作成したPythonコード

ここからは実際にLangChainを使ったChatGPTの文章生成処理を実装するためのPythonコードを解説します。

Pythonコード解説

環境変数の設定

事前に取得したOpenAIのAPIキー、Googleの検索エンジンID、検索エンジンAPIキーを環境変数に設定する必要があります。これらの設定方法についてはLangChainの以下の公式ドキュメントに記載されています。

Google Search Wrapperの使い方は以下のページで解説されています。

環境変数の設定方法は以下のページで解説されています。

環境変数一覧

情報を設定する環境変数は以下の通りです。

OpenAIのAPIキーOPENAI_API_KEY
Googleの検索エンジンAPIGOOGLE_API_KEY
Googleの検索エンジンIDGOOGLE_CSE_ID
設定する環境変数
設定するためのPythonコード

Pythonで環境変数の設定を行うにはosモジュールをインポートします。
環境変数に書き込みを行うにはos.environ()メソッドを使用します。

import os
os.environ["OPENAI_API_KEY"] = "(OpenAIのAPIを設定)"
os.environ["GOOGLE_API_KEY"] = "(Googleの検索エンジンAPIキーを設定)"
os.environ["GOOGLE_CSE_ID"] = "(Googleの検索エンジンIDを設定)"

toolsでGoogleの検索エンジンを指定

Agentに与えるツールを指定します。今回はGoogleの検索エンジンを使用するため、「[“google-search”]」を指定します。

tools = load_tools(["google-search"], llm=llm)

Agent(エージェント)の作成

LangChainのAgentの作成にはinitialize_agentメソッドを使用します。

agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)

作成した全体のソースコード

作成した全体のPythonコードは以下の通りです。
最後のrunメソッドの引数にChatGPTへの質問を設定して実行します。

from langchain.llms import OpenAI
from langchain.agents import load_tools
from langchain.agents import initialize_agent

# 環境変数を設定
import os
os.environ["OPENAI_API_KEY"] = "(OpenAIのAPIを設定)"
os.environ["GOOGLE_API_KEY"] = "(Googleの検索エンジンAPIキーを設定)"
os.environ["GOOGLE_CSE_ID"] = "(Googleの検索エンジンIDを設定)"

#LLMを設定
llm = OpenAI(model_name="gpt-3.5-turbo")

tools = load_tools(["google-search"], llm=llm)

#エージェントの作成
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)

agent.run("(ここにChatGPTへの質問を入力")

Pythonコードの実行結果

先ほどのPythonコードを実行し、2021年以降の新しい情報に対応できているかを確認します。

ChatGPTへの質問

今回は最新の情報を取得した上で回答を作成できているかを確認するため、2023年の米アカデミー賞受賞作品を質問してみました。

agent.run("2023年の米アカデミー賞 最優秀作品賞は何ですか?")

ChatGPTからの回答

ChatGPTからの回答は以下となります。
まず、Googleの検索エンジンを通してアカデミー賞受賞作品に関するデータの収集が行われています。

ndan Fraser, "The Whale" — Winner · Colin Farrell, "The Banshees of Inisherin" · Austin Butler, "Elvis" · Bill Nighy, "Living" · Paul ... Official site of the Academy with history and general information on the Academy Awards, as well as photographs, events and screenings, and press releases. Jan 24, 2023 ... The best picture race contains the two highest-grossing films of the year, “Avatar: The Way of Water” and “Top Gun: Maverick,” along with “Elvis ... ^ Reul, Katie (March 12, 2023). "'Everything Everywhere All at Once' Wins Seven Oscars, Is Most-Awarded Best Picture Since 'Slumdog Millionaire'". Variety ... See all the Oscars 2023 Winners! The 2023 Oscar for Best Picture goes to... Top Gun: Maverick tops the list of the 2023 Oscar Best Picture nominees ranked by Tomatometer — makes sense since the Tom Cruise joyride was declared the ... Mar 12, 2023 ... "Everything Everywhere All at Once" wins Best Picture at the 95th Academy Awards. “Everything Everywhere All at Once” wins Best Picture at the ... Mar 10, 2023 ... “The Way of Water” is an immersive survival story in tandem with delivering breathtaking visual information in every second of its hefty running ... Mar 13, 2023 ... "Everything Everywhere All At Once" took home the Academy Award for best picture, capping a sweep of the major prizes Sunday night. The A24 film ...
Thought:Based on the Google Search results, it looks like "Everything Everywhere All at Once" won Best Picture at the 2023 Academy Awards.Final Answer: "Everything Everywhere All at Once" was the Best Picture at the 2023 Academy Awards.
> Finished chain.

そして最後のファイナルアンサーの部分で、それらの情報を元にChatGPTが回答を作成しています。

Final Answer: "Everything Everywhere All at Once" was the Best Picture at the 2023 Academy Awards.
(最終回答: 「Everything Everywhere All at Once」は、2023 年のアカデミー賞の最優秀作品賞でした。)

ChatGPTからの回答で受賞作品は「Everything Everywhere All at Once」とありましたので、ネットで検索して確認したところ、正しい情報でした。

これにより、2022年以降の内容にも対応できていることが確認できました。

\ Pythonを自宅で好きな時に学べる! /

まとめ

今回はChatGPTとLangChainを組み合わせ、Web上の最新情報を元に回答を作成する方法について解説しました。新しい情報にアクセスできることにより、ChatGPTの活用の幅がさらに広がると思いますので、ぜひ試してみてください。

また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。

スキルアップや副業にぜひ活用してみてください。

スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。

講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。

それでは、また次の記事でお会いしましょう。

著:Steven Bird, 著:Ewan Klein, 著:Edward Loper, 翻訳:萩原 正人, 翻訳:中山 敬広, 翻訳:水野 貴明
¥4,170 (2023/09/18 22:14時点 | Amazon調べ)
よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次