ChatGPTで有名なOpenAIですが、実はそのAI機能をAPIで呼び出し、アプリケーションやサービスに組み込むことができます。このブログでは、OpenAI APIの登録、APIキーの発行、Pythonを使った実装方法を分かりやすく解説します。
1. OpenAIの登録方法
まず、OpenAIのAPIを利用するためにアカウント登録が必要です。以下の手順で簡単にセットアップできます。
手順
- こちらのリンクにアクセスし、OpenAIのプラットフォームにログインまたはサインアップします。
- ログイン後、画面右上の歯車アイコンをクリックし、左側メニューから「Billing」を選択します。
- 支払い情報を登録すると、APIキーの発行ができるようになります。
2. APIキーの発行
APIキーは、OpenAIのAPIを呼び出すために必要な認証情報です。発行手順は以下の通りです。
- 左側メニューの「API keys」をクリックします。
- 画面中央にある「Create new secret key」ボタン(緑色)をクリックします。
- 表示されるAPIキーを安全な場所にコピーして保存してください。このキーはここでしか表示されないため、再度確認したい場合は新しいキーを発行する必要があります。
3. PythonでAPIコールを実装
APIキーが発行できたら、PythonでOpenAI APIを呼び出す準備が整いました。公式では、APIキーを環境変数として設定することが推奨されています。
環境変数にAPIキーを設定する
全てのOS共通で使える手法を紹介します。
それはdotenv
を使う方法です。
まずは以下の内容の.env
ファイルを作成、保存してください。
OPENAI_API_KEY="your_api_key_here"
なお、こちらのファイルをGitにアップロードしないように.gitignoreに追加しておくことを強くお勧めします。
Pythonでの実装方法
まず、Python用のOpenAIモジュールとdotenvをインストールします。
pip install openai, python-dotenv
インストール後、以下のコードでAPIにリクエストを送信できます。この例では、GPT-4モデルを使って「こんにちは、世界」の英語訳を尋ねています。
from openai import OpenAI
import os
from dotenv import load_dotenv
# .envファイルの内容を読み込む
load_dotenv()
class MyOpenAI:
def __init__(self):
self.client = OpenAI()
# OpenAIが自動で.envの中身を拾ってくれるはず
# 読み取らない場合は以下を使用念のため記述
# api_key = os.getenv("OPENAI_API_KEY")
# self.client = OpenAI(api_key=api_key)
self.model = config.read_config(["model"])
def completion(self, messages):
"""
messages: list of dict to send
"""
completion = self.client.chat.completions.create(
model=self.model,
messages=messages
)
# return completion
return completion.choices[0].message.content
コードを実行すると、AIが英語で「Hello, World」と返してくれるはずです。
環境変数が設定できない場合
もしも環境変数を読み込めない、設定できない場合でもAPIキーを設定する方法があります。
以下のコードのように直接APIキーを設定する方法です。
class MyOpenAI:
def __init__(self):
api_key = "XXX"
self.client = OpenAI(api_key=api_key)
XXXにAPIキーを入れればOKです。
ただ、キーを直接コードに記入することにはリスクが伴います。
キーを別ファイルに保存し、そのファイルを読み込む形の方が安全でしょう。
使用例
実際に上のMyOpenAIクラスを使用するには少しコツがあります。
入力のmessages
は以下のように辞書形式で渡さないといけません。role
はsystemとuser, assistantなどOpenAIが指定したもののみが使用可能です。
messages = [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Write a haiku about recursion in programming."
}
]
openaiapi = OpenAIAIP()
ans = openaiapi.completion(messages=messages)
まとめ
以上がOpenAI APIの基本的な使い方です。これで、OpenAIのAIを活用した開発を始める準備が整いました。
ぜひAPIを使ってご自身のプロジェクトにお役立てください!