Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aviso
A funcionalidade In-Memory Vetor Store está em versão preliminar, e melhorias que exigem alterações significativas podem ainda ocorrer em circunstâncias limitadas antes do lançamento.
Aviso
A funcionalidade "Semantic Kernel Vector Store" está em pré-visualização, e melhorias que exigem alterações drásticas ainda podem ocorrer em circunstâncias limitadas antes do lançamento.
Aviso
A funcionalidade "Semantic Kernel Vector Store" está em pré-visualização, e melhorias que exigem alterações drásticas ainda podem ocorrer em circunstâncias limitadas antes do lançamento.
Descrição geral
O conector In-Memory Vetor Store é uma implementação do 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 |
---|---|
Mapeamento da coleção para | Dicionário em 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 |
|
Tipos de índice suportados | Apartamento |
Funções de distância suportadas |
|
Cláusulas de filtro suportadas |
|
Suporta vários vetores em um registro | Sim |
IsIndexed é suportado? | Sim |
"É suportado IsFullTextIndexed?" | Sim |
Está StorageName suportado? | Não, como o armazenamento é na memória e, portanto, a reutilização de dados não é possível, a nomenclatura personalizada não é aplicável. |
O HybridSearch é suportado? | Não |
Primeiros passos
Adicione o pacote nuget do Semantic Kernel Core ao seu projeto.
dotnet add package Microsoft.SemanticKernel.Connectors.InMemory --prerelease
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.Extensions.DependencyInjection;
using Microsoft.SemanticKernel;
// Using Kernel Builder.
var kernelBuilder = Kernel
.CreateBuilder();
kernelBuilder.Services
.AddInMemoryVectorStore();
using Microsoft.Extensions.DependencyInjection;
using Microsoft.SemanticKernel;
// Using IServiceCollection with ASP.NET Core.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddInMemoryVectorStore();
Você pode construir uma instância do InMemory Vetor Store diretamente.
using Microsoft.SemanticKernel.Connectors.InMemory;
var vectorStore = new InMemoryVectorStore();
É possível construir uma referência direta a uma coleção nomeada.
using Microsoft.SemanticKernel.Connectors.InMemory;
var collection = new InMemoryCollection<string, Hotel>("skhotels");
Descrição geral
O conector In-Memory Vetor Store é uma implementação do 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 |
---|---|
Mapeamento da coleção para | Dicionário em memória |
Tipos de propriedade de chave suportados | Qualquer um que tenha permissão para ser uma chave de dicionário, consulte a documentação do Python para obter detalhes aqui |
Tipos de propriedade de dados suportados | Qualquer tipo |
Tipos de propriedade vetorial suportados | lista[float | int] | matriz numpy |
Tipos de índice suportados | Apartamento |
Funções de distância suportadas |
|
Suporta vários vetores em um registro | Sim |
Está is_filterable suportado? | Sim |
A funcionalidade "is_full_text_searchable" é suportada? | Sim |
Primeiros passos
Adicione o pacote Semantic Kernel ao seu projeto.
pip install semantic-kernel
Você pode criar a loja e as coleções a partir daí, ou criar as coleções diretamente.
Nos trechos abaixo, supõe-se que você tenha uma classe de modelo de dados definida chamada 'DataModel'.
from semantic_kernel.connectors.in_memory import InMemoryVectorStore
vector_store = InMemoryVectorStore()
vector_collection = vector_store.get_collection(record_type=DataModel, collection_name="collection_name")
É possível construir uma referência direta a uma coleção nomeada.
from semantic_kernel.connectors.in_memory import InMemoryCollection
vector_collection = InMemoryCollection(record_type=DataModel, collection_name="collection_name")
Brevemente
Mais informações em breve.