Usando o conector volátil (na memória) (versão prévia)
Aviso
O C# VolatileVectorStore está obsoleto e foi substituído por um novo pacote. Consulte Conector InMemory
Aviso
A funcionalidade do Repositório de Vetores do Kernel Semântico está em versão prévia e as melhorias que exigem alterações significativas ainda podem ocorrer em circunstâncias limitadas antes do lançamento.
Aviso
A funcionalidade do Repositório de Vetores do Kernel Semântico está em versão prévia e as melhorias que exigem alterações significativas ainda podem ocorrer em circunstâncias limitadas antes do lançamento.
Visão geral
O conector do Repositório de Vetores Voláteis é uma implementação do Repositório de Vetores fornecida pelo Kernel Semântico que não usa nenhum banco de dados externo e armazena dados na memória. Esse Repositório de Vetores é útil para cenários de prototipagem ou onde operações na memória de alta velocidade são necessárias.
O conector tem as seguintes características.
Área de recurso | Suporte |
---|---|
A coleção é mapeada para | Dicionário na memória |
Tipos de propriedade de chave com suporte | Qualquer tipo que possa ser comparado |
Tipos de propriedade de dados com suporte | Qualquer tipo |
Tipos de propriedade de vetor com suporte | Float ReadOnlyMemory<> |
Tipos de índice com suporte | N/D |
Funções de distância suportadas | N/D |
Suporta vários vetores em um registro | Sim |
IsFilterable suportado? | Sim |
IsFullTextSearchable suportado? | Sim |
StoragePropertyName com suporte? | 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 Núcleo Semântico do Kernel ao seu projeto.
dotnet add package Microsoft.SemanticKernel.Core
Você pode adicionar o repositório de vetores ao contêiner de injeção de dependência disponível no KernelBuilder
ou ao IServiceCollection
contêiner de 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 Repositório de Vetores Voláteis 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 dicionário simples como mecanismo de armazenamento interno, ele pode armazenar qualquer modelo de dados que possa ser serializado em um dicionário.
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());