Partilhar via


Usando o conector volátil (na memória) (visualização)

Aviso

O C# VolatileVectorStore está obsoleto e foi substituído por um novo pacote. Consulte InMemory Connector

Aviso

A funcionalidade Semantic Kernel Vetor Store está em pré-visualização, e melhorias que exigem alterações de quebra ainda podem ocorrer em circunstâncias limitadas antes do lançamento.

Aviso

A funcionalidade Semantic Kernel Vetor Store está em pré-visualização, e melhorias que exigem alterações de quebra ainda podem ocorrer em circunstâncias limitadas antes do lançamento.

Descrição geral

O conector Volatile Vetor Store é uma implementação de Vetor Store fornecida pelo Semantic Kernel que não usa nenhum banco de dados externo e armazena dados na memória. Este Vetor Store é útil para cenários de prototipagem ou onde são necessárias operações de alta velocidade na memória.

O conector tem as seguintes características.

Área de funcionalidades Suporte
Mapas da coleção para Dicionário na memória
Tipos de propriedade de chave suportados Qualquer tipo que possa ser comparado
Tipos de propriedade de dados suportados Qualquer tipo
Tipos de propriedade vetorial suportados Float ReadOnlyMemory<>
Tipos de índice suportados N/A
Funções de distância suportadas N/A
Suporta vários vetores em um registro Sim
IsFilterable suportado? Sim
IsFullTextSearchable suportado? Sim
StoragePropertyName suportado? Não, como o armazenamento é volátil e, portanto, a reutilização de dados não é possível, a nomenclatura personalizada não é útil e não é suportada.

Introdução

Adicione o pacote nuget do Semantic Kernel Core ao seu projeto.

dotnet add package Microsoft.SemanticKernel.Core

Você pode adicionar o armazenamento vetorial ao contêiner de injeção de dependência disponível no KernelBuilder ou ao contêiner de IServiceCollection injeção de dependência usando métodos de extensão fornecidos pelo Semantic 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();

Você pode construir uma instância do Volatile Vetor Store diretamente.

using Microsoft.SemanticKernel.Data;

var vectorStore = new VolatileVectorStore();

É possível construir uma referência direta a uma coleção nomeada.

using Microsoft.SemanticKernel.Data;

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

Introdução

Instale o kernel semântico.

pip install semantic-kernel

Em seguida, você pode criar uma instância de armazenamento de vetores usando a VolatileStore classe.


from semantic_kernel.connectors.memory.volatile import VolatileStore

vector_store = VolatileStore()

Você também pode criar uma coleção diretamente.

from semantic_kernel.connectors.memory.volatile import VolatileCollection

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

Serialização

Como o conector volátil tem um ditado simples como mecanismo de armazenamento interno, ele pode armazenar qualquer modelo de dados que possa ser serializado para um ditado.

Para obter mais detalhes sobre esse conceito, consulte a documentação de serialização.

Introdução

Inclua a versão mais recente da API do Kernel Semântico em seu projeto Maven, adicione a seguinte dependência ao seu pom.xml:

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

Em seguida, você pode criar uma instância de armazenamento de vetores usando a VolatileVectorStore classe.

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

Você também pode criar uma coleção diretamente.

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