コンテンツにスキップ
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 V2amazon.titan-embed-text-v2:0
Amazon Titan Multimodal Embeddingsamazon.titan-embed-image-v1
Cohere Embed Englishcohere.embed-english-v3
TwelveLabs Marengotwelvelabs.marengo-embed-2-7-v1:0(テキスト・画像・ビデオ・オーディオ対応)