Compartir a través de


Uso del conector volátil (en memoria) (versión preliminar)

Advertencia

VolatileVectorStore de C# está obsoleto y se ha reemplazado por un nuevo paquete. Consulte InMemory Connector (Conector inMemory).

Advertencia

La funcionalidad Almacén de vectores de kernel semántico está en versión preliminar y las mejoras que requieren cambios importantes pueden producirse en circunstancias limitadas antes de la versión.

Advertencia

La funcionalidad Almacén de vectores de kernel semántico está en versión preliminar y las mejoras que requieren cambios importantes pueden producirse en circunstancias limitadas antes de la versión.

Información general

El conector de almacén de vectores volátiles es una implementación del almacén de vectores proporcionada por el kernel semántico que no usa ninguna base de datos externa y almacena datos en memoria. Este almacén de vectores es útil para escenarios de creación de prototipos o en los que se requieren operaciones de alta velocidad en memoria.

El conector tiene las siguientes características.

Área de características Soporte técnico
La colección se asigna a Diccionario en memoria
Tipos de propiedades de clave admitidos Cualquier tipo que se pueda comparar
Tipos de propiedad de datos admitidos Cualquier tipo
Tipos de propiedades vectoriales admitidos ReadOnlyMemory<float>
Tipos de índice admitidos N/D
Funciones de distancia admitidas N/D
Admite varios vectores en un registro
¿Se admite IsFilterable?
¿Se admite IsFullTextSearchable?
¿Se admite StoragePropertyName? No, dado que el almacenamiento es volátil y la reutilización de datos no es posible, por lo tanto, la nomenclatura personalizada no es útil y no se admite.

Introducción

Agregue el paquete nuget Kernel Core semántico al proyecto.

dotnet add package Microsoft.SemanticKernel.Core

Puede agregar el almacén de vectores al contenedor de inserción de dependencias disponible en KernelBuilder o al IServiceCollection contenedor de inserción de dependencias mediante métodos de extensión proporcionados por kernel semántico.

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

Puede construir directamente una instancia de Almacén de vectores volátiles.

using Microsoft.SemanticKernel.Data;

var vectorStore = new VolatileVectorStore();

Es posible construir una referencia directa a una colección con nombre.

using Microsoft.SemanticKernel.Data;

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

Introducción

Instale el kernel semántico.

pip install semantic-kernel

A continuación, puede crear una instancia de almacén de vectores mediante la VolatileStore clase .


from semantic_kernel.connectors.memory.volatile import VolatileStore

vector_store = VolatileStore()

También puede crear una colección directamente.

from semantic_kernel.connectors.memory.volatile import VolatileCollection

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

Serialización

Dado que el conector volátil tiene un dict simple como mecanismo de almacenamiento interno, puede almacenar cualquier modelo de datos que se pueda serializar en un dict.

Para obtener más información sobre este concepto, consulte la documentación de serialización.

Introducción

Incluya la versión más reciente de la API de kernel semántico en el proyecto de Maven y agregue la siguiente dependencia a pom.xml:

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

A continuación, puede crear una instancia de almacén de vectores mediante la VolatileVectorStore clase .

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

También puede crear una colección directamente.

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