🔰

Azure OpenAI APIでAIの世界を探索しよう!(初心者向け) API実行ガイド2024

2024/06/26に公開

本記事に関して

対象読者:Azure Open AI 初心者の方々に向けて

概要

Azure OpenAI使用手順をまとめてみました!

前提条件

  • Azure サブスクリプション - 無料アカウントor有償アカウントを保有していること
  • Azure サブスクリプション内にAzure OpenAI に対するアクセス権をもっていること
  • Python実行環境構築済み
  • Azure上でOpenAIリソースを作成し、デプロイ済み

APIとは?

APIの概要を軽くおさらいしておきましょう!APIに関しては下記のような概要となります。

API(Application Programming Interface)とは、接続先のOSを呼び出すことや互いのソフトウェアやアプリケーション機能の一部を共有することです。
APIを通じて連携をすることで、アプリケーション機能を拡張させ、双方のアプリが更に便利になることがメリットです。
人間がコンピュータを利用する際はGUI(Graphical User Interface)を通じてOSやアプリケーションを利用しますが、コンピュータはプログラムを通じてOSやアプリケーションの機能利用するので、プログラマ(アプリケーションエンジニア)はCUI(Character-based User Interface)を用いてソフトウェアやアプリケーションを開発します。
一方でAPIは、アプリケーション開発で既存のライブラリを使う場合に用いられ、用意されたAPIに従って処理を記述することで、ライブラリの中身を知らなくてもライブラリが持つ機能を使用できます。OSが提供する機能を呼び出すために使われるAPIもあれば、他のアプリケーションが提供する機能を呼び出すために使われるAPIも存在します。

参考記事: APIとは?意味や種類や通信の仕組みを解説

軽くまとめると開発を行う上でのメリットはゼロベースで機能開発をすること無く既存の提供されているAPIを利用することで、様々なサービスを共用利用することが可能ということになります。
では、実際の手順をみていきましょう!

手順

1. envファイルを作成する
※必須ではないが、リソースのエンドポイントキー等をスクリプト内に生の状態で記載するのは好ましくないと判断し、実装。 参照: GitHub Docs>ファイルを無視する

.env
AZURE_OPENAI_ENDPOINT=<ご自身の環境のものに変更>
AZURE_OPENAI_KEY= <ご自身の環境のものに変更>
AZURE_OPENAI_API_VERSION= <ご自身の環境のものに変更>
AZURE_OPENAI_DEPLOYMENT_NAME_GPT4V=<ご自身の環境のものに変更>

作成した自身のリソース情報を記載するファイルを作成する
※「AZURE_OPENAI_API_VERSION =」に記載する内容は実行するAPIのバージョンモデルのバージョンではないので注意が必要です。サポートバージョンはAPI リファレンスを確認してください

2. Azure OpenAIのキーとエンドポイント情報を取得する

Microsoft Azure上で作成したAzure OpenAIのキーとエンドポイントを取得し(画像内赤枠が対象)、上記に記載しているenvファイルに記載する。記載するenvファイルの項目は以下となります。

  • AZURE_OPENAI_ENDPOINT=<ご自身の環境のものに変更>
  • AZURE_OPENAI_KEY= <ご自身の環境のものに変更>

3. YAMLファイルを作成する

  • 目的:Azure OpenAIで使用するAI環境用のGPTパラメーター情報を設定します。
yamlfile
# GPTパラメータ
temperature: <ご自身の環境のものに変更>
top_p: <ご自身の環境のものに変更>
frequency_penalty: <ご自身の環境のものに変更>
presence_penalty: <ご自身の環境のものに変更>
max_tokens: <ご自身の環境のものに変更>

※GPTパラメーター確認方法
1: Azure OpenAIの概要セクションにある「Azure OpenAI Studioに移動する」をクリック

2: チャットプレイグラウンドに遷移しますので構成情報を確認し、設定する

※YAMLファイル内の「temperature」、「top_p」等の詳細情報を詳しく知りたい方は、以下のブログをご参考ください。分かりやすく解説されています。
参考記事: ChatGPTのTop PやTemperatureについて少し知ってみよう

実行スクリプト

下記Microsoft Docsを参照
参考記事:Azure OpenAI Serviceを使用する前提条件

get_response
import openai

#envファイルを読み込み、API情報を取得
from openai import AzureOpenAI
from dotenv import load_dotenv
# APIキーなどが記載された.envを読み込む
load_dotenv("~/.env") #envファイルを配置しているパスを記載

import os
# APIキー等を設定
api_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
api_key= os.getenv("AZURE_OPENAI_KEY")
api_version = os.getenv("AZURE_OPENAI_API_VERSION")
deployment_name = os.getenv("AZURE_OPENAI_DEPLOYMENT_NAME_GPT4V")

#yamlファイルを読み込む
import yaml
with open('~/yamlfile', 'r') as file:#YAMLファイルを配置しているパスを記載
    params = yaml.safe_load(file)

#構成の設定
temperature = params['temperature']
top_p = params['top_p']
frequency_penalty = params['frequency_penalty']
presence_penalty = params['presence_penalty']
max_tokens = params['max_tokens']

#クライアント作成
client = AzureOpenAI(
    api_key=api_key,
    api_version=api_version,
    azure_endpoint=api_endpoint
)

#APIをコールする関数
def get_response(temperature, top_p, frequency_penalty, presence_penalty, max_tokens, system_message, user_message):
    response = client.chat.completions.create(
        model=deployment_name,
        temperature=temperature,
        top_p=top_p,
        frequency_penalty=frequency_penalty,
        presence_penalty=presence_penalty,
        max_tokens=max_tokens,
        messages=[
            { "role": "system", "content": system_message },
            { "role": "user", "content": user_message}
        ],

    )
    message = response.choices[0].message.content
    return message

#プロンプト作成
# システムプロンプト
system_message = "You are a helpful assistant."
# ユーザープロンプト
user_message = “Who was the first president of the United States? “ 
##(アメリカ初代大統領はだれですか?)

プロンプト実行

prompt
#回答を出力する
res = get_response(temperature, top_p, frequency_penalty, presence_penalty, max_tokens, system_message, user_message)
print(res)

GPTからの出力結果確認

response
#回答結果
The first president of the United States was George Washington. He served from April 30, 1789, to March 4, 1797.
##(アメリカ合衆国初代大統領はジョージ・ワシントン。彼は1789年4月30日から1797年3月4日まで務めた。)

GPTより質問に対する回答を取得することができました!!!

最後に

APIを使用したGPTとの会話ができる実装を記載しました。手をかけた分、よりGPTに愛着がわきました!! 初学者の方々の学びの一助になれば幸いです!

ヘッドウォータース

Discussion