Azure OpenAI Service を使ってみる (2)

Azure
この記事は約8分で読めます。

前回の投稿にて Azure AI Foundry で Azure Open AI Service のチャットボットをプレイグラウンドで利用できるようにする手順を解説しました。
ただしこの状態では、選択した言語モデルの「素」の状態でのチャットとなります。いくつかの簡単な設定でチャットボットをカスタマイズできます。

チャットボットのカスタマイズ

Chat-GPT や Copilot と異なり、Azure Open AI Service で作成するチャットボットは組織のニーズに合わせた独自のカスタマイズが行えます。
以下の方法でチャットボットをカスタマイズできます。

  • モデルに指示とコンテキストを与える
    [モデルに指示とコンテキストを与える] 欄に、モデルがどのようにふるまうべきかを入力します。ボットのパーソナリティを記述したり、答えるべきことと答えるべきでないことを指示したり、応答のフォーマットを指示したりすることができます。
  • セクションの追加
    [セクションの追加] をクリックすると、[安全システム メッセージ]・[例]・[変数] が追加できます。

[安全システム メッセージ] を選択すると、有害なコンテンツが提示されることを防ぐメッセージがすべてのプロンプトに自動的に挿入されます。

[例] を選択すると、ユーザーとアシスタント(チャット ボット)の会話の例を入力して、応答の生成の参考にさせることができます。

  • [データを追加する]
    [データを追加する] を選択すると、チャットボットが応答の生成の際に参照する追加のデータを提供することができます。

データの追加について詳しくは以下を参照してください。

  • [パラメーター]
    [パラメーター] をクリックすると、チャットボットの応答の動作に関するパラメーターを調整できます。

パラメーターについて詳しくは以下を参照してください。

チャットボットを使ってみる

実際にチャットボットにプロンプトを送信してみましょう。
プレイグラウンドの入力欄にチャットボットへのプロンプトを入力し、Enter を押して送信します。

ここでは以下のようなプロンプトを送信しています。
『Windows PC で、ネットワークケーブルは接続されていますが、接続情報で「インターネットなし」と表示され、外部の Web サイトにアクセスできません。まず確認すべき事項は何ですか。教えてください。』

アシスタント(チャットボット)から応答が返ってきます。
[モデルに指示とコンテキストを与える] で IT ヘルプデスクのエージェントとしてふるまうよう指示しているので、それらしい応答をしてくれます。

このように、既存の Chat-GPT や Copilot と同じように、チャットボットが動作できることが確認できました。

ロールの管理

チャット プレイグラウンドに以下のように表示される場合があります。

これは Azure OpenAI リソースに対するアクセス権が不足していることを示すメッセージです。
Azure OpenAI でさまざまな作業を行ったり、アプリを開発するには、リソースに対する適切なアクセス権が必要となります。Azure OpenAI リソースも Azure のリソースなので、アクセス権は RBAC(ロールベースのアクセス権管理)で行います。

Azure OpenAI リソースへのアクセス権の管理は、以下のように行います。

1. サブスクリプションの管理者(RBAC の追加と変更が行える権限のアカウント)で Azure ポータルから Azure OpenAI リソースの [アクセス制御(IAM)] を開きます。

2. [追加] – [ロール割り当ての追加] または [ロール割り当ての追加] ボタンをクリックし、ロール割り当ての追加画面を表示します。

3. 適切なロールを選択します。ここでは [Cognitive Services OpenAI 共同作成者(Cognitive Services OpenAI Contributor)] を選択しました。

ロールとその権限については以下を参照してください。
Azure OpenAI のロールベースのアクセス制御 – Azure AI services | Microsoft Learn

4. [ユーザー、グループ、またはサービス プリンシパル] が選択されていることを確認し、[メンバーを選択する] をクリックします。

5. 検索してロールを割り当てるメンバーを選択します。

6. ユーザーが選択できたら、[次へ] をクリックします。

7. 割り当て内容を確認し、問題が無ければ [レビューと割り当て] をクリックします。

以上でロールの割り当てが行えます。
また現在自分がこのリソースに対してどのようなロールを持っているかを確認するには、[アクセス制御(IAM)] の画面で [マイ アクセスの表示] をクリックします。

以下のように自分のロール(アクセス権)が表示されます。

チャットボットのコードを確認する

AOAI は言語モデルを利用するための REST API を提供しているので、ここで作成したチャットボットも API 呼び出しを行って動作しています。
プレイグラウンドでの動作で行われた API 呼び出しと同等の動作を行うプログラム コードを表示し、コピーして自分のアプリケーションに再利用することができます。

コードを表示するには、プレイグラウンドの左上にある [コードの表示] をクリックします。

以下のように、プレイグラウンドでの動作に相当するコードが表示されます。

既定では Python コードが表示されますが、json や c#、curl でのコードも表示できます。

Web アプリのデプロイ

作製したチャットボット(アシスタント)を Web アプリケーションとしてデプロイできます。
この操作で、チャットボットのアプリケーションが動作する Azure WebApp が自動的に作成されます。
※この機能は現時点ではプレビューです

1. チャットボットを Web アプリケーションとしてデプロイするには、プレイグラウンドで [デプロイ] – [Web アプリとして] を選択します。

2. 以下のような画面が表示されますので、[新しい Web アプリを作成する] が選択されていることを確認の上で、
 ・WebAppsの名前
 ・サブスクリプション
 ・リソース グループ
 ・WebApps をデプロイするリージョン(場所)
 ・App Service のプラン(価格プラン)
を指定し、[展開] をクリックします。

3. デプロイが開始されると、プレイグラウンドの上部に以下のような表示が出ます。

またデプロイの状況は画面左のナビゲーションで [デプロイ] を選択して、[アプリのデプロイ] をクリックすることで確認できます。
WebApps 自体の作成はすぐに完了しますが、WebApps へのチャットボット アプリケーションのデプロイには時間がかかりますので、完了するまで待ちます。

4. デプロイが完了したら、デプロイが完了すると、[デプロイ状態] が [成功] に変わります。

5. [名前] 欄のリンクをクリックすると、デプロイされた Web アプリケーションが開きます。

※既定では Web アプリケーションは Entra ID 認証が有効になっているので、WebApps をデプロイした(Azure OpenAI Service をデプロイした)テナントの Entra ID アカウントでサインインします。

6. Web アプリケーションでは、プレイグラウンドと同じようにチャットボット(アシスタント)との対話が行えます。

このようにして、組織の独自のニーズに合わせてカスタマイズしたチャットボットを Web アプリケーションとして公開できます。

Web アプリケーションの管理

[アプリのデプロイ] 画面で、[管理] 欄のリンクをクリックすると、Azure ポータルの WebApp の管理画面が開きます。

この管理画面から、通常の WebApps と同様の管理が行えます。

[外部リポジトリ プロジェクト] の表示で分かるように、この WebApps で動作しているアプリケーションのコード(Python)は以下で確認できます。
https://github.com/microsoft/sample-app-aoai-chatGPT

まとめ

ここまでに解説したように、Azure OpenAI Service では Azure AI Foundry のプレイグラウンドを使って、言語モデルを利用して組織のニーズにあったカスタム AI チャットボットを簡単に作成し、公開することができます。

今回紹介した手順のように、AI プログラミングの専門知識が無くても AI チャットボットの作成や公開が行えますが、自前でプログラミングを行う際にもこれらの機能は役に立ちます。
作成したチャットボットの元となるコードを確認することもできるので、自分の独自アプリケーションにこのチャットボットを組み込むことが容易となります。またプロンプトの組み立て方やメッセージのやり取りの方法でも大いに参考になるでしょう。

Azure OpenAI Service は従量課金で利用できますので、独自の AI チャットボット作成を試してみてください。

この記事を書いた人

MurachiAkira
タイトルとURLをコピーしました