Componente OpenAI Embeddings — sgcAI | eSeGeCe

OpenAI Embeddings

O TsgcAIOpenAIEmbeddings é o lado de ingestão e de busca da geração aumentada por recuperação. Ele divide um corpus em blocos, solicita um vetor de embedding para cada um, grava-os no vector store que você atribuir, e retorna o texto armazenado mais próximo para qualquer consulta.

TsgcAIOpenAIEmbeddings

Geração de embeddings com um armazenamento plugável. Atribua um componente de banco de dados vetorial a Database e todo o pipeline de ingestão, divisão em blocos, embedding, agrupamento em lotes e gravação, roda a partir de uma única chamada.

Classe do componente

TsgcAIOpenAIEmbeddings

Finalidade

Embeddings e busca RAG

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.

Indexe um corpus e depois consulte-o

Atribua um vector store, chame CreateEmbeddingsFromFile uma vez e então busque o contexto para cada pergunta do usuário.

uses
  sgcAI, sgcAI_OpenAI_Embeddings, sgcAI_DB_Vector_File;

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

  oEmbeddings := TsgcAIOpenAIEmbeddings.Create(nil);
  oEmbeddings.OpenAIOptions.ApiKey := 'sk-...';
  oEmbeddings.EmbeddingsOptions.Model     := 'text-embedding-3-small';
  oEmbeddings.EmbeddingsOptions.ChunkSize := 4096;
  oEmbeddings.Database := oDB;

  oEmbeddings.OnCreateEmbeddingsProgress := EmbeddingsProgress;

  // One pass over the corpus, done once.
  oEmbeddings.CreateEmbeddingsFromFile('manual.txt');

  // Then, per question, retrieve the nearest chunk.
  vContext := oEmbeddings.GetEmbedding('How do I reset the device?', '');
end;

procedure TForm1.EmbeddingsProgress(Sender: TObject;
  aPosition: Int64; var aContinue: Boolean);
begin
  ProgressBar1.Position := aPosition;
  aContinue := not CancelRequested;
end;
// includes: sgcAI.hpp, sgcAI_OpenAI_Embeddings.hpp, sgcAI_DB_Vector_File.hpp

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

TsgcAIOpenAIEmbeddings *oEmbeddings = new TsgcAIOpenAIEmbeddings(NULL);
oEmbeddings->OpenAIOptions->ApiKey = "sk-...";
oEmbeddings->Database = oDB;

oEmbeddings->CreateEmbeddingsFromFile("manual.txt");
String vContext = oEmbeddings->GetEmbedding("How do I reset the device?", "");

Principais propriedades & métodos

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

Database

Database aceita qualquer componente de vector store. Use TsgcAIDatabaseVectorFile para um arquivo local ou TsgcAIDatabaseVectorPinecone para um índice gerenciado. O código de ingestão não muda.

EmbeddingsOptions

Model usa text-embedding-3-small por padrão. ChunkSize controla como o corpus é dividido, WaitStoringData ajusta o ritmo das gravações no armazenamento, e User marca as requisições.

Ingestão

CreateEmbeddings indexa uma string e CreateEmbeddingsFromFile indexa um arquivo inteiro. Ambos abrem um lote no armazenamento, enviam um vetor por bloco e depois o fecham.

Consulta

GetEmbedding gera o embedding de uma consulta e retorna o texto armazenado mais próximo, que é a string que você cola no prompt como contexto.

Eventos de lote

OnCreateEmbeddingsStart informa o tamanho total, OnCreateEmbeddingsProgress informa a posição e leva um sinalizador de continuação para que uma ingestão longa possa ser cancelada, e OnCreateEmbeddingsStop encerra a execução.

Eventos por bloco

OnBeforeCreateEmbedding pode inspecionar e rejeitar uma requisição individual, e OnAfterCreateEmbedding entrega a você a requisição e a resposta, o que é útil para auditar o gasto de tokens.

Especificações & referências

Fontes oficiais dos serviços e protocolos que este componente usa.

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 gratuitaIndexe seus próprios documentos e consulte-os offline.
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 fundamente um modelo de linguagem nos seus próprios dados.