Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Ridenominazione dei pacchetti NuGet
I pacchetti NuGet seguenti sono stati rinominati per maggiore chiarezza e lunghezza.
Nome pacchetto precedente | nome nuovo pacchetto |
---|---|
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 |
Rinomina dei tipi
Nell'ambito della revisione formale dell'API prima della disponibilità generale sono state proposte e adottate varie modifiche di denominazione, con conseguente modifica del nome seguente. Questi dovrebbero contribuire a migliorare chiarezza, coerenza e ridurre la lunghezza del nome del tipo.
Spazio dei nomi precedente | Vecchio NomeTipo | Nuovo spazio dei nomi | Nuovo TypeName |
---|---|---|---|
Microsoft.Extensions.VectorData | VectorStoreRecordDefinition | Microsoft.Extensions.VectorData | VectorStoreCollectionDefinition |
Microsoft.Extensions.VectorData | VectorStoreRecordKeyAttribute | Microsoft.Extensions.VectorData | VectorStoreKeyAttribute |
Microsoft.Extensions.VectorData | VectorStoreRecordDataAttribute | 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 | VectorStoreRecordDataProperty | Microsoft.Extensions.VectorData | VectorStoreDataProperty |
Microsoft.Extensions.VectorData | VectorStoreRecordVectorProperty | Microsoft.Extensions.VectorData | VectorStoreVectorProperty |
Microsoft.Extensions.VectorData | GetRecordOptions | 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 | Azure Cosmos DB MongoDB Vector Store Record Collection | Microsoft.SemanticKernel.Connectors.CosmosMongoDB | CosmosMongoCollection |
Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL | AzureCosmosDBNoSQLVectorStore | Microsoft.SemanticKernel.Connectors.CosmosNoSql | CosmosNoSqlVectorStore |
Microsoft.SemanticKernel.Connectors.AzureCosmosDBNoSQL | Collezione di Record AzureCosmosDBNoSQLVectorStore | 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 |
Tutti i nomi delle varie implementazioni supportate del kernel semantico di VectorStoreCollection
sono stati rinominati in nomi più brevi usando un modello coerente.
*VectorStoreRecordCollection
è ora *Collection
. Ad esempio PostgresVectorStoreRecordCollection
->PostgresCollection
.
Analogamente, anche tutte le classi di opzioni correlate sono cambiate.
*VectorStoreRecordCollectionOptions
è ora *CollectionOptions
. Ad esempio PostgresVectorStoreRecordCollectionOptions
->PostgresCollectionOptions
.
Rinominazioni di proprietà
Namespace | Classe | Il nome della proprietà precedente | Nuovo nome della proprietà |
---|---|---|---|
Microsoft.Extensions.VectorData | VectorStoreKeyAttribute | StoragePropertyName | NomeSpazioDiArchiviazione |
Microsoft.Extensions.VectorData | VectorStoreDataAttribute | StoragePropertyName | StorageName |
Microsoft.Extensions.VectorData | VectorStoreVectorAttribute | StoragePropertyName | StorageName |
Microsoft.Extensions.VectorData | VectorStoreKeyProperty | DataModelPropertyName | Nome |
Microsoft.Extensions.VectorData | VectorStoreKeyProperty | StoragePropertyName | StorageName |
Microsoft.Extensions.VectorData | VectorStoreKeyProperty | Tipo di proprietà | Tipo |
Microsoft.Extensions.VectorData | VectorStoreDataProperty | DataModelPropertyName | Nome |
Microsoft.Extensions.VectorData | VectorStoreDataProperty | StoragePropertyName | StorageName |
Microsoft.Extensions.VectorData | VectorStoreDataProperty | Tipo di proprietà | Tipo |
Microsoft.Extensions.VectorData | VectorStoreVectorProperty | DataModelPropertyName | Nome |
Microsoft.Extensions.VectorData | VectorStoreVectorProperty | StoragePropertyName | StorageName |
Microsoft.Extensions.VectorData | VectorStoreVectorProperty | Tipo di proprietà | Tipo |
Microsoft.Extensions.VectorData | DistanceFunction | Hamming | HammingDistance |
La proprietà VectorStoreRecordDefinition
nelle classi di opzioni di raccolta è stata rinominata in Definition
.
Metodo di Ridenominazione
Il CreateCollectionIfNotExistsAsync
metodo in Collection
è stato rinominato in EnsureCollectionExistsAsync
.
Il DeleteAsync
metodo in *Collection
e VectorStore
è stato rinominato in EnsureCollectionDeletedAsync
.
In questo modo si allinea più strettamente al comportamento del metodo , che eliminerà una raccolta, se esistente. Se la raccolta non esiste, non eseguirà alcuna operazione e avrà esito positivo.
Interfaccia per la classe astratta di base
Le interfacce seguenti sono state modificate in classi astratte di base.
Namespace | Nome interfaccia precedente | Nuovo nome tipo |
---|---|---|
Microsoft.Extensions.VectorData | IVectorStore | VectorStore |
Microsoft.Extensions.VectorData | IVectorStoreRecordCollection | VectorStoreCollection |
Se in precedenza si usava IVectorStore o IVectorStoreRecordCollection, è ora possibile usare VectorStore e VectorStoreCollection.
Unione di SearchAsync
e SearchEmbeddingAsync
I metodi SearchAsync
e SearchEmbeddingAsync
della raccolta sono stati fusi in un unico metodo: SearchAsync
.
In precedenza SearchAsync
è stato consentito eseguire ricerche vettoriali usando i dati di origine che verrebbero vettorializzati all'interno della raccolta o nel servizio, pur consentendo SearchEmbeddingAsync
di eseguire ricerche vettoriali fornendo un vettore.
Entrambi gli scenari sono ora supportati usando il singolo SearchAsync
metodo , che può accettare come input sia i dati di origine che i vettori.
Il meccanismo per determinare le operazioni da eseguire è il seguente:
- Se il valore specificato è uno dei tipi di vettore supportati per il connettore, la ricerca lo usa.
- Se il valore specificato non è uno dei tipi di vettore supportati, il connettore verifica se un oggetto
IEmbeddingGenerator
è registrato, con l'archivio vettoriale, che supporta la conversione dal valore fornito al tipo di vettore supportato dal database. - Infine, se non è disponibile nessun elemento compatibile
IEmbeddingGenerator
, il metodo solleverà un'eccezioneInvalidOperationException
.
Supporto per stringhe dizionario<, oggetti?> modelli che usano *DynamicCollection
e VectorStore.GetDynamicCollection
Per consentire il supporto per NativeOAT e Trimming, dove possibile e quando si usa il modello di dati dinamico, è stato modificato il modo in cui sono supportati i modelli di dati dinamici. In particolare, la modalità di richiesta o costruzione della raccolta è stata modificata.
In precedenza, quando si usa la stringa Dictionary<, l'oggetto?> come modello di dati, è possibile richiederlo usando VectorStore.GetCollection
, ma ora sarà necessario usare 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 e VectorStoreRecordCollection sono ora eliminabili
Sia VectorStore
che VectorStoreRecordCollection
sono ora eliminabili per garantire che i client di database posseduti da questi vengano eliminati correttamente.
Quando si trasferisce un client di database all'archivio vettoriale o alla raccolta, si può specificare se l'archivio vettoriale o la raccolta deve diventare proprietario del client e quindi smaltirlo quando viene smaltito l'archivio vettoriale o la raccolta.
Ad esempio, quando si passa un'origine di dati PostgresVectorStore
, passando true
come parametro per ownsDataSource
farà sì che l'oggetto PostgresVectorStore
gestisca l'eliminazione dell'origine dati quando essa viene disposta.
new PostgresVectorStore(dataSource, ownsDataSource: true, options);
CreateCollection
non è più supportato, usare EnsureCollectionExistsAsync
Il CreateCollection
metodo in Collection
è stato rimosso e ora è supportato solo EnsureCollectionExistsAsync
.
EnsureCollectionExistsAsync
è idempotente e creerà una raccolta se non esiste e non esegue alcuna operazione se esiste già.
VectorStoreOperationException
e VectorStoreRecordMappingException
non è più supportato, usare VectorStoreException
VectorStoreOperationException
ed VectorStoreRecordMappingException
è stato rimosso e ora è supportato solo VectorStoreException
.
Tutti gli errori di richiesta di database che generano un'eccezione specifica del database vengono incapsulati e generati come VectorStoreException
, consentendo l'utilizzo del codice per intercettare un singolo tipo di eccezione anziché uno diverso per ogni implementazione.
Non applicabile
Queste modifiche sono attualmente applicabili solo in C#
Presto disponibile
Queste modifiche sono attualmente applicabili solo in C#