つばろぐ

主に C#, .NET, Azure の備忘録です。たまに日記。

Teams AI LibraryをAzure OpenAI Serviceに対応してみた

途中で断念していた Teams AI Library で Azure OpenAI Service を利用する作業ですが、Issue で確認して修正方法が分かりましたのでまとめます。
なお、この記事以外の修正箇所は以前の記事を参考にしてください。

github.com

tsubalog.hatenablog.com

AzureOpenAIPlanner クラスの利用

teams-ai/js/samples/04.ai.a.teamsChefBot/src/index.ts に以下の変更を加えます。

読み込むクラスの追加

import { Application, ConversationHistory, DefaultPromptManager, DefaultTurnState, OpenAIModerator, OpenAIPlanner, AI } from '@microsoft/botbuilder-m365';

AzureOpenAIPlanner を追加する

import { Application, ConversationHistory, DefaultPromptManager, DefaultTurnState, OpenAIModerator, OpenAIPlanner, AI, AzureOpenAIPlanner } from '@microsoft/botbuilder-m365';

planner の変更

const planner = new OpenAIPlanner({
    apiKey: process.env.OPENAI_API_KEY,
    defaultModel: 'text-davinci-003',
    logRequests: true
});

OpenAIPlanner から AzureOpenAIPlanner に変更する

const planner = new AzureOpenAIPlanner({
    apiKey: process.env.OPENAI_API_KEY,
    defaultModel: 'gpt-4-32k',
    logRequests: true,
    endpoint: process.env.OPENAI_API_ENDPOINT,
    apiVersion: process.env.OPENAI_API_VERSION || '2023-05-15'
});

github.com

Teams Toolkit の環境ファイルの変更

  - uses: file/createOrUpdateEnvironmentFile # Generate runtime environment variables
    with:
      target: ./.localSettings
      envs:
        BOT_ID: ${{BOT_ID}}
        BOT_PASSWORD: ${{SECRET_BOT_PASSWORD}}
        OPENAI_API_KEY: ${{SECRET_OPENAI_API_KEY}}

▼ AOAI のエンドポイントと API バージョンの設定を追加する

  - uses: file/createOrUpdateEnvironmentFile # Generate runtime environment variables
    with:
      target: ./.localSettings
      envs:
        BOT_ID: ${{BOT_ID}}
        BOT_PASSWORD: ${{SECRET_BOT_PASSWORD}}
        OPENAI_API_KEY: ${{SECRET_OPENAI_API_KEY}}
        OPENAI_API_ENDPOINT: ${{SECRET_OPENAI_API_ENDPOINT}}
        OPENAI_API_VERSION: ${{SECRET_OPENAI_API_VERSION}}

github.com

なお teamsapp.local.yml とは、Teams Toolkit のローカル環境のようです。
設定値は .env.local.user に指定します。(コミット対象外)

learn.microsoft.com


ここまでの変更を行い、VS Code の Teams Toolkit でデバッグを開始すると、Azure OpenAI Service を利用する Teams AI のボットができあがります。