## 概要

この演習の最初の4つのモジュールでは、GenAIアプリケーションの様々な要件に対応するために、複数の異種データストア（MySQL、Milvus、ElasticSearchなど）を扱います。これには複数のPythonパッケージが必要となり、開発と保守の課題を実際に体験することができます。しかし、モジュール5では、GenAIの統一データストレージとして、たった1つのPythonパッケージ - pytidb - と1つのデータストア - TiDB - のみを使用します。ここでは、TiDBを使用してGenAIアプリケーションを構築することがいかにシンプルで効率的であるかを直接体験することができます。

<!-- markdownlint-disable MD032 -->
> [!IMPORTANT]
> 演習を開始する前に、必ず以下の情報をお読みください。
> + この演習はChromeブラウザのみ対応しています。
> + この演習では、必要なモデルを呼び出すためにAmazon Bedrockへの一時的なアクセスが許可されます。演習資料に記載されている使用ガイドラインを厳守し、他のコンテキストでこのアクセス権を利用しないでください。金銭的損失につながるAmazon Bedrockの権限の不正使用に対しては、ユーザーに法的責任を問う権利を留保します。
> + 現在、TiDB Full-Text Search with SQL機能は、TiDB Cloud Starter フランクフルト（eu-central-1）とシンガポール（ap-southeast-1）リージョンでのみ利用可能です。この演習でご自身の無料TiDB Cloudデータベースを使用する場合は、TiDBクラスタがフランクフルトまたはシンガポールにデプロイされていることを確認してください。

![70%](https://lab-static.pingcap.com/quick-demo/demo-422/422-with-bg.png)

生成AIは現在、多くの開発者が探求を熱望する最先端分野です。しかし、いくつかの障壁がしばしばこの領域への参入を妨げています。例えば：

- AIの基礎知識の欠如により、どこから始めればよいかわからない。
- 生成AIアプリケーションを構築するための包括的で、ステップバイステップ、かつインタラクティブなガイドの不在。
- データベースや大規模モデルAPIなど、学習に必要なインフラへのアクセスの制限。

これらの課題に対処するため、私たちはこの演習を含む一連の演習を開発しました。これらを通じて、以下のことを学びます：

- 従来のAIアプリケーションの作成方法。以下のストレージを基盤とし、フル機能のアプリケーションを構築します：

  - リレーショナルデータベース： 例 `MySQL`
  - ベクトルデータベース：例 `Milvus`
  - 全文検索エンジン：例 `ElasticSearch`

- `pytidb` を使用して **TiDB Cloud Starter** をAIアプリケーション向けの統一データストレージ層として活用し、アプリケーションを簡素化する方法。

> [!NOTE]
> この演習では、Streamlitを高速アプリケーション開発フレームワークとして使用し、データアプリケーションの構築を効率化・加速させます。
> 演習を開始するためにご自身のTiDB Cloud Starterクラスタを選択するか、サンドボックスのTiDB Cloud Starterオプションを選択するかにかかわらず、このハンズオン演習専用のデータベースが作成されます。

### タスク

1. 初めてのシンプルなAIアプリケーションの構築：LLMを呼び出し、質問への回答を提供。
2. RAGを使用してAIアプリケーションを改善し、アプリケーションに記憶機能の付与：

    - テキストチャンクの保存ストレージとしてMySQLを使用。
    - ベクトルストレージおよび検索エンジンとしてMilvusを使用。

3. 追加の検索チャネルを導入してAIアプリケーションのパフォーマンスを向上。全文検索は、AIアプリケーションに異なる検索視点を提供するための良い選択肢：

    - 全文検索エンジンとしてElasticSearchを使用。

4. **TiDBを使用してアプリケーションを書き直し、全体のアーキテクチャを簡素化。**

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