Componente de banco de dados vetorial em arquivo — sgcAI | eSeGeCe

Banco de dados vetorial (arquivo)

O TsgcAIDatabaseVectorFile armazena vetores de embeddings e seus textos de origem em dois arquivos locais. Atribua-o a um componente de embeddings e você tem um corpus pesquisável que acompanha seu aplicativo, sem servidor e sem custo por consulta.

TsgcAIDatabaseVectorFile

Um armazenamento vetorial sem dependências. Os vetores e seus textos de origem ficam em memória, são gravados em disco quando um lote é fechado, e são percorridos em busca da correspondência mais próxima na consulta.

Classe do componente

TsgcAIDatabaseVectorFile

Finalidade

Armazenamento vetorial local

Plataformas

Win32 e Win64

O sgcAI é autossuficiente. Este componente vem dentro do sgcAI junto com o runtime sgcWebSockets Core sobre o qual foi construído, então não há licença base para comprar.

Um corpus pesquisável em dois arquivos

Aponte o componente para um arquivo de entrada e um arquivo de vetores, atribua-o a um componente de embeddings, e ele faz o resto.

uses
  sgcAI, sgcAI_DB_Vector_File, sgcAI_OpenAI_Embeddings;

var
  oDB: TsgcAIDatabaseVectorFile;
  oEmbeddings: TsgcAIOpenAIEmbeddings;
begin
  oDB := TsgcAIDatabaseVectorFile.Create(nil);
  oDB.VectorFileOptions.InputFilename  := 'corpus.sgcif';
  oDB.VectorFileOptions.VectorFilename := 'corpus.sgcvf';

  oEmbeddings := TsgcAIOpenAIEmbeddings.Create(nil);
  oEmbeddings.OpenAIOptions.ApiKey := 'sk-...';
  oEmbeddings.Database := oDB;
  oEmbeddings.CreateEmbeddingsFromFile('manual.txt');

  // The store can also be driven directly.
  oDB.BeginAddData;
  oDB.AddData('Reset procedure: hold the button for 10 seconds.', vVector);
  oDB.EndAddData;

  Memo1.Text := oDB.QueryData(vQueryVector);
end;
// includes: sgcAI.hpp, sgcAI_DB_Vector_File.hpp

TsgcAIDatabaseVectorFile *oDB = new TsgcAIDatabaseVectorFile(NULL);
oDB->VectorFileOptions->InputFilename  = "corpus.sgcif";
oDB->VectorFileOptions->VectorFilename = "corpus.sgcvf";

oDB->BeginAddData();
oDB->AddData("Reset procedure: hold the button for 10 seconds.", vVector);
oDB->EndAddData();

String vBest = oDB->QueryData(vQueryVector);

Principais propriedades e métodos

Os membros que você usa com mais frequência.

VectorFileOptions

InputFilename guarda os textos de origem indexados por id e VectorFilename guarda os vetores correspondentes. Distribua os dois arquivos com seu aplicativo e o corpus fica disponível offline.

Ingestão

BeginAddData abre um lote, AddData adiciona um texto e seu vetor, e EndAddData fecha o lote e grava os dois arquivos em disco.

Consulta

QueryData recebe um vetor de consulta, percorre os vetores armazenados em busca da correspondência mais próxima e retorna o texto original por trás dela.

Controle de ids

OnBeginAddData permite definir o primeiro id e o rótulo de id de um lote, então uma segunda ingestão pode acrescentar a um corpus existente em vez de sobrescrevê-lo.

Quando usar

Ideal para corpora que cabem confortavelmente na memória e para aplicativos desktop que precisam funcionar sem conexão de rede. Para índices grandes ou compartilhados, use o armazenamento Pinecone.

Intercambiável

Ele implementa a mesma interface que TsgcAIDatabaseVectorPinecone, então migrar de arquivos locais para um índice gerenciado é uma troca de componente, não uma mudança de código.

Continue explorando

Ajuda onlineReferência completa da API e guia de uso dos componentes sgcAI.
Todos os componentes sgcAIExplore a matriz de recursos completa dos 15 componentes.
Baixar avaliação gratuitaMonte um corpus pesquisável offline em um aplicativo desktop.
PreçosLicenças Single, Team e Site, código-fonte completo, sem necessidade de produto base.
Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Pronto para começar?

Baixe a versão de avaliação gratuita e distribua uma base de conhecimento pesquisável dentro do seu executável.