Voyagerを使用したAirbnbデータセットのベクトル検索サンプルアプリケーションです。OpenAIのテキスト埋め込みを使用して、自然言語でAirbnb物件を検索できます。
- Voyagerを使用した高速なベクトル検索
- OpenAI text-embedding-3-smallモデルによる自然言語クエリの埋め込み
- MongoDB/airbnb_embeddings データセットを使用
- 価格範囲とWiFiの有無でフィルタリング可能
- Docker
- OpenAI API キー
- Make(オプション)
- 環境変数の設定:
export OPENAI_API_KEY=your_api_key_here
- アプリケーションのビルド:
make build
- インデックスの作成:
make create-index
- 検索の実行:
make search
- MongoDBのAirbnbデータセットをダウンロード
- 各物件の事前計算された埋め込みベクトル(1536次元)を取得
- Voyagerインデックスを構築し、メタデータと共に保存
- ユーザーの検索クエリをOpenAIのAPIで埋め込みベクトルに変換
- Voyagerを使用して類似度の高い物件を検索
- 指定された価格範囲とWiFi条件でフィルタリング
- 結果を類似度スコアと共に表示
app/indexer.py
: インデックス作成ロジックapp/searcher.py
: 検索ロジックapp/utils.py
: OpenAI APIラッパーapp/models.py
: データモデルapp/cli.py
: CLIインターフェース
このプロジェクトは MITライセンス の下で公開されています。