De vluchtige connector (in-memory) gebruiken (preview)
Waarschuwing
De C# VolatileVectorStore is verouderd en is vervangen door een nieuw pakket. Zie InMemory-connector
Waarschuwing
De Semantische Kernel Vector Store-functionaliteit is in preview en verbeteringen waarvoor wijzigingen die fouten veroorzaken, kunnen nog steeds in beperkte omstandigheden optreden voordat ze worden uitgebracht.
Waarschuwing
De Semantische Kernel Vector Store-functionaliteit is in preview en verbeteringen waarvoor wijzigingen die fouten veroorzaken, kunnen nog steeds in beperkte omstandigheden optreden voordat ze worden uitgebracht.
Overzicht
De Volatile Vector Store-connector is een Vector Store-implementatie die wordt geleverd door Semantische kernel die geen externe database gebruikt en gegevens in het geheugen opslaat. Deze Vector Store is handig voor het maken van prototypen van scenario's of waar snelle in-memory bewerkingen vereist zijn.
De verbindingslijn heeft de volgende kenmerken.
Functiegebied | Ondersteuning |
---|---|
Verzamelingstoewijzingen aan | Woordenlijst in het geheugen |
Ondersteunde sleuteleigenschapstypen | Elk type dat kan worden vergeleken |
Ondersteunde gegevenseigenschapstypen | Elk type |
Ondersteunde vectoreigenschappentypen | ReadOnlyMemory<float> |
Ondersteunde indextypen | N.v.t. |
Ondersteunde afstandsfuncties | N.v.t. |
Ondersteunt meerdere vectoren in een record | Ja |
Wordt Filterable ondersteund? | Ja |
WordtFullTextSearchable ondersteund? | Ja |
Ondersteunde StoragePropertyName? | Nee, omdat opslag vluchtig is en gegevens hergebruiken daarom niet mogelijk is, is aangepaste naamgeving niet nuttig en wordt niet ondersteund. |
Aan de slag
Voeg het nuget-pakket Semantic Kernel Core toe aan uw project.
dotnet add package Microsoft.SemanticKernel.Core
U kunt het vectorarchief toevoegen aan de container voor afhankelijkheidsinjectie die beschikbaar is op of KernelBuilder
aan de IServiceCollection
container voor afhankelijkheidsinjectie met behulp van extensiemethoden die worden geleverd door Semantische kernel.
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();
U kunt rechtstreeks een Volatile Vector Store-exemplaar maken.
using Microsoft.SemanticKernel.Data;
var vectorStore = new VolatileVectorStore();
Het is mogelijk om een directe verwijzing naar een benoemde verzameling te maken.
using Microsoft.SemanticKernel.Data;
var collection = new VolatileVectorStoreRecordCollection<string, Hotel>("skhotels");
Aan de slag
Installeer semantische kernel.
pip install semantic-kernel
Vervolgens kunt u een vector store-exemplaar maken met behulp van de VolatileStore
klasse.
from semantic_kernel.connectors.memory.volatile import VolatileStore
vector_store = VolatileStore()
U kunt ook rechtstreeks een verzameling maken.
from semantic_kernel.connectors.memory.volatile import VolatileCollection
collection = VolatileCollection(collection_name="skhotels", data_model_type=Hotel)
Serialisatie
Omdat de Vluchtige connector een eenvoudige dict heeft als het interne opslagmechanisme, kan elk gegevensmodel worden opgeslagen dat kan worden geserialiseerd naar een dict.
Zie de serialisatiedocumentatie voor meer informatie over dit concept.
Aan de slag
Voeg de nieuwste versie van de Semantische Kernel-API toe aan uw Maven-project en voeg de volgende afhankelijkheid toe aan uw pom.xml
:
<dependency>
<groupId>com.microsoft.semantic-kernel</groupId>
<artifactId>semantickernel-api</artifactId>
<version>[LATEST]</version>
</dependency>
Vervolgens kunt u een vector store-exemplaar maken met behulp van de VolatileVectorStore
klasse.
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();
}
}
U kunt ook rechtstreeks een verzameling maken.
var collection = new VolatileVectorStoreRecordCollection<>("skhotels",
VolatileVectorStoreRecordCollectionOptions.<Hotel>builder()
.withRecordClass(Hotel.class)
.build());