OceanBaseのマルチモーダル統合技術を活用して、独自の文化観光アシスタントを構築しましょう。
説明
このチュートリアルは、OB Cloudコンソールでもインタラクティブチュートリアルとして公開されています。実際のOB Cloud環境で操作しながら体験することも可能です。OB Cloudコンソールにログインし、左側のナビゲーションバーにある実践チュートリアルをクリックすると、公開されているすべてのインタラクティブチュートリアルをご覧いただけます。
概念紹介
マルチモーダル統合:マルチモーダル統合は、OceanBaseの統合製品コンセプトの重要な方向性の一つです。本記事でのマルチモーダル統合は主に、マルチモーダルデータのハイブリッド検索技術を指します。OceanBaseはベクトルデータ、空間データ、ドキュメントデータ、スカラーデータなどのタイプの統合クエリをサポートしており、ベクトルインデックス、空間インデックス、全文インデックスなど、さまざまなインデックスのサポートに基づき、より高性能なハイブリッド検索機能を提供します。
LLM(Large Language Model):大規模言語モデル。大量のテキストデータを用いて訓練された深層学習モデルであり、自然言語テキストを生成したり、言語テキストの意味を理解したりすることができます。大規模言語モデルは、テキスト分類、Q&A、対話など、さまざまな自然言語タスクを処理できるため、人工知能への重要なアプローチです。
前提条件
ご利用の環境に、利用可能なトランザクション型(MySQL)クラスタインスタンスが存在します。
本チュートリアルではクラスタインスタンスを例に説明します。テナントの作成を参照してテナントの作成を完了した後、以下の手順を実行してください。
ご利用の環境に、使用可能なMySQL互換モードのテナント、MySQLデータベース、およびデータベースアカウントが既に存在し、データベースアカウントに読み書き権限が付与されています。作成が必要な場合は、詳細についてはアカウントの作成およびデータベースの作成(MySQL専用)に関するドキュメントをご参照ください。
プロジェクト管理者またはインスタンス管理者として、プロジェクト内のインスタンスに対する読み書き操作を実行できます。権限がない場合は、組織管理者に連絡して権限の追加を依頼してください。
(推奨、必須ではありません)Python 3.10 以降のバージョンおよび対応するpipをインストールしてください。お使いのマシンのPythonバージョンが古い場合は、Minicondaを使用して新しいPython 3.10以降の環境を作成できます。詳細についてはminicondaインストールガイドをご参照ください。
conda create -n obmms python=3.10 && conda activate obmmsPoetryをインストールします。コマンドを参照してください:
python3 -m pip install poetryベクトル検索機能を有効にするには、インスタンスのワークベンチで
ob_vector_memory_limit_percentageパラメータを設定していることを確認してください。推奨設定値は30です。このパラメータをより正確に設定する必要がある場合は、ob_vector_memory_limit_percentageに関するドキュメントを参照してこの値を計算してください。
ステップ1:データベース接続情報を取得する
ドロップダウンリストから、ID でクラスタインスタンスを選択します。
**インスタンスワークベンチ**ページに移動します。
接続をクリックし、**接続文字列を取得**を選択します。
ポップアップウィンドウで、**パブリックネットワークを使用**を選択します。
アクセスアドレスを取得し、**現在のブラウザのIPアドレスを追加**を選択します。
データベース関連情報を入力し、**接続文字列をコピー**します。
ステップ2:LLM APIキーを取得する
注意
Alibaba Cloud Model Studioサービスの開始には、第三者プラットフォームへの移動と手続きが必要です。この操作は第三者プラットフォームの料金規則に従い、該当する費用が発生する場合があります。続行する前に、その公式ウェブサイトをご覧いただくか、関連ドキュメントを確認し、料金体系をご確認のうえご了承ください。同意できない場合は、操作を続けないでください。
Alibaba Cloud Model Studioアカウントに登録し、モデルサービスを開始してAPIキーを取得します。
ステップ3:地理サービスAPIキーを取得する
注意
Amapの地理サービスを開始するには、第三者プラットフォームへの移動と手続きが必要です。この操作は第三者プラットフォームの料金規則に従い、該当する費用が発生する場合があります。続行する前に、その公式ウェブサイトをご覧いただくか、関連ドキュメントを確認し、料金体系をご確認のうえご了承ください。同意できない場合は、操作を続けないでください。
Amapオープンプラットフォームに登録し、Basic LBSサービスのAPIキーを取得します。
ステップ4:公開データセットをダウンロードする
Kaggleの中国都市観光スポット詳細データセットのZIP圧縮ファイルをダウンロードします。
ステップ5:あなたの文化観光アシスタントを構築する
プロジェクトリポジトリのクローン
最新のプロジェクトリポジトリをクローンします。
git clone https://github.com/oceanbase-devhub/ob-multi-model-search-demo.git cd ob-multi-model-search-demoダウンロードした
archiveデータセットのZIP圧縮ファイルをob-multi-model-search-demoプロジェクトフォルダに移動し、citydataに名前を変更して解凍します。# archive.zipファイルの実際の保存パスに変更してください mv ./archive.zip ./citydata.zip unzip ./citydata.zip
依存関係のインストール
プロジェクトのルートディレクトリで、以下のコマンドを実行して依存関係をインストールします。
poetry install
環境変数の設定
.env ファイルに環境変数を設定します:
vim .env
OB_ で始まる変数は、ご自身のデータベース接続情報に更新し、以下の変数を手動で追加する必要があります:DASHSCOPE_API_KEY をAlibaba Cloud Bailianコンソールから取得したAPIキー値に更新し、AMAP_API_KEY を高徳地図APIサービスから取得したAPIキー値に更新して、ファイルを保存します。
# データベース接続文字列内のホストアドレス
OB_URL="your-ob-url"
OB_USER="your-ob-user"
OB_DB_NAME="your-db-name"
# データベース接続文字列内のパスワード
OB_PWD="your-pwd"
# データベース接続文字列内のSSL CAファイルパス(オプション)。SSLリンク暗号化を使用しない場合は、このパラメータを削除する必要があります。
OB_DB_SSL_CA_PATH="optional-ssl-ca-path"
# LLM APIキーを手動で追加
DASHSCOPE_API_KEY="your-dashscope-api-key"
# 高徳地図APIキーを手動で追加
AMAP_API_KEY="your-amap-api-key"
データのインポート
このステップでは、ダウンロードしたデータセットのデータをOceanBaseにインポートします。
注意
初回ビルド時は、データセットの一部(例えば、最初の文字がAの観光スポットのみを選択してインポートすることをお勧めします。全量インポートは時間がかかります。
python ./obmms/data/attraction_data_preprocessor.py
以下の実行進捗が表示されれば、データが正常にインポートされています。
...
./citydata/常德.csv:
100%|███████████████████████████████████████████████████████████████████████████| 100/100 [00:04<00:00, 20.77it/s]
./citydata/渭南.csv:
100%|█████████████████████████████████████████████████████████████████████████████| 90/90 [00:13<00:00, 6.54it/s]
...
UIチャット画面の起動
以下のコマンドを実行して、チャット画面を起動します:
poetry run streamlit run ./ui.py
ウェブページが直接表示されない場合は、端末に表示されたURLにアクセスして、文旅小助手アプリケーションの画面を開きます。
You can now view your Streamlit app in your browser.
Local URL: http://localhost:8501
Network URL: http://172.xxx.xxx.xxx:8501