Amazon S3 Vectors
Amazon S3 Vectors Embedding Store は Amazon S3 Vectors と統合します。これは、大規模なベクトル embedding の保存とクエリ向けに設計された Amazon S3 内の専用ベクトルストレージ機能です。
Maven依存関係
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-community-s3-vectors</artifactId>
<version>${latest version here}</version>
</dependency>
API
S3VectorsEmbeddingStore
機能
- メタデータ付きで embedding を保存
- コサイン距離またはユークリッド距離によるベクトル類似度検索
- メタデータフィールドによる検索結果のフィルタリング
- 最初の embedding 挿入時にインデックスを自動作成
- 標準の AWS 認証情報プロバイダーをサポート
使い方
基本設定
S3VectorsEmbeddingStore embeddingStore = S3VectorsEmbeddingStore.builder()
.vectorBucketName("my-vector-bucket") // S3 Vectors bucket name (required)
.indexName("my-index") // Index name within the bucket (required)
.region("us-west-2") // AWS region (default: us-east-1)
.distanceMetric(DistanceMetric.COSINE) // Distance metric (default: COSINE)
.createIndexIfNotExists(true) // Auto-create index (default: true)
.timeout(Duration.ofSeconds(60)) // API call timeout (default: 30 seconds)
.credentialsProvider(myCredentialsProvider) // Custom AWS credentials
.build();
既存の S3VectorsClient を使用する
すでに構成済みの S3VectorsClient がある場合は、ビルダーに直接渡すことができます:
S3VectorsClient customClient = S3VectorsClient.builder()
.region(Region.US_WEST_2)
.credentialsProvider(myCredentialsProvider)
.build();
S3VectorsEmbeddingStore embeddingStore = S3VectorsEmbeddingStore.builder()
.s3VectorsClient(customClient)
.vectorBucketName("my-vector-bucket")
.indexName("my-index")
.build();
距離メトリクス
S3 Vectors embedding store は 2 種類の距離メトリクスをサポートします。距離値は自動的に [0, 1] の範囲の関連性スコアに変換され、1 が最も関連性の高い一致を表します。
コサイン距離(デフォルト)
適している用途: テキスト embedding、意味的類似度検索
- ベクトル間の角度のコサインを測定
- 関連性スコアへの変換:
score = (1 - distance + 1) / 2 - 結果はベクトルの大きさに依存しない
.distanceMetric(DistanceMetric.COSINE) // Default, recommended for text embeddings
ユークリッド距離
適している用途: 方向と大きさの両方が重要な場合
- ベクトル間の直線距離を測定
- 範囲:[0, ∞)
- 関連性スコアへの変換:
score = 1 / (1 + distance)
.distanceMetric(DistanceMetric.EUCLIDEAN)
フィルタリング
S3 Vectors embedding store は、メタデータフィールドによる検索結果のフィルタリングをサポートします。
サポートされるフィルター操作
isEqualTo:等価比較isNotEqualTo:非等価比較isGreaterThan:より大きい比較isGreaterThanOrEqualTo:以上比較isLessThan:より小さい比較isLessThanOrEqualTo:以下比較isIn:IN 演算子(複数値)isNotIn:NOT IN 演算子And:論理積Or:論理和Not:論理否定
実装の詳細
認証情報
デフォルトでは、store は DefaultCredentialsProvider を使用し、標準の AWS 認証情報解決チェーン(環境変数、システムプロパティ、認証情報ファイル、EC2 インスタンスプロファイルなど)に従います。ビルダー経由でカスタムの AwsCredentialsProvider を提供できます。
インデックス作成
createIndexIfNotExists が true(デフォルト)の場合、最初の embedding 挿入時にインデックスが自動作成されます。インデックスの次元と距離メトリクスは、追加された最初の embedding と設定された距離メトリクスに基づいて設定されます。