Classmethod S3vectors Embed CLI
AWS公式CLIツールs3vectors-embed-cliでAmazon S3 Vectorsへのベクトル登録・検索を試してみる
- URL: https://dev.classmethod.jp/articles/s3vectors-embed-cli/
- 日付: 2026-06-04
- Tier: Tier 3
- 要旨: AWSが公式提供する
s3vectors-embed-cliを検証。通常のAWS CLIではfloat32配列を手作業で生成してから渡す必要があったが、このツールはテキストを渡すだけでBedrockが自動でベクトル化してS3 Vectorsに保存・検索できる。ワイルドカード一括処理・メタデータフィルタリングも動作確認済み。
詳細
従来のAWS CLIとの比較
- 従来: テキスト→Bedrock APIで手動ベクトル化→float32配列をJSONで
put-vectorsに渡す(複数ステップ) - s3vectors-embed-cli: テキスト文字列を渡すだけで自動ベクトル化&保存
主なコマンド
# テキストを登録
s3vectors-embed put --vector-bucket-name {} --index-name {} --model-id amazon.titan-embed-text-v2:0 --text-value "テキスト"
# テキストで類似度検索
s3vectors-embed query --vector-bucket-name {} --index-name {} --model-id amazon.titan-embed-text-v2:0 --text-value "クエリ" --k 5
# ワイルドカード一括登録
s3vectors-embed put --text "./documents/*.txt" --filename-as-key
# メタデータフィルタ付き検索
s3vectors-embed query --text-value "クエリ" --filter '{"source": {"$eq": "google_meet_transcript"}}'動作確認した特徴
- 登録時にソーステキストが
S3VECTORS-EMBED-SRC-CONTENTメタデータとして自動保存される - cosine距離(小さいほど近い)で結果が返る
--output tableでRichテーブル形式表示--max-workers(デフォルト4)・--batch-size(デフォルト500)で並列処理を調整可能
対応モデル
| モデル | モデルID |
|---|---|
| Amazon Titan Text Embeddings V2 | amazon.titan-embed-text-v2:0 |
| Amazon Titan Multimodal Embeddings | amazon.titan-embed-image-v1 |
| Cohere Embed English | cohere.embed-english-v3 |
| TwelveLabs Marengo | twelvelabs.marengo-embed-2-7-v1:0(テキスト・画像・ビデオ・オーディオ対応) |