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