Azure Functions Azure OpenAI拡張機能を使って簡単にAIとやりとりしてみよう!

1.2K Views

June 19, 24

スライド概要

第3回 JAZUG for Women の登壇スライド
アーカイブ動画:https://www.youtube.com/watch?v=GWUy7zmMtrE
・Azure Functionsとは
・Azure Functions Azure OpenAI Extensionsでできることと、Chatサンプルの動かし方

profile-image

バックエンドエンジニア。  主にC#, Azure, Terraform, Github Actionsをいじっています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Azure Functions Azure OpenAI 拡張機能を使って 簡単にAIとやりとりしてみよう! 第3回 JAZUG for Women 2024/06/14 長瀬 マキ(@yuma_prog)

2.

自己紹介 ● ● ● ● ● 長瀬マキ(X:@yuma_prog) バックエンドエンジニア AzureやC#をよくいじっています Azureわいがや会 主催 JAZUG/Hack Everything.運営

3.

Azureわいがや会 ● ● ● 各自でもくもくするのではなく、全員で一つ のことをわいがや学ぶゆるっとした勉強会 一人のドライバーを全員でナビゲートして 進める人数過剰版モブプロ Azureに関連する気がすればなんでもOK 月曜日に開催したこの会でやった内容を 話します!

4.

Azure Functions用のAzure OpenAI拡張機能とは

5.

Azure Functionsとは ● ● 関数を簡単にAzureにデプロイできるサーバーレスソリューション トリガーとバインドという便利な概念 ○ ● トリガー ○ ○ ● 他のサービスへのアクセスのハードコーディングを回避することができる 関数実行のきっかけになるイベント Blob Storageへのファイルアップロード、 HTTPリクエスト、タイマーなど バインド ○ ○ 別のリソースを接続する方法 入力バインド、出力バインドがある Azure Functions のトリガーとバインド | Microsoft Learn

6.

Azure OpenAI 拡張機能でできること ● 入力バインド ○ ○ ○ ○ ○ ○ ● 出力バインド ○ ● テキスト入力候補 アシスタントへのポスト(メッセージ送信) アシスタントクエリ(履歴取得) テキスト埋め込み 埋め込みストア(ベクトルデータベースへの書き込み) セマンティック検索(ベクトルデータベースからの読み取り) アシスタント作成 トリガー ○ アシスタント要求に応答

7.

AOAI拡張を動かしてみる

8.

とりあえず動かして理解したい場合 ● AOAI拡張のリポジトリをクローン ○ ● GitHub - Azure/azure-functions-openai-extension: An extension that adds support for Azure OpenAI/ OpenAI bindings in Azure Functions for LLM (GPT-3.5-Turbo, GPT-4, etc) samplesフォルダにあるサンプルプロジェクトで気になるものを実行 ○ ○ C#,Java,Node.js,Powershell,Pythonのサンプルがある 各サンプルフォルダの READMEを読めばきっと動かせる

9.
[beta]
Chatサンプル(C#)を動かしてみよう!
●

azure-functions-openai-extension\samples\chat\csharp-ooproc\local.setti
ngs.jsonに自分のAOAI環境設定を追記
○
○
○

●
●

"AZURE_OPENAI_ENDPOINT": "https://{リソース名}.openai.azure.com/",
"CHAT_MODEL_DEPLOYMENT_NAME": "gpt-4o",
"AZURE_OPENAI_KEY": " "

ChatBotプロジェクトを実行
azure-functions-openai-extension\samples\chat\demo.httpに定義されたリ
クエストを実行

10.

デモ

11.

わいがや会でわかったこと ● ● ● AZURE_OPENAI_KEYの後に半角スペースが入っていると、401エラーや500番 エラーでCredential系のExceptionが返る ○ AZURE_OPENAI_KEYが設定されていないと認識され、ManagedIDでの認 証だと思われるため チャット履歴はユーザー側で削除する実装が必要 チャット履歴はデフォルトTable Storage