Utilisation du connecteur Volatile (en mémoire) (préversion)
Avertissement
Le C# VolatileVectorStore est obsolète et a été remplacé par un nouveau package. Voir Le connecteur InMemory
Avertissement
La fonctionnalité de magasin de vecteurs du noyau sémantique est en préversion et des améliorations nécessitant des modifications cassants peuvent toujours se produire dans des circonstances limitées avant la mise en production.
Avertissement
La fonctionnalité de magasin de vecteurs du noyau sémantique est en préversion et des améliorations nécessitant des modifications cassants peuvent toujours se produire dans des circonstances limitées avant la mise en production.
Vue d’ensemble
Le connecteur de magasin de vecteurs volatiles est une implémentation de magasin de vecteurs fournie par le noyau sémantique qui n’utilise aucune base de données externe et stocke les données en mémoire. Ce magasin de vecteurs est utile pour les scénarios de prototypage ou pour les opérations en mémoire à haute vitesse requises.
Le connecteur présente les caractéristiques suivantes.
Zone Fonctionnalités | Support |
---|---|
Mappages de collection à | Dictionnaire en mémoire |
Types de propriétés de clé pris en charge | Tout type pouvant être comparé |
Types de propriétés de données pris en charge | Tout type |
Types de propriétés vectorielles pris en charge | Float ReadOnlyMemory<> |
Types d’index pris en charge | S/O |
Fonctions de distance prises en charge | S/O |
Prend en charge plusieurs vecteurs dans un enregistrement | Oui |
Est-il pris en charge ? | Oui |
IsFullTextSearchable pris en charge ? | Oui |
StoragePropertyName pris en charge ? | Non, étant donné que le stockage est volatile et que la réutilisation des données n’est donc pas possible, le nommage personnalisé n’est pas utile et n’est pas pris en charge. |
Mise en route
Ajoutez le package nuget noyau sémantique à votre projet.
dotnet add package Microsoft.SemanticKernel.Core
Vous pouvez ajouter le magasin de vecteurs au conteneur d’injection de dépendances disponible sur le KernelBuilder
conteneur ou au conteneur d’injection de dépendances à l’aide IServiceCollection
de méthodes d’extension fournies par le noyau sémantique.
using Microsoft.SemanticKernel;
// Using Kernel Builder.
var kernelBuilder = Kernel
.CreateBuilder()
.AddVolatileVectorStore();
using Microsoft.SemanticKernel;
// Using IServiceCollection with ASP.NET Core.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddVolatileVectorStore();
Vous pouvez construire une instance de magasin de vecteurs volatile directement.
using Microsoft.SemanticKernel.Data;
var vectorStore = new VolatileVectorStore();
Il est possible de construire une référence directe à une collection nommée.
using Microsoft.SemanticKernel.Data;
var collection = new VolatileVectorStoreRecordCollection<string, Hotel>("skhotels");
Mise en route
Installez le noyau sémantique.
pip install semantic-kernel
Vous pouvez ensuite créer une instance de magasin de vecteurs à l’aide de la VolatileStore
classe.
from semantic_kernel.connectors.memory.volatile import VolatileStore
vector_store = VolatileStore()
Vous pouvez également créer une collection directement.
from semantic_kernel.connectors.memory.volatile import VolatileCollection
collection = VolatileCollection(collection_name="skhotels", data_model_type=Hotel)
Sérialisation
Étant donné que le connecteur Volatile a une dictée simple en tant que mécanisme de stockage interne, il peut stocker n’importe quel modèle de données qui peut être sérialisé dans une dictée.
Pour plus d’informations sur ce concept, consultez la documentation de sérialisation.
Mise en route
Incluez la dernière version de l’API de noyau sémantique dans votre projet Maven, ajoutez la dépendance suivante à votre pom.xml
:
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
<version>[LATEST]</version>
</dependency>
Vous pouvez ensuite créer une instance de magasin de vecteurs à l’aide de la VolatileVectorStore
classe.
import com.microsoft.semantickernel.data.VolatileVectorStore;
import com.microsoft.semantickernel.data.VolatileVectorStoreRecordCollection;
import com.microsoft.semantickernel.data.VolatileVectorStoreRecordCollectionOptions;
public class Main {
public static void main(String[] args) {
// Build an Azure AI Search Vector Store
var vectorStore = new VolatileVectorStore();
}
}
Vous pouvez également créer une collection directement.
var collection = new VolatileVectorStoreRecordCollection<>("skhotels",
VolatileVectorStoreRecordCollectionOptions.<Hotel>builder()
.withRecordClass(Hotel.class)
.build());