Sdílet prostřednictvím


Použití konektoru Volatile (In-Memory) (Preview)

Upozorňující

C# VolatileVectorStore je zastaralý a byl nahrazen novým balíčkem. Viz Konektor InMemory

Upozorňující

Funkce sémantického úložiště vektorů jádra je ve verzi Preview a vylepšení, která vyžadují zásadní změny, se můžou vyskytovat za omezených okolností před vydáním.

Upozorňující

Funkce sémantického úložiště vektorů jádra je ve verzi Preview a vylepšení, která vyžadují zásadní změny, se můžou vyskytovat za omezených okolností před vydáním.

Přehled

Konektor Volatile Vector Store je implementace vektorového úložiště, kterou poskytuje sémantické jádro, které nepoužívá žádnou externí databázi a ukládá data do paměti. Toto úložiště vektorů je užitečné pro scénáře vytváření prototypů nebo pro vysokorychlostní operace v paměti.

Konektor má následující charakteristiky.

Oblast funkcí Technická podpora
Kolekce map na Slovník v paměti
Podporované typy vlastností klíče Libovolný typ, který lze porovnat
Podporované typy datových vlastností Libovolný typ
Podporované typy vektorových vlastností ReadOnlyMemory<float>
Podporované typy indexů
Podporované funkce vzdálenosti
Podporuje více vektorů v záznamu. Ano
Je podporováno Filtrování? Ano
Podporuje se IsFullTextSearchable? Ano
StoragePropertyName se podporuje? Ne, protože úložiště je nestálé a opakované použití dat proto není možné, vlastní pojmenování není užitečné a nepodporuje se.

Začínáme

Přidejte do projektu balíček NuGet Jádra Semantic Core.

dotnet add package Microsoft.SemanticKernel.Core

Vektorové úložiště můžete přidat do kontejneru injektáže závislostí dostupného IServiceCollection v KernelBuilder kontejneru injektáže závislostí nebo do kontejneru injektáže závislostí pomocí rozšiřujících metod poskytovaných sémantickým jádrem.

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

Instanci Volatile Vector Store můžete vytvořit přímo.

using Microsoft.SemanticKernel.Data;

var vectorStore = new VolatileVectorStore();

Je možné vytvořit přímý odkaz na pojmenovanou kolekci.

using Microsoft.SemanticKernel.Data;

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

Začínáme

Nainstalujte sémantické jádro.

pip install semantic-kernel

Pak můžete vytvořit instanci vektorového úložiště pomocí VolatileStore třídy.


from semantic_kernel.connectors.memory.volatile import VolatileStore

vector_store = VolatileStore()

Kolekci můžete vytvořit také přímo.

from semantic_kernel.connectors.memory.volatile import VolatileCollection

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

Serializace

Vzhledem k tomu, že konektor Volatile má jednoduchý dikt jako interní mechanismus úložiště, může ukládat jakýkoli datový model, který lze serializovat do diktování.

Další podrobnosti o tomto konceptu najdete v dokumentaci k serializaci.

Začínáme

Přidejte do projektu Maven nejnovější verzi rozhraní API sémantického jádra a přidejte do svého pom.xmlprojektu následující závislost:

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

Pak můžete vytvořit instanci vektorového úložiště pomocí VolatileVectorStore třídy.

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

Kolekci můžete vytvořit také přímo.

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