Aracılığıyla paylaş


Vektör Deposu değişiklikleri - Mayıs 2025

Nuget Paketi Yeniden Adlandırıyor

Aşağıdaki nuget paketleri netlik ve uzunluk için yeniden adlandırıldı.

Eski Paket Adı yeni Paket Adı
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

Tür Yeniden Adlandırmaları

GA öncesi resmi API incelememiz kapsamında çeşitli adlandırma değişiklikleri önerildi ve benimsendi ve bu da aşağıdaki ad değişikliklerine neden oldu. Bunlar netliği, tutarlılığı artırmaya ve tür adı uzunluğunu azaltmaya yardımcı olmalıdır.

Eski Ad Alanı Eski TypeName Yeni Ad Alanı Yeni TypeName
Microsoft.Extensions.VectorData VectorStoreRecordDefinition Microsoft.Extensions.VectorData VectorStoreCollectionDefinition
Microsoft.Extensions.VectorData VectorStoreRecordKeyAttribute Microsoft.Extensions.VectorData VectorStoreKeyAttribute
Microsoft.Extensions.VectorData Vektör Deposu Kaydı Veri Özelliği Microsoft.Extensions.VectorData VectorStoreDataAttribute
Microsoft.Extensions.VectorData VectorStoreRecordVectorAttribute Microsoft.Extensions.VectorData VectorStoreVectorAttribute
Microsoft.Extensions.VectorData VectorStoreRecordProperty Microsoft.Extensions.VectorData VectorStoreProperty
Microsoft.Extensions.VectorData VectorStoreRecordKeyProperty Microsoft.Extensions.VectorData VectorStoreKeyProperty
Microsoft.Extensions.VectorData VektörDepoKayıtVeriÖzelliği Microsoft.Extensions.VectorData VectorStoreDataProperty
Microsoft.Extensions.VectorData VectorStoreRecordVectorProperty Microsoft.Extensions.VectorData VectorStoreVectorProperty
Microsoft.Extensions.VectorData Kaydı Al Seçenekleri 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 AzureCosmosDBNoSQLVectorStoreRecordCollection 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

Desteklenen çeşitli Anlam Çekirdeği uygulamalarının VectorStoreCollection tüm adları, tutarlı bir desen kullanılarak daha kısa adlarla yeniden adlandırıldı.

*VectorStoreRecordCollection şimdi *Collectionşeklindedir. Örn. PostgresVectorStoreRecordCollection ->PostgresCollection.

Benzer şekilde tüm ilgili seçenek sınıfları da değişti.

*VectorStoreRecordCollectionOptions şimdi *CollectionOptionsşeklindedir. Örn. PostgresVectorStoreRecordCollectionOptions ->PostgresCollectionOptions.

Özellik Yeniden Adlandırmaları

Namespace Sınıf Eski Özellik Adı Yeni Özellik Adı
Microsoft.Extensions.VectorData VectorStoreKeyAttribute DepolamaÖzelliğiAdı StorageName
Microsoft.Extensions.VectorData VectorStoreDataAttribute DepolamaÖzelliğiAdı DepolamaAdı
Microsoft.Extensions.VectorData VectorStoreVectorAttribute DepolamaÖzelliğiAdı StorageName
Microsoft.Extensions.VectorData VectorStoreKeyProperty VeriModeliÖzellikAdı İsim
Microsoft.Extensions.VectorData VectorStoreKeyProperty DepolamaÖzelliğiAdı StorageName
Microsoft.Extensions.VectorData VectorStoreKeyProperty Mülk Türü Türü
Microsoft.Extensions.VectorData VectorStoreDataProperty VeriModeliÖzellikAdı İsim
Microsoft.Extensions.VectorData VectorStoreDataProperty DepolamaÖzelliğiAdı DepoAdı
Microsoft.Extensions.VectorData VectorStoreDataProperty Mülk Türü Türü
Microsoft.Extensions.VectorData VectorStoreVectorProperty VeriModeliÖzellikAdı İsim
Microsoft.Extensions.VectorData VectorStoreVectorProperty DepolamaÖzelliğiAdı StorageName
Microsoft.Extensions.VectorData VectorStoreVectorProperty Mülk Türü Türü
Microsoft.Extensions.VectorData Mesafe Fonksiyonu Hamming HammingDistance

VectorStoreRecordDefinition Koleksiyon seçenekleri sınıflarında özelliği yalnızca Definitionolarak yeniden adlandırıldı.

Yöntemlerin Yeniden Adlandırılması

CreateCollectionIfNotExistsAsync üzerindeki Collection yöntemi EnsureCollectionExistsAsync olarak yeniden adlandırıldı.

DeleteAsync ve *Collection üzerindeki yöntem VectorStore olarak yeniden adlandırıldı. Bu, yöntemin davranışıyla daha yakından hizalanır ve varsa bir koleksiyonu siler. Koleksiyon yoksa hiçbir şey yapmaz ve başarılı olur.

Temel soyut sınıfa arabirim

Aşağıdaki arabirimler temel soyut sınıflar olarak değiştirilmiştir.

Namespace Eski Arabirim Adı Yeni Tür Adı
Microsoft.Extensions.VectorData IVectorStore VectorStore
Microsoft.Extensions.VectorData IVectorStoreRecordCollection VectorStoreCollection

Daha önce IVectorStore veya IVectorStoreRecordCollection kullanıyorsanız, artık bunun yerine VectorStore ve VectorStoreCollection kullanabilirsiniz.

SearchAsync ve SearchEmbeddingAsync birleştirilmesi

SearchAsync Koleksiyondaki ve SearchEmbeddingAsync yöntemleri tek bir yöntemle birleştirilmiştir: SearchAsync.

Daha önce SearchAsync koleksiyonun içinde veya hizmette vektörleştirilecek kaynak verileri kullanarak vektör aramalarına izin verilirken, SearchEmbeddingAsync bir vektör sağlayarak vektör araması yapılmasına izin veriyordu.

Artık her iki senaryo da hem kaynak verileri hem de vektörleri giriş olarak alabilen tek SearchAsync bir yöntem kullanılarak desteklenmektedir.

Yapılması gerekenleri belirleme mekanizması aşağıdaki gibidir:

  1. Sağlanan değer bağlayıcı için desteklenen vektör türlerinden biriyse, arama bunu kullanır.
  2. Sağlanan değer desteklenen vektör türlerinden biri değilse, bağlayıcı sağlanan değerden veritabanı tarafından desteklenen vektör türüne dönüştürmeyi destekleyen vektör deposuna kayıtlı olup olmadığını IEmbeddingGenerator denetler.
  3. Son olarak, uyumlu IEmbeddingGenerator yoksa yöntem bir InvalidOperationException fırlatır.

Dictionary< dize, nesne?> modellerini kullanan*DynamicCollection ve VectorStore.GetDynamicCollection için destek

Mümkün olduğunda ve dinamik veri modelini kullanırken NativeOAT ve Trimming desteğine izin vermek için dinamik veri modellerinin desteklenme şekli değişti. Özellikle, koleksiyonu isteme veya oluşturma şekliniz değişti.

Önceden veri modeliniz olarak Sözlük<string, object?> kullanıyordunuz ve bunu VectorStore.GetCollection kullanarak yapabiliyordunuz, ancak şimdi VectorStore.GetDynamicCollection kullanmanız gerekecek.

// 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 ve VectorStoreRecordCollection artık Yok Edilebilir

Hem VectorStore hem de VectorStoreRecordCollection artık bunların sahip olduğu veritabanı istemcilerinin düzgün bir şekilde elden çıkarılabilmesi için bu nedenle elden çıkarılabilir.

Bir veritabanı istemcisini vektör mağazanıza veya koleksiyonunuza aktardığınızda, vektör mağazasının veya koleksiyonun istemciyi sahiplenip sahiplenmeyeceğini ve dolayısıyla vektör mağazası veya koleksiyon atıldığında istemciyi de atma seçeneğiniz olur.

Örneğin, bir veri kaynağını geçişine PostgresVectorStoretrue geçirirken, veri kaynağının ownsDataSource atıldığında atmasına neden PostgresVectorStore olur.

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

CreateCollection artık desteklenmiyor, EnsureCollectionExistsAsync

CreateCollection üzerindeki Collection yöntemi kaldırıldı ve artık yalnızca EnsureCollectionExistsAsync destekleniyor. EnsureCollectionExistsAsync bir kez etkili olur ve yoksa bir koleksiyon oluşturur ve zaten varsa hiçbir şey yapmaz.

VectorStoreOperationException ve VectorStoreRecordMappingException artık desteklenmiyor, VectorStoreException

VectorStoreOperationException ve VectorStoreRecordMappingException kaldırıldı ve artık yalnızca VectorStoreException destekleniyor. Veritabanına özgü bir özel durumla sonuçlanan tüm veritabanı isteği hataları sarılır ve VectorStoreException olarak atılır. Bu, her uygulama için farklı özel durum türleri yerine, kodun tek bir özel durum türünü yakalamasına olanak tanır.

Uygulanamaz

Bu değişiklikler şu anda yalnızca C'de geçerlidir#

Çok yakında

Bu değişiklikler şu anda yalnızca C'de geçerlidir#