0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure FunctionsでOpenAIのAPIを使ってChatGPTに質問する方法 - 環境変数の設定手順付き

Last updated at Posted at 2024-09-11

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を追加する手順

  1. Azureポータルにサインイン
    Azureポータルにサインインします。

  2. Azure Functionsアプリを選択
    サインイン後、対象のAzure Functionsアプリケーションを選択します。

  3. 構成に移動
    Azure Functionsのメイン画面に移動したら、左側のメニューで「設定」セクションにある「構成」をクリックします。

  4. 新しいアプリケーション設定を追加
    構成ページの「アプリケーション設定」セクションで、「+ 新しいアプリケーション設定」をクリックします。

  5. 環境変数の詳細を入力
    新しい設定を追加するウィンドウが表示されたら、以下のように設定します:

    入力後、「OK」をクリックします。

  6. 変更を保存
    「保存」ボタンをクリックして、変更を保存します。

image.png

  1. Azure Functionsを再起動
    環境変数の変更が反映されるように、Azure Functionsアプリケーションを再起動します。再起動は「概要」ページの「再起動」ボタンから行います。

これで、Azure Functionsで安全にAPIキーを管理し、OpenAI APIにアクセスできるようになります。

結論

Azure Functionsを利用してOpenAI APIを呼び出す場合、APIキーを環境変数として設定することがセキュリティ上のベストプラクティスです。環境変数を使うことで、コードを安全に保ちつつ、ChatGPTのようなAIモデルを簡単に利用できるようになります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?