Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Varning
Funktionerna i Sqlite 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 innebär 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 innebär icke-bakåtkompatibla ändringar kan fortfarande ske under begränsade omständigheter före lanseringen.
Översikt
SQLite Vector Store-anslutningsappen kan användas för att komma åt och hantera data i SQLite. Anslutningsappen har följande egenskaper.
Funktionsområde | Stöd |
---|---|
Samlingskartor till | SQLite-tabell |
Nyckelegenskapstyper som stöds |
|
Dataegenskapstyper som stöds |
|
Egenskapstyper för vektorer som stöds |
|
Indextyper som stöds | Ej tillämpligt |
Avståndsfunktioner som stöds |
|
Filtersatser som stöds |
|
Stöder flera vektorer i en postering | Ja |
Stöds IsIndexed-funktionen? | Nej |
Stöds fulltextindexerad? | Nej |
Stöds StorageName? | Ja |
Stöds HybridSearch? | Nej |
Komma igång
Lägg till NuGet-paketet för SQLite Vector Store-anslutningsappen i projektet.
dotnet add package Microsoft.SemanticKernel.Connectors.SqliteVec --prerelease
Du kan lägga till vektorlagret i containern IServiceCollection
för beroendeinmatning med hjälp av tilläggsmetoder som tillhandahålls av semantisk kernel.
using Microsoft.Extensions.DependencyInjection;
// Using IServiceCollection with ASP.NET Core.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSqliteVectorStore(_ => "Data Source=:memory:");
using Microsoft.Extensions.DependencyInjection;
using Microsoft.SemanticKernel;
// Using IServiceCollection with ASP.NET Core.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSqliteVectorStore(_ => "Data Source=:memory:")
Du kan skapa en SQLite Vector Store-instans direkt.
using Microsoft.SemanticKernel.Connectors.SqliteVec;
var vectorStore = new SqliteVectorStore("Data Source=:memory:");
Det går att skapa en direktreferens till en namngiven samling.
using Microsoft.SemanticKernel.Connectors.SqliteVec;
var collection = new SqliteCollection<string, Hotel>("Data Source=:memory:", "skhotels");
Mappning av data
SQLite Vector Store-anslutningsappen tillhandahåller en standardmappare vid mappning från datamodellen till lagring. Den här mapparen utför en direkt konvertering av listan med egenskaper i datamodellen till kolumnerna i SQLite.
Med vektorsökningstillägget lagras vektorer i virtuella tabeller, separat från nyckel- och dataegenskaper.
Som standard använder den virtuella tabellen med vektorer samma namn som tabellen med nyckel- och dataegenskaper, men med ett vec_
prefix. Om samlingsnamnet i SqliteCollection
till exempel är skhotels
blir namnet på den virtuella tabellen med vektorer vec_skhotels
. Det går att åsidosätta det virtuella tabellnamnet med hjälp av SqliteVectorStoreOptions.VectorVirtualTableName
- eller SqliteCollectionOptions<TRecord>.VectorVirtualTableName
-egenskaperna.
Åsidosättning av egenskapsnamn
Du kan ange åsidosättningsegenskapsnamn som ska användas i lagring som skiljer sig från egenskapsnamnen i datamodellen.
Åsidosättningen StorageName
av egenskapsnamnet görs genom att alternativet anges via egenskapsattributen för datamodellen eller postdefinitionen.
Här är ett exempel på en datamodell med StorageName
angivna attribut och hur den representeras i ett SQLite-kommando.
using Microsoft.Extensions.VectorData;
public class Hotel
{
[VectorStoreKey]
public ulong HotelId { get; set; }
[VectorStoreData(StorageName = "hotel_name")]
public string? HotelName { get; set; }
[VectorStoreData(StorageName = "hotel_description")]
public string? Description { get; set; }
[VectorStoreVector(Dimensions: 4, DistanceFunction = DistanceFunction.CosineDistance)]
public ReadOnlyMemory<float>? DescriptionEmbedding { get; set; }
}
CREATE TABLE Hotels (
HotelId INTEGER PRIMARY KEY,
hotel_name TEXT,
hotel_description TEXT
);
CREATE VIRTUAL TABLE vec_Hotels (
HotelId INTEGER PRIMARY KEY,
DescriptionEmbedding FLOAT[4] distance_metric=cosine
);
Kommer snart
Mer information kommer snart.
JDBC
JDBC-anslutningsappen kan användas för att ansluta till SQLite.