1.8K Views
June 19, 24
スライド概要
第3回 JAZUG for Women の登壇スライド
アーカイブ動画:https://www.youtube.com/watch?v=GWUy7zmMtrE
・Azure Functionsとは
・Azure Functions Azure OpenAI Extensionsでできることと、Chatサンプルの動かし方
バックエンドエンジニア。 主にC#, Azure, Terraform, GitHub Actionsをいじっています。
Azure Functions Azure OpenAI 拡張機能を使って 簡単にAIとやりとりしてみよう! 第3回 JAZUG for Women 2024/06/14 長瀬 マキ(@yuma_prog)
自己紹介 ● ● ● ● ● 長瀬マキ(X:@yuma_prog) バックエンドエンジニア AzureやC#をよくいじっています Azureわいがや会 主催 JAZUG/Hack Everything.運営
Azureわいがや会 ● ● ● 各自でもくもくするのではなく、全員で一つ のことをわいがや学ぶゆるっとした勉強会 一人のドライバーを全員でナビゲートして 進める人数過剰版モブプロ Azureに関連する気がすればなんでもOK 月曜日に開催したこの会でやった内容を 話します!
Azure Functions用のAzure OpenAI拡張機能とは
Azure Functionsとは ● ● 関数を簡単にAzureにデプロイできるサーバーレスソリューション トリガーとバインドという便利な概念 ○ ● トリガー ○ ○ ● 他のサービスへのアクセスのハードコーディングを回避することができる 関数実行のきっかけになるイベント Blob Storageへのファイルアップロード、 HTTPリクエスト、タイマーなど バインド ○ ○ 別のリソースを接続する方法 入力バインド、出力バインドがある Azure Functions のトリガーとバインド | Microsoft Learn
Azure OpenAI 拡張機能でできること ● 入力バインド ○ ○ ○ ○ ○ ○ ● 出力バインド ○ ● テキスト入力候補 アシスタントへのポスト(メッセージ送信) アシスタントクエリ(履歴取得) テキスト埋め込み 埋め込みストア(ベクトルデータベースへの書き込み) セマンティック検索(ベクトルデータベースからの読み取り) アシスタント作成 トリガー ○ アシスタント要求に応答
AOAI拡張を動かしてみる
とりあえず動かして理解したい場合 ● 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を読めばきっと動かせる
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に定義されたリ
クエストを実行
デモ
わいがや会でわかったこと ● ● ● AZURE_OPENAI_KEYの後に半角スペースが入っていると、401エラーや500番 エラーでCredential系のExceptionが返る ○ AZURE_OPENAI_KEYが設定されていないと認識され、ManagedIDでの認 証だと思われるため チャット履歴はユーザー側で削除する実装が必要 チャット履歴はデフォルトTable Storage