こんにちは。チャットサービスとしてのChatGPTを使ったことはあるけれど、APIを使って何かやってみたいと思っている読者のための記事です。
※ChatGPT APIの利用にはクレジットカードの登録が必要です。
ChatGPT APIでできること
まずはChatGPT APIで実現できることについて整理してみましょう。ChatGPT APIはChatGPTの機能を自分たちのシステムに組み込むことができます。テキスト生成や質疑応答、翻訳、要約など、ChatGPTが提供しているさまざまな機能をプロダクトに組み込むことでサービスの品質を大きく向上させることができるほどのポテンシャルを秘めています。
ChatGPT APIのビジネス利用例
- 会話機能: ChatGPT APIを使って独自のチャットボットや仮想アシスタントを開発し、プロダクトに組み込む。
- カスタマーサポート: 顧客からの問い合わせに自動で回答するシステム。24時間365日対応可能なカスタマーサポートですね。
- 研修: たとえば企業研修における学習支援。研修内容を生成できます。
- 業務システムへの統合: 社内で使用するシステムにChatGPTを統合することで、ドキュメントの自動生成、メールの要約、議事録などを効率化できます。業務マニュアルなんかも自動応答できそうですね。
- データ分析: 企業が所有するデータを分析し、要約やレポートを生成できます。
さっそく準備してみよう
OpenAIアカウント作成
OpenAIのWebサイトでアカウントを登録しましょう。
APIキー作成
次にOpenAI Platformにサインインします。
2023年11月現在では上記のような画面が出てきます。左側のナビゲーションから API Keys
を選択します。
+ Create new secret key
をクリックして適当なAPIキーの名前を入力してください。
APIキーをコピーしておきましょう。
支払い情報の登録
APIを呼び出すにはチャージしなければならないため、支払い情報を登録してチャージします。左のナビゲーションから Settings
を選択し、展開したナビゲーションから Billing
を選択しましょう。
登録の際には個人と法人が選べるようですが、法人の場合は法人番号が必要です。
そのままの流れでチャージしてください。
これで準備はおしまい。
環境準備
次にAPIを呼び出すための環境準備をします。それぞれの環境で呼び出し方は異なりますが、本稿ではPythonを使います。Pythonやpipのインストールをしておきましょう。
CLIでOpenAIのクライアントをインストールします。
環境変数にさきほどのAPIキーをセットアップします。
echo "export OPENAI_API_KEY='ここにAPIキーが入ります'" >> ~/.zshrc
反映します。
$OPENAI_API_KEY
でAPIキーが出力されるはずです。
echo $OPENAI_API_KEY
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
これで環境準備は完了です。
ChatGPT APIを呼び出してみよう
Pythonコードを使ってAPIキーを呼び出してみたいと思います。エディタで次のようなプログラムを作ってください。
from openai import OpenAI
client = OpenAI()
chat_completion = client.chat.completions.create(
messages=[
{
"role": "user",
"content": "Hello, ChatGPT",
}
],
model="gpt-3.5-turbo",
)
print(chat_completion.choices[0].message.content)
test.py
というファイル名にしました。
#実行結果
% python test.py
Hello! How can I assist you today?
無事、APIを呼び出してChatGPTからのメッセージを出力することができました。
API呼び出し時のメッセージの種類
さきほどの test.py
のコードを見てみましょう。
from openai import OpenAI
client = OpenAI()
chat_completion = client.chat.completions.create(
messages=[
{
"role": "user",
"content": "Hello, ChatGPT",
}
],
model="gpt-3.5-turbo",
)
print(chat_completion.choices[0].message.content)
このコードの messages
の中で、 role
がありますが、roleの種類を知っておくことでより精度の高い回答を得るためのプロンプトを定義することが可能です。
roleの種類
roleの種類 | 役割 |
system | ChatGPTの役割を定義 機能的な役割でもいいですし、人格でも。 e.g. 一流のコピーライター、最強の男、書籍を要約するAI |
user | APIを使用している人間の入力 質問したい内容を指定するときはuserを使用します。 |
assistant | ChatGPTの応答 前回までのやりとりを踏まえるかみたいな意味です。 それによって文脈を考慮した回答が可能になります。 |
roleとcontentの例
では以下のように役割を定義して質問してみましょう。
あなたは一流のコピーライターです。
チューリップを強みとするお花屋さんのキャッチコピーを考えてください。
上記の1行目が system
であり、2行目が user
です。
プログラムにすると下記のようになります。
・・・省略・・・
messages=[
{
"role": "system",
"content": "あなたは一流のコピーライターです。",
},
{
"role": "user",
"content": "チューリップを強みとするお花屋さんのキャッチコピーを考えてください。",
}
],
・・・省略・・・
実行してみましょう。
% python test.py
「鮮やかな色彩が輝く、チューリップの世界へようこそ」
素敵ですね。
APIの使い方については以上です。APIの呼び出しは思いのほか簡単でした。便利ですね。
それではまた。