ハイブリッド検索の例
このデモでは、ベクトル検索と全文検索を組み合わせて、文書セット全体の検索精度を向上させる方法を示します。
TiDBハイブリッド検索デモ
前提条件
始める前に、以下のものを用意してください。
- Python (>=3.10) : Python 3.10以降のバージョンをインストールしてください。
- TiDB Cloud Starterインスタンス: TiDB Cloudで無料のTiDB Cloud Starterインスタンスを作成できます。
- OpenAI API キー: OpenAIから OpenAI API キーを取得します。
注記
現在、全文検索は以下の製品オプションおよび地域でのみご利用いただけます。
- TiDB Cloud Starter:フランクフルト(
eu-central-1)、シンガポール(ap-southeast-1)
実行方法
ステップ1. pytidbリポジトリをクローンする
pytidbはTiDBの公式Python SDKであり、開発者がAIアプリケーションを効率的に構築できるよう設計されています。
git clone https://github.com/pingcap/pytidb.git
cd pytidb/examples/hybrid_search
ステップ2. 必要なパッケージをインストールし、環境をセットアップします。
python -m venv .venv
source .venv/bin/activate
pip install -r reqs.txt
ステップ3.環境変数を設定する
- TiDB Cloudコンソールで、私のTiDBページに移動し、ターゲットのTiDB Cloud Starterインスタンスの名前をクリックして、その概要ページに移動します。
- 右上隅の「接続」をクリックします。接続ダイアログが表示され、接続パラメータが表示されます。
- 接続パラメータに応じて環境変数を以下のように設定してください。
cat > .env <<EOF
TIDB_HOST={gateway-region}.prod.aws.tidbcloud.com
TIDB_PORT=4000
TIDB_USERNAME={prefix}.root
TIDB_PASSWORD={password}
TIDB_DATABASE=pytidb_hybrid_demo
OPENAI_API_KEY=<your-openai-api-key>
EOF
ステップ4.デモを実行する
オプション1:Streamlitアプリを実行する
ウェブUIでデモを確認したい場合は、以下のコマンドを実行してください。
streamlit run app.py
ブラウザを開いてhttp://localhost:8501にアクセスしてください。
オプション2:デモスクリプトを実行する
スクリプトを使ってデモを確認したい場合は、以下のコマンドを実行してください。
python example.py
期待される出力:
=== CONNECT TO TIDB ===
Connected to TiDB.
=== CREATE TABLE ===
Table created.
=== INSERT SAMPLE DATA ===
Inserted 3 rows.
=== PERFORM HYBRID SEARCH ===
Search results:
[
{
"_distance": 0.4740166257687124,
"_match_score": 1.6804268,
"_score": 0.03278688524590164,
"id": 60013,
"text": "TiDB is a distributed database that supports OLTP, OLAP, HTAP and AI workloads."
},
{
"_distance": 0.6428459116216618,
"_match_score": 0.78427225,
"_score": 0.03200204813108039,
"id": 60015,
"text": "LlamaIndex is a Python library for building AI-powered applications."
},
{
"_distance": 0.641581407158715,
"_match_score": null,
"_score": 0.016129032258064516,
"id": 60014,
"text": "PyTiDB is a Python library for developers to connect to TiDB."
}
]
関連リソース
- ソースコード: GitHubでビュー
