Udostępnij za pośrednictwem


Używanie łącznika Volatile (w pamięci) (wersja zapoznawcza)

Ostrzeżenie

C# VolatileVectorStore jest przestarzały i został zastąpiony nowym pakietem. Zobacz Łącznik InMemory

Ostrzeżenie

Funkcja semantycznego magazynu wektorów jądra jest dostępna w wersji zapoznawczej, a ulepszenia wymagające zmian powodujących niezgodność mogą nadal występować w ograniczonych okolicznościach przed wydaniem.

Ostrzeżenie

Funkcja semantycznego magazynu wektorów jądra jest dostępna w wersji zapoznawczej, a ulepszenia wymagające zmian powodujących niezgodność mogą nadal występować w ograniczonych okolicznościach przed wydaniem.

Omówienie

Łącznik Volatile Vector Store to implementacja magazynu wektorów zapewniana przez jądro semantyczne, które nie używa zewnętrznej bazy danych i przechowuje dane w pamięci. Ten magazyn wektorów jest przydatny w przypadku scenariuszy tworzenia prototypów lub gdy wymagane są szybkie operacje w pamięci.

Łącznik ma następujące cechy.

Obszar funkcji Pomoc techniczna
Mapowania kolekcji na Słownik w pamięci
Obsługiwane typy właściwości kluczy Dowolny typ, który można porównać
Obsługiwane typy właściwości danych Dowolny typ
Obsługiwane typy właściwości wektorów ReadOnlyMemory<float>
Obsługiwane typy indeksów Nie dotyczy
Obsługiwane funkcje odległości Nie dotyczy
Obsługuje wiele wektorów w rekordzie Tak
Czy filtrowanie jest obsługiwane? Tak
Czy jest obsługiwany element IsFullTextSearchable? Tak
Obsługiwana nazwa_właściwości_magazynu? Nie, ponieważ magazyn jest niestabilny, a ponowne użycie danych nie jest możliwe, niestandardowe nazewnictwo nie jest przydatne i nie jest obsługiwane.

Wprowadzenie

Dodaj pakiet nuget jądra semantycznego core do projektu.

dotnet add package Microsoft.SemanticKernel.Core

Magazyn wektorów można dodać do kontenera iniekcji zależności dostępnego w KernelBuilder kontenerze iniekcji zależności lub IServiceCollection przy użyciu metod rozszerzeń udostępnianych przez jądro semantyczne.

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

Wystąpienie magazynu wektorów lotnych można skonstruować bezpośrednio.

using Microsoft.SemanticKernel.Data;

var vectorStore = new VolatileVectorStore();

Istnieje możliwość utworzenia bezpośredniego odwołania do nazwanej kolekcji.

using Microsoft.SemanticKernel.Data;

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

Wprowadzenie

Zainstaluj jądro semantyczne.

pip install semantic-kernel

Następnie można utworzyć wystąpienie magazynu wektorów VolatileStore przy użyciu klasy .


from semantic_kernel.connectors.memory.volatile import VolatileStore

vector_store = VolatileStore()

Możesz również utworzyć kolekcję bezpośrednio.

from semantic_kernel.connectors.memory.volatile import VolatileCollection

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

Serializacja

Ponieważ łącznik Volatile ma prosty dykt jako mechanizm magazynu wewnętrznego, może przechowywać dowolny model danych, który można serializować do dyktowania.

Aby uzyskać więcej informacji na temat tej koncepcji, zobacz dokumentację serializacji.

Wprowadzenie

Dołącz najnowszą wersję interfejsu API jądra semantycznego w projekcie Maven, dodaj następującą zależność do elementu pom.xml:

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

Następnie można utworzyć wystąpienie magazynu wektorów VolatileVectorStore przy użyciu klasy .

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

Możesz również utworzyć kolekcję bezpośrednio.

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