「ChatGPT」とは、OpenAIが提供するAPIの1つであり、自然言語処理タスクを実現するためのものです。ChatGPT APIは、文章の意味解析やテキストの生成など、様々な自然言語処理タスクに使用することができます。
本記事では、ChatGPT のプロンプトとAPIについて解説し、実際にAPIを活用したプログラムの例を紹介します。また、APIを活用して自然言語の会話文を生成する方法についても紹介します。プログラム未経験者でも理解できるように、分かりやすい内容にしています。
※本記事で表示しているコードは、ChatGPTが出力したコードです。動作保証などはできませんのであらかじめご了承ください。
プロンプト【prompt】とは
「プロンプト(prompt)」とは、コンピュータやソフトウェアなどで、ユーザーからの入力待ち状態を示すための、コマンドラインやテキストボックスなどの入力欄のことを指します。
プロンプトは、通常、コンピュータがユーザーからの入力を待っているときに表示されます。例えば、コマンドプロンプトやターミナルウィンドウで、ユーザーに何か入力を求めるときには、プロンプトが表示されます。また、多くのソフトウェアやウェブサイトでも、ユーザーからの入力を求めるために、プロンプトを表示することがあります。
プロンプトは、ユーザーが入力するべき情報を明確に示し、入力内容を正確に解釈できるようにするために非常に重要な役割を果たしています。また、プロンプトによって、ユーザーとコンピュータとの対話がよりスムーズに行えるようになります。
ChatGPTにおけるプロンプトとは
ChatGPTは、自然言語処理の技術を使用した言語モデルであり、プロンプトとは生成される文章の前に与えられる文のことを指します。
ChatGPTにおいて、プロンプトを入力することで、その文脈を考慮した文章の生成が可能になります。例えば、ユーザーが「明日の天気は?」というプロンプトを入力すると、ChatGPTはその文脈を考慮して「明日は晴れになるでしょう」というような応答を生成することができます。
プロンプトは、ChatGPTが生成する文章を制御するために非常に重要な役割を果たします。プロンプトを工夫することで、ChatGPTが生成する文章の内容やトーンを制御することができます。
また、プロンプトに対する応答を生成することで、ChatGPTが特定のトピックについての知識を持っているかどうかを確認することができます。
プログラムでプロンプトを実行するには、ChatGPT APIを使用します。例えば、プログラム上の会話の開始として「Generate a conversation between two people discussing their weekend plans.」という文を指定し、その後に会話の内容を英語で出力します。APIが返す結果は、英語で書かれた2人の会話文となります。
ChatGPT では、APIを使用して自然言語の会話文を生成することができます。プロンプトに適切な文を指定し、APIから返ってくる結果を解析することで、自然言語処理タスクを実現することができます。
ChatGPTのプロンプトの使い方
ChatGPTのプロンプロの使い方は2つの方法があります。ひとつはサイトに聞きたいことを直接入力してチャットとして成立させる方法です。この聞きたいことがプロンプトにあたります。以下がいくつかの例となっています。
質問に対する回答を求める場合
例えば、ユーザーが「猫の鳴き声は何ですか?」という質問に対して回答を求める場合、次のようなプロンプトを入力することができます。
「猫の鳴き声は」
このプロンプトを入力することで、ChatGPTは「何ですか?」という質問に対する回答を生成することができます。
指示を出す場合
例えば、ユーザーが「食べ物の写真を見せてください」という指示を出す場合、次のようなプロンプトを入力することができます。
「食べ物の写真を見せてください」
このプロンプトを入力することで、ChatGPTは食べ物の写真を表示するための応答を生成することができます。
複数の選択肢を提示する場合
例えば、ユーザーに対して複数の選択肢を提示する場合、次のようなプロンプトを入力することができます。
「どの色が好きですか?赤、青、黄色」
このプロンプトを入力することで、ChatGPTはユーザーが選んだ色についての応答を生成することができます。
プロンプトをうまく利用することで、より明確な回答を得ることができます。また、プロンプトによってChatGPTが生成する文章の内容やトーンを制御することもできます。
そして、もう一つのプロンプトはChatGPTのAPIを使う方法で次の章からAPIを使用したプロンプトの方法を解説します。
ChatGPT APIとは
ChatGPT APIとは、OpenAIが提供するChatGPTをプログラムから利用するためのプログラムインターフェース(API)です。ChatGPT APIを利用することで、プログラムを通じてChatGPTを利用することができます。ChatGPT APIは、機械学習のモデルであるChatGPTを使用して、自然言語処理タスクを実行するためのインターフェースを提供しています。ChatGPT APIは、テキスト生成や文章の意味解析などの自然言語処理タスクに使用されます。ChatGPT APIは、APIキーを取得することで利用できます。
ChatGPT APIの活用方法
ChatGPT APIの簡単な活用方法を以下に説明します。
- テキストの生成 ChatGPT APIを使用して、テキストを生成することができます。例えば、以下のようなPythonコードを実行することで、ChatGPT APIを使用して「こんにちは」という文章を生成することができます。
python
import openai
openai.api_key = "YOUR_API_KEY"
prompt = "こんにちは"
model_engine = "text-davinci-002"
completions = openai.Completion.create(engine=model_engine, prompt=prompt, max_tokens=1024)
message = completions.choices[0].text
print(message)
上記のコードでは、APIキー、プロンプト、モデルエンジンを指定してChatGPT APIを呼び出し、テキストを生成しています。
- 文章の意味解析 ChatGPT APIを使用して、文章の意味解析を行うことができます。例えば、以下のようなPythonコードを実行することで、ChatGPT APIを使用して「私は犬が好きです」という文章の意味解析を行うことができます。
python
import openai
openai.api_key = "YOUR_API_KEY"
model_engine = "davinci"
prompt = "Analyze the following text: 'I like dogs.'"
completions = openai.Completion.create(engine=model_engine, prompt=prompt, max_tokens=1024)
message = completions.choices[0].text
print(message)
上記のコードでは、APIキー、プロンプト、モデルエンジンを指定してChatGPT APIを呼び出し、文章の意味解析を行っています。
以上が、ChatGPT APIの簡単な活用方法です。ChatGPT APIは、テキストの生成や文章の意味解析などの自然言語処理タスクに使用することができます。APIキーを取得して、プログラムから呼び出すことで簡単に利用することができます。
ChatGPT APIの活用方法 英語の会話文を生成するプログラム
以下は、ChatGPT APIを使用して英語の会話文を生成するPythonプログラムの例です。
python
import openai
openai.api_key = "YOUR_API_KEY"
model_engine = "text-davinci-002"
prompt = "Generate a conversation between two people discussing their weekend plans.\nPerson 1: Hi, how was your week?\nPerson 2: It was good. How was yours?\nPerson 1: It was okay. What are you doing this weekend?\nPerson 2: I'm planning to go hiking. How about you?"
completions = openai.Completion.create(engine=model_engine, prompt=prompt, max_tokens=1024)
message = completions.choices[0].text
print(message)
ChatGPTでAPIを活用する際のプロンプト
ChatGPTでAPIを活用する場合、プロンプトはAPIに関する情報を含むテキストです。APIに関する情報とは、APIのエンドポイント、リクエストパラメータ、リクエストヘッダ、認証トークン、レスポンスの形式などが含まれます。
APIを利用する際にプロンプトを使用する例をいくつか挙げると、以下のようになります。
エンドポイントを指定する
例えば、OpenWeatherMap APIを使用して現在の天気情報を取得する場合、次のようなプロンプトを入力することができます。
「今日の天気を教えてください。」
このプロンプトに対してChatGPTは、OpenWeatherMap APIのエンドポイントを認識し、適切なパラメータを付加してAPIにリクエストを送信し、現在の天気情報を取得することができます。
リクエストパラメータを指定する
例えば、Twilio APIを使用してSMSを送信する場合、次のようなプロンプトを入力することができます。
「以下の情報でSMSを送信してください。本文は「こんにちは」、送信先は「+1234567890」です。」
このプロンプトに対してChatGPTは、Twilio APIのエンドポイントを認識し、適切なパラメータを付加してAPIにリクエストを送信し、指定された番号に「こんにちは」というメッセージを送信することができます。
認証トークンを指定する
例えば、Google Calendar APIを使用して予定を作成する場合、次のようなプロンプトを入力することができます。
「明日の2時から4時まで、ミーティングを設定してください。」
このプロンプトに対してChatGPTは、Google Calendar APIのエンドポイントを認識し、適切なパラメータを付加してAPIにリクエストを送信し、指定された時間にミーティングを作成することができます。ただし、Google Calendar APIは認証トークンが必要なため、ChatGPTは事前にトークンを取得し、リクエストヘッダにトークンを含める必要があります。
以上のように、APIを活用する際には、プロンプトを適切に設定することが重要です。プロンプトをうまく設定することで、ChatGPTは適切なAPIを認識し、適切なリクエストを送信します。
OpenAIのGPT-3 APIを使用するためのプロンプトの入力例です。
import openai_secret_manager
import openai
# APIキーを取得
secrets = openai_secret_manager.get_secret("openai")
openai.api_key = secrets["api_key"]
# GPT-3エンジンを指定
model_engine = "text-davinci-002"
# プロンプトの入力
prompt = (f"Q: What is the capital of France?\n"
f"A:")
# GPT-3にリクエストを送信して、回答を取得
response = openai.Completion.create(
engine=model_engine,
prompt=prompt,
temperature=0.5,
max_tokens=100
)
# 回答を表示
answer = response.choices[0].text.strip()
print(f"Answer: {answer}")
この例では、OpenAIのGPT-3 APIを使用して、フランスの首都に関する質問に回答するためのプロンプトを入力しています。まず、OpenAIのAPIキーを取得し、GPT-3のエンジンを指定します。次に、プロンプトを作成し、GPT-3にリクエストを送信して、回答を取得します。最後に、回答を表示します。
ChatGPTでoffice Wordを連携させる際のプロンプト例
ChatGPT自体はOffice Wordとは直接連携しませんが、Pythonのライブラリであるpython-docx
を使用することで、Word文書を操作することができます。以下は、ChatGPTでpython-docx
を使用して、Word文書を作成するためのプロンプトの例です。
python
from docx import Document
from docx.shared import Inches
import openai_secret_manager
import openai
# APIキーを取得
secrets = openai_secret_manager.get_secret("office_word")
openai.api_key = secrets["api_key"]
# GPT-3エンジンを指定
model_engine = "text-davinci-002"
# プロンプトの入力
prompt = "Create a Word document that contains the following sections:\n\nSection 1: Introduction\nSection 2: Body\nSection 3: Conclusion"
# GPT-3にリクエストを送信して、文書の内容を取得
response = openai.Completion.create(
engine=model_engine,
prompt=prompt,
temperature=0.5,
max_tokens=100
)
# 文書を作成して、セクションを追加
document = Document()
sections = response.choices[0].text.strip().split("\n")
for i, section in enumerate(sections):
document.add_heading(section, level=i+1)
# 文書を保存
document.save("sample.docx")
この例では、ChatGPTを使用して、Word文書の作成を指示するプロンプトを入力し、GPT-3にリクエストを送信して、文書の内容を取得します。次に、python-docx
を使用して、新しいWord文書を作成し、取得したセクションを追加します。最後に、文書を保存します。なお、事前にpython-docx
をインストールしておく必要があります。
ChatGPTとスプレッドシートを連携させる際のプロンプト例
ChatGPTでGoogleスプレッドシートと連携するには、Google APIを使用する必要があります。以下は、PythonのGoogle APIクライアントライブラリを使用して、ChatGPTからスプレッドシートに書き込むためのプロンプトの例です。
まず、Google Cloud Platformのコンソールで、APIを有効にし、認証情報を取得する必要があります。次に、以下のPythonコードを実行して、必要なパッケージをインストールします。
python
!pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client
次に、以下のコードを使用して、スプレッドシートに書き込むプロンプトを作成します。
python
import openai_secret_manager
import openai
import google.auth
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
# APIキーを取得
secrets = openai_secret_manager.get_secret("google")
creds = Credentials.from_authorized_user_info(info=secrets)
# GPT-3エンジンを指定
model_engine = "text-davinci-002"
# プロンプトの入力
prompt = "Create a new row in the spreadsheet with the following values:\n\nName: John Doe\nEmail: john.doe@example.com\nPhone: 123-456-7890"
# GPT-3にリクエストを送信して、値を取得
response = openai.Completion.create(
engine=model_engine,
prompt=prompt,
temperature=0.5,
max_tokens=100
)
# 取得した値をスプレッドシートに書き込む
service = build('sheets', 'v4', credentials=creds)
sheet_id = 'your-sheet-id'
sheet_range = 'Sheet1!A:E'
values = [response.choices[0].text.strip().split("\n")]
request_body = {
'values': values
}
response = service.spreadsheets().values().append(
spreadsheetId=sheet_id, range=sheet_range,
valueInputOption='USER_ENTERED', body=request_body).execute()
この例では、ChatGPTからスプレッドシートに書き込むためのプロンプトを作成し、GPT-3にリクエストを送信して、値を取得します。次に、Google Sheets APIを使用して、指定されたスプレッドシートに新しい行を追加し、取得した値を書き込みます。事前に、Google APIの認証情報を取得して、Google Cloud PlatformのコンソールでAPIを有効にしておく必要があります。
スプレッドシートの拡張機能を使い、プロンプトを作成する方法
具体的には、以下の手順に従って拡張機能を作成します。
- Googleスプレッドシートを開き、[ツール]メニューから[スクリプトエディタ]を選択します。
- 新しいスクリプトファイルを作成し、以下のようにコードを書きます。
javascript
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('ChatGPT')
.addItem('Launch prompt', 'showPrompt')
.addToUi();
}
function showPrompt() {
var prompt = 'Hello, how can I assist you?';
var result = launchPrompt(prompt);
SpreadsheetApp.getActiveSheet().getRange('A1').setValue(result);
}
function launchPrompt(prompt) {
var response = UrlFetchApp.fetch('https://api.openai.com/v1/engines/davinci-codex/completions', {
method: 'post',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
payload: JSON.stringify({
'prompt': prompt,
'max_tokens': 150,
'temperature': 0.5
})
});
var data = JSON.parse(response.getContentText());
var text = data.choices[0].text.trim();
return text;
}
- YOUR_API_KEYの部分に、OpenAIのAPIキーを入力します。APIキーは、OpenAIのWebサイトから取得できます。
- スクリプトを保存して、[実行]メニューから[onOpen]を選択して、スクリプトを実行します。
- スプレッドシートの[ChatGPT]メニューから[Launch prompt]を選択し、プロンプトを起動します。
- プロンプトに入力し、送信ボタンをクリックすると、ChatGPTが応答を返します。
このように、拡張機能を使用してChatGPTのプロンプトを作成することができます。この例では、davinci-codexエンジンを使用していますが、必要に応じて、他のエンジンも使用できます。また、プロンプトには、シートの任意のセルの値を含めることもできます。
まとめ
この記事では、ChatGPT APIについて解説し、簡単な活用方法を紹介しました。
まず、ChatGPT APIとは、OpenAIが提供するAPIの1つであり、自然言語処理タスクを実現するためのものです。ChatGPT APIは、テキストの生成や文章の意味解析など、様々な自然言語処理タスクに使用することができます。
次に、ChatGPT APIの簡単な活用方法について説明しました。具体的には、テキストの生成や文章の意味解析、英語の会話文の生成などを例に挙げました。APIキーを取得し、プログラムからAPIを呼び出すことで、簡単に利用することができます。
ChatGPT APIは、自然言語処理タスクを実現するための優れたツールの1つです。様々な分野で活用され、今後も更なる進化が期待されます。