次の方法で共有


ベクター ストアの変更 - 2025 年 5 月

Nuget パッケージの名前変更

わかりやすくするために、次の nuget パッケージの名前が変更されました。

古いパッケージ名 新しいパッケージ名
Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB Microsoft.SemanticKernel.Connectors.CosmosMongoDB
Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL Microsoft.SemanticKernel.Connectors.CosmosNoSql
Microsoft.SemanticKernel.Connectors.Postgres Microsoft.SemanticKernel.Connectors.PgVector
Microsoft.SemanticKernel.Connectors.Sqlite Microsoft.SemanticKernel.Connectors.SqliteVec

タイプ名の変更

GA の前の正式な API レビューの一環として、さまざまな名前付けの変更が提案および採用され、その結果、次の名前が変更されました。 これらは、明確さ、一貫性を向上させ、型名の長さを減らすのに役立ちます。

古い名前空間 古い TypeName 新しい名前空間 新しい TypeName
Microsoft.Extensions.VectorData VectorStoreRecordDefinition Microsoft.Extensions.VectorData VectorStoreCollectionDefinition
Microsoft.Extensions.VectorData ベクトルストアレコードキー属性 Microsoft.Extensions.VectorData VectorStoreKeyAttribute
Microsoft.Extensions.VectorData ベクトルストアレコードデータアトリビュート Microsoft.Extensions.VectorData VectorStoreDataAttribute
Microsoft.Extensions.VectorData VectorStoreRecordVectorAttribute Microsoft.Extensions.VectorData VectorStoreVectorAttribute
Microsoft.Extensions.VectorData ベクターストアレコードプロパティ Microsoft.Extensions.VectorData VectorStoreProperty
Microsoft.Extensions.VectorData ベクトルストア記録キー属性 Microsoft.Extensions.VectorData VectorStoreKeyProperty
Microsoft.Extensions.VectorData ベクター記録ストアデータプロパティ Microsoft.Extensions.VectorData VectorStoreDataProperty
Microsoft.Extensions.VectorData VectorStoreRecordVectorProperty Microsoft.Extensions.VectorData VectorStoreVectorProperty
Microsoft.Extensions.VectorData レコードオプション取得 Microsoft.Extensions.VectorData RecordRetrievalOptions
Microsoft.Extensions.VectorData GetFilteredRecordOptions<TRecord> Microsoft.Extensions.VectorData FilteredRecordRetrievalOptions<TRecord>
Microsoft.Extensions.VectorData IVectorSearch<TRecord> Microsoft.Extensions.VectorData IVectorSearchable<TRecord>
Microsoft.Extensions.VectorData IKeywordHybridSearch<TRecord> Microsoft.Extensions.VectorData IKeywordHybridSearchable<TRecord>
Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB AzureCosmosDBMongoDBVectorStore Microsoft.SemanticKernel.Connectors.CosmosMongoDB CosmosMongoVectorStore
Microsoft.SemanticKernel.Connectors.AzureCosmosDBMongoDB AzureCosmosDBMongoDBVectorStoreRecordCollection Microsoft.SemanticKernel.Connectors.CosmosMongoDB CosmosMongoCollection
Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL AzureCosmosDBNoSQLVectorStore Microsoft.SemanticKernel.Connectors.CosmosNoSql CosmosNoSqlVectorStore
Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL AzureCosmosDBNoSQLベクターストアレコードコレクション Microsoft.SemanticKernel.Connectors.CosmosNoSql CosmosNoSqlCollection
Microsoft.SemanticKernel.Connectors.MongoDB MongoDBVectorStore Microsoft.SemanticKernel.Connectors.MongoDB MongoVectorStore
Microsoft.SemanticKernel.Connectors.MongoDB MongoDBVectorStoreRecordCollection Microsoft.SemanticKernel.Connectors.MongoDB MongoCollection

VectorStoreCollectionのさまざまなセマンティック カーネルでサポートされている実装のすべての名前は、一貫性のあるパターンを使用して短い名前に変更されました。

*VectorStoreRecordCollection*Collection になりました。 例: PostgresVectorStoreRecordCollection ->PostgresCollection

同様に、関連するすべてのオプションクラスも変更されています。

*VectorStoreRecordCollectionOptions*CollectionOptions になりました。 例: PostgresVectorStoreRecordCollectionOptions ->PostgresCollectionOptions

プロパティ名の変更

Namespace クラス 古いプロパティ名 新しいプロパティ名
Microsoft.Extensions.VectorData VectorStoreKeyAttribute ストレージプロパティ名 StorageName
Microsoft.Extensions.VectorData ベクトルストアデータ属性 ストレージプロパティ名 StorageName
Microsoft.Extensions.VectorData VectorStoreVectorAttribute ストレージプロパティ名 StorageName
Microsoft.Extensions.VectorData VectorStoreKeyProperty データモデルプロパティ名 名前
Microsoft.Extensions.VectorData VectorStoreKeyProperty ストレージプロパティ名 StorageName
Microsoft.Extensions.VectorData VectorStoreKeyProperty プロパティタイプ タイプ
Microsoft.Extensions.VectorData VectorStoreDataProperty DataModelPropertyName 名前
Microsoft.Extensions.VectorData VectorStoreDataProperty ストレージプロパティ名 StorageName
Microsoft.Extensions.VectorData VectorStoreDataProperty プロパティタイプ タイプ
Microsoft.Extensions.VectorData VectorStoreVectorProperty データモデルプロパティ名 名前
Microsoft.Extensions.VectorData VectorStoreVectorProperty ストレージプロパティ名 StorageName
Microsoft.Extensions.VectorData VectorStoreVectorProperty プロパティタイプ タイプ
Microsoft.Extensions.VectorData 距離関数 ハミング HammingDistance

コレクション オプション クラスの VectorStoreRecordDefinition プロパティの名前が Definition に変更されました。

メソッド名の変更

CollectionCreateCollectionIfNotExistsAsync メソッドの名前が EnsureCollectionExistsAsync に変更されました。

*CollectionVectorStoreDeleteAsync メソッドの名前が EnsureCollectionDeletedAsync に変更されました。 これはメソッドの動作とより密接に一致し、コレクションが存在する場合はコレクションが削除されます。 コレクションが存在しない場合、何も行われませんが、それでも成功します。

基本抽象クラスへのインターフェイス

次のインターフェイスが基本抽象クラスに変更されました。

Namespace 古いインターフェイス名 新しい型名
Microsoft.Extensions.VectorData IVectorStore VectorStore
Microsoft.Extensions.VectorData IVectorStoreRecordCollection VectorStoreCollection

以前は IVectorStore または IVectorStoreRecordCollection を使用していた場所で、代わりに VectorStore と VectorStoreCollection を使用できるようになりました。

SearchAsyncSearchEmbeddingAsyncのマージ

コレクションの SearchAsync メソッドと SearchEmbeddingAsync メソッドは、1 つのメソッド ( SearchAsync) にマージされています。

以前、SearchAsync はコレクション内またはサービス内でベクター化されるソースデータを使用してベクター検索を許可していましたが、一方でSearchEmbeddingAsync はベクターを指定することでベクター検索を実行することを許可していました。

現在、両方のシナリオが単一の SearchAsync メソッドを使用してサポートされています。これは、ソース データとベクターの両方の入力として使用できます。

何を行うかを決定するメカニズムは次のとおりです。

  1. 指定された値がコネクタでサポートされているベクター型の 1 つである場合、検索ではその型が使用されます。
  2. 指定された値がサポートされているベクター型の 1 つでない場合、コネクタは、指定された値からデータベースでサポートされているベクター型への変換をサポートする IEmbeddingGenerator がベクター ストアに登録されているかどうかを確認します。
  3. 最後に、互換性のある IEmbeddingGenerator が使用できない場合、メソッドは InvalidOperationExceptionをスローします。

辞書<string、object?> モデルのサポート*DynamicCollectionVectorStore.GetDynamicCollection

可能な限り、動的データ モデルを使用する場合に NativeOAT とトリミングのサポートを許可するために、動的データ モデルのサポート方法が変更されました。 具体的には、コレクションを要求または構築する方法が変更されました。

以前は、データモデルとして Dictionary<string、object?> を使用していた場合、VectorStore.GetCollection でこれを要求することができましたが、現在は VectorStore.GetDynamicCollection を使用する必要があります。

// Before
PostgresVectorStore vectorStore = new PostgresVectorStore(myNpgsqlDataSource)
vectorStore.GetCollection<string, Dictionary<string, object?>>("collectionName", definition);

// After
PostgresVectorStore vectorStore = new PostgresVectorStore(myNpgsqlDataSource, ownsDataSource: true)
vectorStore.GetDynamicCollection<string, Dictionary<string, object?>>("collectionName", definition);

VectorStore と VectorStoreRecordCollection が破棄可能になりました

VectorStoreVectorStoreRecordCollectionの両方が破棄可能になり、これらによって所有されているデータベース クライアントが適切に破棄されるようになりました。

ベクター ストアまたはコレクションにデータベース クライアントを渡す場合は、ベクター ストアまたはコレクションがクライアントを所有する必要があるかどうかを指定するオプションがあるため、ベクター ストアまたはコレクションが破棄されるときにも破棄できます。

たとえば、PostgresVectorStoreにデータソースを渡す際にtrueownsDataSourceに渡すと、データソースが破棄されるときにPostgresVectorStoreも破棄されます。

new PostgresVectorStore(dataSource, ownsDataSource: true, options);

CreateCollection はサポートされなくなりました。 EnsureCollectionExistsAsync

CollectionCreateCollection メソッドが削除され、EnsureCollectionExistsAsyncのみがサポートされるようになりました。 EnsureCollectionExistsAsync は冪等であり、存在しない場合はコレクションを作成し、既に存在する場合は何も行いません。

VectorStoreOperationException VectorStoreRecordMappingExceptionはサポートされなくなりました。VectorStoreException

VectorStoreOperationExceptionVectorStoreRecordMappingException が削除され、 VectorStoreException のみがサポートされるようになりました。 データベース固有の例外が発生するすべてのデータベース要求エラーがラップされ、 VectorStoreExceptionとしてスローされます。これにより、コードを使用して、実装ごとに異なる例外の種類ではなく、1 つの例外の種類をキャッチできます。

該当なし

これらの変更は現在、C でのみ適用されます#

もうすぐです

これらの変更は現在、C でのみ適用されます#