【Python】LangChainからChatGPTのAPIを利用する

【Python】LangChainからChatGPTのAPIを利用する ChatGPT

「ChatGPTのAPIをPythonで簡単に利用したい」
「LangChainからChatGPTにアクセスしたい」

このような場合には、この記事の内容が参考になります。
この記事では、LangChainからChatGPTのAPIを利用する方法を解説しています。

本記事の内容

  • LangChainとChatGPTの概要
  • LangChainからChatGPTのAPIを呼び出すための設定
  • LangChainからChatGPT APIを利用して質疑応答を行う方法

それでは、上記に沿って解説していきます。

LangChainとChatGPTの概要

LangChainとは、AIアプリケーションを開発するためのライブラリです。
LangChainについては、次の記事で説明しています。

ChatGPTとは、説明するまでもありませんね。
AIのヤバさを世に知らしめたチャットボットです。

ChatGPTは、プログラミングやデータベース設計でもその威力を発揮します。

そんなChatGPTが、LangChainからも利用できるようになりました。
それは、ChatGPTのAPIが公開されたから可能になったのです。

ただし、このAPIは無料ではありません。
価格は、1000トークンあたり0.002ドルとなっています。

これは、GPT-3 (text-davinci-003) の約10分の1の価格です。
このことから、ChatGPTのAPIはかなり利用しやすくなっています。

以上、LangChainとChatGPTの概要を説明しました。
次は、LangChainからChatGPTのAPIを呼び出すための設定を説明します。

LangChainからChatGPTのAPIを呼び出すための設定

LangChainからChatGPTのAPIを呼び出すためには設定が必要です。
その設定は、以下となります。

  • APIキーの取得
  • 必要なライブラリのインストール

それぞれを以下で説明します。

APIキーの取得

Open AIのAPI keyを取得する必要があります。
その取得方法は、次の記事内で説明しています。

必要なライブラリのインストール

LangChainのインストールが必須です。
また、Open AIのAPIにアクセスするためのライブラリも必要となります。

インストール済みであっても、両方とも最新版にしておきましょう。
インストール・更新は、次のコマンドで対応できます。

pip install -U langchain
pip install -U openai

以上、LangChainからChatGPTのAPIを呼び出すための設定を説明しました。
次は、LangChainからChatGPT APIを利用して質疑応答を行う方法を説明します。

LangChainからChatGPT APIを利用して質疑応答を行う方法

LangChainのOpenAIChatクラスを利用します。

OpenAIChat -🦜🔗 LangChain 0.0.98
https://langchain.readthedocs.io/en/latest/modules/llms/integrations/openaichat.html

OpenAIChatクラスを用いて、ChatGPTに対して質疑応答を行います。
そのためのコードは、以下となります。

from langchain.llms import OpenAIChat
from langchain import PromptTemplate, LLMChain
import os

os.environ["OPENAI_API_KEY"] = "コピーしたAPIキー"

llm = OpenAIChat(temperature=0)

template = """Question: {question}
Answer: """

prompt = PromptTemplate(template=template, input_variables=["question"])
llm_chain = LLMChain(prompt=prompt, llm=llm)

question = "江戸幕府最後の将軍は?"
answer = llm_chain.run(question)

print(answer)

上記コードを実行して、次のように表示されれば成功です。

徳川慶喜

これで正解ですが、「Let’s think step by step.」を入力に加えてみましょう。
このフレーズを加えると、回答の精度が向上すると言われています。

template = """Question: {question}
Answer: Let's think step by step."""

入力を上記のように変更します。
変更後に回答は、次のようになります。

1. 江戸幕府 (Edo Shogunate) was the feudal military government that ruled Japan from 1603 to 1868.
2. The last shogun of the Edo period was Tokugawa Yoshinobu (徳川慶喜).
3. Therefore, the answer to the question is Tokugawa Yoshinobu (徳川慶喜).

確かに、段階を踏んでいますね。
でも、英語ではなく日本語で返答してもらいたいです。

そんなときは、そのように指示します。

template = """Question: {question}
Answer: Let's think step by step.日本語で"""

上記の入力に変更すると、日本語で段階を踏むようになります。

まず、江戸幕府とは、江戸時代に存在した日本の政治体制のことです。江戸幕府は、1603年に徳川家康が開いた江戸幕府から、1868年に明治維新が起こるまで続きました。

そして、江戸幕府最後の将軍とは、徳川慶喜(とくがわ よしのぶ)です。彼は、1866年に将軍に就任し、わずか2年後の1868年に明治維新によって幕府が崩壊するまで、江戸幕府を率いました。

完璧な回答です。

以上、LangChainからChatGPT APIを利用して質疑応答を行う方法を説明しました。

タイトルとURLをコピーしました