画像検索の例
この例では、TiDB ベクトル検索機能とマルチモーダル埋め込みモデルを組み合わせて画像検索アプリを構築する方法を示します。
わずか数行のコードで、テキストと画像の両方を理解する検索システムを作成できます。
- テキストから画像への検索: 「ふわふわのオレンジ色の猫」など、自然言語で欲しいものを説明してペットの写真を検索します
- 画像間検索: 写真をアップロードして、品種、色、ポーズなどで視覚的に似ているペットを検索します

マルチモーダル埋め込みによるペット画像検索
前提条件
始める前に、次のものがあることを確認してください。
- Python (>=3.10) : パイソン 3.10 以降のバージョンをインストールします。
- TiDB Cloud Starter クラスター: TiDB Cloudに無料の TiDB クラスターを作成できます。
- Jina AI APIキー: Jina AI 埋め込みから無料のAPIキーを取得できます。
実行方法
ステップ1. pytidbリポジトリのクローンを作成する
pytidbは、開発者が AI アプリケーションを効率的に構築できるように設計されています。
git clone https://github.com/pingcap/pytidb.git
cd pytidb/examples/image_search/
ステップ2. 必要なパッケージをインストールする
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r reqs.txt
ステップ3. 環境変数を設定する
- TiDB Cloudコンソールでクラスターページに移動し、ターゲット クラスターの名前をクリックして概要ページに移動します。
- 右上隅の「接続」をクリックします。接続パラメータがリストされた接続ダイアログが表示されます。
- 次のように接続パラメータに応じて環境変数を設定します。
cat > .env <<EOF
TIDB_HOST={gateway-region}.prod.aws.tidbcloud.com
TIDB_PORT=4000
TIDB_USERNAME={prefix}.root
TIDB_PASSWORD={password}
TIDB_DATABASE=test
JINA_AI_API_KEY={your-jina-ai-api-key}
EOF
ステップ4.データセットをダウンロードして抽出する
このデモでは、 オックスフォードペットデータセットを使用してペットの画像を検索用にデータベースに読み込みます。
Linux/MacOSの場合:
# Download the dataset
curl -L -o oxford_pets.tar.gz "https://thor.robots.ox.ac.uk/~vgg/data/pets/images.tar.gz"
# Extract the dataset
mkdir -p oxford_pets
tar -xzf oxford_pets.tar.gz -C oxford_pets
ステップ5. アプリを実行する
streamlit run app.py
ブラウザを開いてhttp://localhost:8501アクセスします。
ステップ6. データをロードする
サンプル アプリでは、 [サンプル データの読み込み]ボタンをクリックして、サンプル データをデータベースに読み込むことができます。
または、Oxford Pets データセット内のすべてのデータをロードする場合は、 [すべてのデータのロード]ボタンをクリックします。
ステップ7. 検索
- サイドバーで検索タイプを選択します。
- 探しているペットの説明文を入力するか、犬または猫の写真をアップロードします。
- [検索]ボタンをクリックします。
関連リソース
- ソースコード: GitHubでビュー