Slide 1

Slide 1 text

Azure OpenAI の Tools(Function Calling)を 使ってタスク管理してみよう!! しろくま(Nomura Hiroki) #75azu

Slide 2

Slide 2 text

自己紹介 野村 宏樹 / Hiroki Nomura 愛知 / PoC部 Expertise  Azure  Oracle Database  OutSystems SNS  Zenn : https://zenn.dev/nomhiro  X : @Shrkm1204 趣味  テニス 野球 ピアノ 先週電子ピアノを移動したら腰を痛めました

Slide 3

Slide 3 text

Agenda  Microsoft Ignite 2024 個人的まとめ  Azure OpenAIのToolsを使ったタスク管理  まとめ

Slide 4

Slide 4 text

Microsoft Ignite 2024 個人的まとめ 3つ!!!

Slide 5

Slide 5 text

Microsoft Ignite 2024 個人的まとめ 1/3 Azure Functions  Flex ConsumptionがGA  VNet統合に対応した高速スケーリング能力を持つ従量課金モデル  まだJapanEastリージョンでは使えない  デプロイスロットがない

Slide 6

Slide 6 text

Microsoft Ignite 2024 個人的まとめ 2/3 Azure Functions  Durable Task Scheduler が Private Preview  Orchestratorログ、ActivityログがAzurePortalから確認できるように。  Durable Functions のための Azure Storage は不要に。  Azure Storage によるボトルネックが無くなったため、パフォーマンスが向上。  価格は未定  PrivateEndpointの導入時期は未定。(まだPrivatePreviewですから!) Announcing Limited Early Access of the Durable Task Scheduler for Azure Durable Functions | Microsoft Community Hub

Slide 7

Slide 7 text

Microsoft Ignite 2024 個人的まとめ 3/3 Azure Cosmos DB  ベクトル検索がGA  ベクトル検索機能有効にした状態で、継続的バックアップができるように あれ、Cosmos ”DB” だよな…?  フルテキスト検索とハイブリッド検索がPublic Preview  フルテキスト検索のAnalyzerは英語のみ対応中

Slide 8

Slide 8 text

Azure OpenAIのToolsを使ったタスク管理 そもそもどういうモチベーション?

Slide 9

Slide 9 text

Agentic AI? Agentは役割の違い • Agent = RAGによるナレッジ回答 だけではない • 業務で利用するとなると、回答が得られたあとのActionを行う必要がある。 →例)何らかシステムへの入力、文書化、他の人への連絡 など…

Slide 10

Slide 10 text

何をさせたいか? →Tools(Function Calling)を使い、生成AIに関数(Action)を選んでもらう →生成AIが選んだ関数を実行する • 生成AIにActionを考えさせたい • 生成AIが考えたActionを実行したい

Slide 11

Slide 11 text

OpenAIのToolsとは? 一言でいうと、 OpenAIが、問い合わせ内容に応じて、実行すべき外部関数を選んでくれる。

Slide 12

Slide 12 text

OpenAIのToolsとは? 関数一覧を定義 ・関数名と説明 ・Inputパラメータ名と説明 ・Outputパラメータ名と説明 実装コード Azure OpenAI 呼び出した

Slide 13

Slide 13 text

今回のデモでは… →Google Calendarのタスク取得/登録/更新/削除の関数を用意。 Tools(Function Calling)を使い、チャット内容に応じて生成AIに関数を 選んでもらう • Google Calendarの内容をもとにチャット回答してほしい • チャットの内容に応じて、Google Calendarにタスク登録/更新/削除してほしい

Slide 14

Slide 14 text

デモの構成 ①チャット内容送信 ②関数一覧を渡し、 実行すべき関数があれば選ばれる。 OpenAI • Tools チャット画面 TypeScript (Next.js) 関数一覧 ・Task取得 ・Task登録 ・Task更新 ・Task削除 Google Calendar • 各種API ③関数が選ばれていれば関数実行 ③関数実行した結果を加味して 回答生成 ④結果を返却

Slide 15

Slide 15 text

Demo Demo Tools Task Management

Slide 16

Slide 16 text

まとめ

Slide 17

Slide 17 text

まとめ  エージェントというワードをよく聞くようになりましたが、役割の違いだと思ってます。  過去のチャットと問い合わせをもとに、Actionを実行することができます。  今回はRAG要素はありませんでしたが、もちろんRAGと併用できます。

Slide 18

Slide 18 text

まとめ 一方で、工夫すべき点は多いです。  チャットベースだと、ユーザの入力次第で生成AIが関数を選ぶ精度が下がります。 →ユーザが行うActionが明確なら、ボタンなどで選んでもらうほうが確実  Toolsに渡す関数の量が多いと、生成AIが関数を選ぶ精度が下がります。 →用意する関数の粒度に注意。システム目線で関数を用意するのではなく、 ユーザが行いたいAction単位で関数を用意すべき。  業務システムに勝手に登録されては困る場合も。 →生成AIからの提案後、Action実行前に人による承認プロセスが必要。

Slide 19

Slide 19 text

ありがとうございました!