Azure FunctionsでOpenAIのAPIを使ってChatGPTを呼び出す方法
この記事では、Azure Functionsを使用して、OpenAIのAPIを使い、ChatGPTから回答を得る方法を紹介します。特に、Azure Functionsの環境変数にOPENAI_API_KEY
を登録し、APIキーを安全に管理する方法について説明します。
概要
Azure Functionsは、イベント駆動型のサーバーレスコンピューティングサービスです。ここでは、Azure FunctionsからOpenAI APIを呼び出して、ChatGPTから回答を取得する例を紹介します。OpenAI APIを利用するには、APIキーを環境変数として設定する必要があります。
以下のコードは、OpenAI APIを使用してChatGPTのAPIにリクエストを送信するシンプルな例です。
import azure.functions as func
import logging
from openai import OpenAI
# Azure Function App
app = func.FunctionApp(http_auth_level=func.AuthLevel.FUNCTION)
@app.route(route="openai_trigger")
def openai_trigger(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
# OpenAIクライアントの初期化
client = OpenAI()
# リクエストから名前を取得
name = req.params.get('name')
if not name:
try:
req_body = req.get_json()
except ValueError:
pass
else:
name = req_body.get('name')
# OpenAI APIを呼び出すためのメッセージを定義
if name:
message_content = f"Write a haiku about {name} in programming."
else:
message_content = "Write a haiku about recursion in programming."
try:
# OpenAI API呼び出し
completion = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": message_content}
]
)
# OpenAIの結果からメッセージを取得
openai_response = completion.choices[0].message.content
# 結果をHTTPレスポンスとして返す
return func.HttpResponse(f"OpenAI response: {openai_response}", status_code=200)
except Exception as e:
logging.error(f"Error calling OpenAI API: {e}")
return func.HttpResponse(f"Failed to get response from OpenAI: {str(e)}", status_code=500)
詳細なAPIの呼び出し方は、こちらの公式ドキュメントをご覧ください。
環境変数にOPENAI_API_KEY
を設定する理由
OpenAIのAPIを利用するためには、認証用のAPIキーが必要です。APIキーはコード内に直接埋め込むのではなく、環境変数として設定することが推奨されています。これにより、セキュリティが強化され、キーがコードから漏洩するリスクを避けることができます。
次に、Azure Functionsの環境変数にOPENAI_API_KEY
を追加する手順を説明します。
Azure Functionsで環境変数OPENAI_API_KEY
を追加する手順
-
Azureポータルにサインイン
Azureポータルにサインインします。 -
Azure Functionsアプリを選択
サインイン後、対象のAzure Functionsアプリケーションを選択します。 -
構成に移動
Azure Functionsのメイン画面に移動したら、左側のメニューで「設定」セクションにある「構成」をクリックします。 -
新しいアプリケーション設定を追加
構成ページの「アプリケーション設定」セクションで、「+ 新しいアプリケーション設定」をクリックします。 -
環境変数の詳細を入力
新しい設定を追加するウィンドウが表示されたら、以下のように設定します:-
名前:
OPENAI_API_KEY
- 値: OpenAIのAPIキー(OpenAIダッシュボードから取得)
入力後、「OK」をクリックします。
-
名前:
-
変更を保存
「保存」ボタンをクリックして、変更を保存します。
-
Azure Functionsを再起動
環境変数の変更が反映されるように、Azure Functionsアプリケーションを再起動します。再起動は「概要」ページの「再起動」ボタンから行います。
これで、Azure Functionsで安全にAPIキーを管理し、OpenAI APIにアクセスできるようになります。
結論
Azure Functionsを利用してOpenAI APIを呼び出す場合、APIキーを環境変数として設定することがセキュリティ上のベストプラクティスです。環境変数を使うことで、コードを安全に保ちつつ、ChatGPTのようなAIモデルを簡単に利用できるようになります。