ベクトル検索の例
この例では、TiDBとローカル埋め込みモデルを用いたセマンティック検索アプリケーションの構築方法を示します。ベクトル検索を用いて、キーワードだけでなく意味に基づいて類似アイテムを検索します。
アプリケーションは、ローカル埋め込み生成にオラマ 、Web UI にストリームリット 、RAG パイプラインの構築にpytidb (TiDB 用の公式 Python SDK) を使用します。

ベクトル埋め込みによるセマンティック検索
前提条件
始める前に、次のものがあることを確認してください。
- Python (>=3.10) : パイソン 3.10 以降のバージョンをインストールします。
- TiDB Cloud Starter クラスター: TiDB Cloudに無料の TiDB クラスターを作成できます。
- Ollama : オラマからインストールします。
実行方法
ステップ1. Ollamaで埋め込みサービスを開始する
埋め込みモデルを取得します。
ollama pull mxbai-embed-large
埋め込みサービスが実行されていることを確認します。
curl http://localhost:11434/api/embed -d '{
"model": "mxbai-embed-large",
"input": "Llamas are members of the camelid family"
}'
ステップ2. リポジトリのクローンを作成する
git clone https://github.com/pingcap/pytidb.git
cd pytidb/examples/vector_search/
ステップ3. 必要なパッケージをインストールして環境を設定する
python -m venv .venv
source .venv/bin/activate
pip install -r reqs.txt
ステップ4. 環境変数を設定する
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=pytidb_vector_search EOF
ステップ5. Streamlitアプリを実行する
streamlit run app.py
ブラウザを開いてhttp://localhost:8501アクセスします。
関連リソース
- ソースコード: GitHubでビュー