## 概要

<!-- markdownlint-disable MD032 -->
> [!IMPORTANT]
> 演習を開始する前に、必ず以下の情報をお読みください。
> + この演習は Chrome ブラウザのみ対応しています。
> + この演習では、必要なモデルを呼び出すために Amazon Bedrock への一時的なアクセス権が付与されます。演習資料に記載されている使用ガイドラインを厳守し、このアクセスを他の文脈で使用することは控えてください。Amazon Bedrock 権限の誤用により経済的損失が生じた場合、ユーザーに法的責任を問う権利を留保します。

AIは現在、最先端の分野であり、多くの開発者が学びたいと考えています。しかし、学習の過程でいくつかの障害が発生しがちです。

- AIの基礎知識の不足
- 複雑すぎる基盤インフラ
- AIアプリケーションのための包括的かつ段階的なドキュメントの欠如

これらの課題を解決するために、本ラボを開発しました。このラボを通じて、次のことを学びます：

- **TiDB Cloud Starter** をAIアプリケーションのデータストレージ層として活用し、AI開発プロセスを加速する方法
- Embeddingとは何か、その機能
- 取得したEmbeddingベクトルの活用方法
- ハイブリッド検索（Hybrid Search）による追加リコールチャネルの利用方法
- 大量データを扱う際のRAG / GraphRAGによるデータ検索方法

### タスク

- **RAG（検索拡張生成）**

  - テキスト埋め込みにAmazon Bedrock Embeddingモデルを使用します。
  - Embeddingベクトルと元のテキストをTiDB Cloud Starterに保存します。
  - `pytidb`とTiDB Cloud Starterを利用してベクトル類似度検索を行い、ユーザーのクエリに最も関連するテキストデータを取得します。
  - 結果生成にAmazon Bedrock LLMを使用します。

- **画像検索**

  - 画像の特徴抽出にAmazon Bedrock Titan Multimodal Embeddings G1モデルを使用し、Embeddingを取得します。
  - Embeddingベクトルと元画像IDを`pytidb`経由でTiDB Cloud Starterに保存します。
  - `pytidb`とTiDB Cloud Starterを利用してベクトル類似度検索を行い、与えられた画像と特徴が最も類似する画像を取得します。

- **ハイブリッドRAG**

  - `pytidb`を利用して、追加チャネル（BM25）を加え、より関連性の高いデータを取得します。

- **GraphRAGチュートリアル**

  - TiDB Cloud Starterで事前構築されたグラフを検索します。
  - グラフを利用して、ユーザーのクエリに最も関連するテキストデータを取得します。

> [!TIP]
> 演習環境を起動するには、**開始**をクリックしてください。
> 環境の準備が完了すると、ハンズオンセッションに割り当てられたリソースに実際の値が設定されるため、演習ガイドに従って段階的に演習を完了できます。
