セマンティック検索
セマンティックメディア検索は、任意で使用できる高度な機能です。ドローンメディアライブラリをエンベッドプロバイダーに接続し、ファイル名、タイトル、タグ、メモの文字列だけではなく、意味にもとづいてメディアを検索できるようにします。
ドローンメディアライブラリは、エンベッドのバックエンドとして Drone Media Library Embedding Provider を使用できます。プロバイダーは、コンピューター上でローカル実行することも、Modal(https://modal.com/) 上で実行することもできます。
プロバイダーの選択肢
すべてを自分のコンピューター上で実行したい場合は、ローカルモード を使用します。テストやオフライン/ローカルワークフローでは最もシンプルな選択肢ですが、初回のモデル読み込みには数分かかる場合があり、性能は使用するマシンに依存します。
GPU 対応のリモート計算環境で埋め込みプロバイダーを実行したい場合は、Modalモード を使用します。ローカルコンピューターが遅い場合、より一貫したインデックス作成環境が必要な場合、または複数のマシンで同じプロバイダーエンドポイントを使用したい場合に便利です 。
プロバイダーをローカルで実行する
埋め込みプロバイダープロジェクトをクローンまたはダウンロードします。
git clone https://github.com/reddotdrone/drone-media-library-embedding-provider.git
cd drone-media-library-embedding-provider
API キーを設定します。change-me の代わりに自分の値を使用してください。
export DRONE_MEDIA_LIBRARY_EMBEDDING_API_KEY="change-me"
ローカルプロバイダーを起動します。
uv run drone-media-library-embedding-provider serve --host 127.0.0.1 --port 8765
ローカルエンドポイントは次のとおりです。
http://127.0.0.1:8765
ヘルスエンドポイントは公開されています。
http://127.0.0.1:8765/v1/health
モデル一覧と埋め込みエンドポイントには、Bearer トークンの API キーが必要です。
Modalでプロバイダーを実行する
まず Modalをインストールして設定し、プロバイダー API キー用の Modal secret を作成します。
modal secret create drone-media-library-embedding-provider \
DRONE_MEDIA_LIBRARY_EMBEDDING_API_KEY="change-me"
開発中に一時的に提供します。
uv run modal serve src/drone_media_library_embedding_provider/modal_app.py
常時利用するためにデプロイします。
uv run modal deploy src/drone_media_library_embedding_provider/modal_app.py
Modal がアプリを起動またはデプロイしたら、Modal の Web エンドポイントを Drone Media Library のプロバイダーエンドポイントとして使用します。現在のプロバイダーアプリは、local mode と同じ Bearer トークン API キーを検証します。
プロバイダーコードは、GPU 対応関数で Modal アプリを実行するように設定されています。デプロイで使用される正確な GPU 種別を確認する必要がある場合は、リリース前にプロバイダーリポジトリを確認してください。
対応モデル
現在、プロバイダーは次のモデル ID を公開しています。
openclip/xlm-roberta-base-ViT-B-32/laion5b_s13b_b90k
openclip/ViT-B-32/laion2b_s34b_b79k
mobileclip2/MobileCLIP2-S2/dfndr2b
設定 で選択モデルとして、これらのいずれかの値を使用します。迷う場合は、次から始めてください。
openclip/xlm-roberta-base-ViT-B-32/laion5b_s13b_b90k