Dela via


Använda den flyktiga anslutningsappen (minnesintern) (förhandsversion)

Varning

C# VolatileVectorStore är föråldrad och har ersatts med ett nytt paket. Se InMemory Connector

Varning

Funktionen Semantic Kernel Vector Store är i förhandsversion, och förbättringar som kräver icke-bakåtkompatibla ändringar kan fortfarande ske under begränsade omständigheter före lanseringen.

Varning

Funktionen Semantic Kernel Vector Store är i förhandsversion, och förbättringar som kräver icke-bakåtkompatibla ändringar kan fortfarande ske under begränsade omständigheter före lanseringen.

Översikt

Anslutningsappen för flyktiga vektorlager är en Vector Store-implementering som tillhandahålls av semantisk kernel och som inte använder någon extern databas och lagrar data i minnet. Det här vektorarkivet är användbart för prototypscenarier eller där snabba minnesinterna åtgärder krävs.

Anslutningsappen har följande egenskaper.

Funktionsområde Support
Samlingskartor till Minnesintern ordlista
Nyckelegenskapstyper som stöds Alla typer som kan jämföras
Dataegenskapstyper som stöds Alla typer
Egenskapstyper för vektorer som stöds ReadOnlyMemory-flyttal<>
Indextyper som stöds Ej tillämpligt
Avståndsfunktioner som stöds Ej tillämpligt
Stöder flera vektorer i en post Ja
Stöds IsFilterable? Ja
Stöds IsFullTextSearchable? Ja
Stöds StoragePropertyName? Nej, eftersom lagring är instabilt och återanvändning av data därför inte är möjligt är anpassad namngivning inte användbar och stöds inte.

Komma igång

Lägg till nuget-paketet Semantic Kernel Core i projektet.

dotnet add package Microsoft.SemanticKernel.Core

Du kan lägga till vektorlagret i den beroendeinmatningscontainer som är tillgänglig i containern KernelBuilder eller till containern för IServiceCollection beroendeinmatning med hjälp av tilläggsmetoder som tillhandahålls av semantisk 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();

Du kan skapa en Instans av flyktiga vektorlager direkt.

using Microsoft.SemanticKernel.Data;

var vectorStore = new VolatileVectorStore();

Det går att skapa en direktreferens till en namngiven samling.

using Microsoft.SemanticKernel.Data;

var collection = new VolatileVectorStoreRecordCollection<string, Hotel>("skhotels");

Komma igång

Installera semantisk kernel.

pip install semantic-kernel

Du kan sedan skapa en vektorlagringsinstans med hjälp av VolatileStore klassen .


from semantic_kernel.connectors.memory.volatile import VolatileStore

vector_store = VolatileStore()

Du kan också skapa en samling direkt.

from semantic_kernel.connectors.memory.volatile import VolatileCollection

collection = VolatileCollection(collection_name="skhotels", data_model_type=Hotel)

Serialisering

Eftersom Den flyktiga anslutningsappen har en enkel diktering som intern lagringsmekanism kan den lagra alla datamodeller som kan serialiseras till en diktamen.

Mer information om det här konceptet finns i serialiseringsdokumentationen.

Komma igång

Inkludera den senaste versionen av Semantic Kernel-API:et i ditt Maven-projekt, lägg till följande beroende i :pom.xml

<dependency>
    <groupId>com.microsoft.semantic-kernel</groupId>
    <artifactId>semantickernel-api</artifactId>
    <version>[LATEST]</version>
</dependency>

Du kan sedan skapa en vektorlagringsinstans med hjälp av VolatileVectorStore klassen .

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();
    }
}

Du kan också skapa en samling direkt.

var collection = new VolatileVectorStoreRecordCollection<>("skhotels",
        VolatileVectorStoreRecordCollectionOptions.<Hotel>builder()
                .withRecordClass(Hotel.class)
                .build());