このハンズオンでは、Cosmos DB と AI Search をデータストアとした Retrieval Augmented Generation (RAG) パターンの実践として、以下を習得することがゴールです。
- 自社独自のデータを検索対象としたベクター検索が可能な検索インデックスの作成
- このハンズオンでは、このリポジトリのdata/sample-data.jsonにある Azure のサービスの一覧の情報を独自データとして利用し、検索インデックスを作成します。
- イベントドリブンによるリアルタイムで継続的な検索インデックスのデータ更新
- ベクター検索
- ベクター検索の結果を用いた LLM での回答生成
開発言語は、Python を利用します。
ハンズオンで実現するアーキテクチャ構成は以下となります。
Azure OpenAI と Cognitve Search を活用し以下のプログラムを実装して、ハンズオンのゴールを目指します。
- data ingestor (図:左側) の API で、独自のデータを受け取り Cosmos DB へデータを保存を実現
- Indexer (図:**) で、Cosmos DB へのデータの登録・更新のイベントをトリガーにして、ほぼリアルタイムに AI Search のインデックス更新を実現
- chat (図:右側) の API で、受け付けた質問に対して、AI Search へのベクター検索と LLM を使った回答の生成を実現
※ 今回のハンズオンでは、Auzre のリソースを作成することで料金が発生するリソースもあります。ご自身の状況に応じて、今回のハンズオンの最後にリソースグループごとすべて消すなどは自己責任で行なってください。
0~3のチャプターで今回利用する Azure のリソースをセットアップし実装を進めていきます。
タイトル | 概要 |
---|---|
🧪 S1. Azure OpenAI Service のセットアップ | 今回のハンズオンで利用する Azure OpenAI Service のリソースをセットアップします。 |
🧪 S2. Azure のリソースをセットアップ | 今回のハンズオンで利用する AI Search/Cosmos DB/Function App のリソースをセットアップします。 |
🧪 D1. テンプレートのコードをセットアップ | 今回利用する Function App のコードのテンプレートをセットアップします。 |
🧪 D2. indexer.py の実装 | Function App で、Change Feed 機能を活用して AI Search のインデックスのデータを更新する処理を実装します。 |
🧪 D3. RAG パターンのチャットを試す | 更新した AI Search のインデックスをもとに RAG パターンのチャットを試します。 |
🧪 D4. Azure へのデプロイ | Azure Functions へデプロイして動作確認をします。 |
🚮 Azure のリソース削除 | Azure のリソースを削除する方法を説明します。 |
事前のミーティングでの内容をご確認ください。
以下のリンクからハンズオンの旅に出発しょう🚀