Componente OpenAI Embeddings — sgcAI | eSeGeCe

OpenAI Embeddings

TsgcAIOpenAIEmbeddings es el lado de ingesta y consulta de la generación aumentada por recuperación. Divide un corpus en chunks, pide un vector de embedding para cada uno, los escribe en el almacén vectorial que le asignes y devuelve el texto guardado más próximo para cualquier consulta.

TsgcAIOpenAIEmbeddings

Generación de embeddings con un almacén intercambiable. Asigna un componente de base de datos vectorial a Database y todo el proceso de ingesta, troceado en chunks, embedding, agrupación en lotes y escritura, se ejecuta con una sola llamada.

Clase del componente

TsgcAIOpenAIEmbeddings

Propósito

Embeddings y consultas RAG

Plataformas

Win32 y Win64

sgcAI es autónomo. Este componente se incluye dentro de sgcAI junto con el runtime sgcWebSockets Core sobre el que está construido.

Indexa un corpus y luego consúltalo

Asigna un almacén vectorial, llama una vez a CreateEmbeddingsFromFile y después busca contexto para cada pregunta del usuario.

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?", "");

Propiedades y métodos principales

Los miembros que usarás más a menudo.

Database

Database acepta cualquier componente de almacén vectorial. Usa TsgcAIDatabaseVectorFile para un archivo local o TsgcAIDatabaseVectorPinecone para un índice gestionado. El código de ingesta no cambia.

EmbeddingsOptions

Model vale text-embedding-3-small por defecto. ChunkSize controla cómo se divide el corpus, WaitStoringData regula el ritmo de las escrituras en el almacén y User etiqueta las peticiones.

Ingesta

CreateEmbeddings indexa una cadena y CreateEmbeddingsFromFile indexa un archivo completo. Ambos abren un lote en el almacén, envían un vector por chunk y luego lo cierran.

Consulta

GetEmbedding genera el embedding de una consulta y devuelve el texto guardado más próximo, que es la cadena que pegas en el prompt como contexto.

Eventos de lote

OnCreateEmbeddingsStart informa del tamaño total, OnCreateEmbeddingsProgress informa de la posición y lleva un indicador de continuación para poder cancelar una ingesta larga, y OnCreateEmbeddingsStop cierra la ejecución.

Eventos por chunk

OnBeforeCreateEmbedding puede inspeccionar y rechazar una petición concreta, y OnAfterCreateEmbedding te entrega la petición y la respuesta, algo útil para auditar el gasto en tokens.

Especificaciones y referencias

Fuentes oficiales de los servicios y protocolos que utiliza este componente.

Sigue explorando

Ayuda en líneaReferencia completa de la API y guía de uso de los componentes sgcAI.
Todos los componentes sgcAIConsulta la matriz completa de características de los 15 componentes.
Descargar prueba gratuitaIndexa tus propios documentos y consúltalos sin conexión.
PreciosLicencias Single, Team y Site, código fuente completo.
La mejor opción: All-AccessTodos los productos de eSeGeCe, con Premium Support incluido, desde €1,059 al año.
Ver precios de All-Access

¿Listo para empezar?

Descarga la prueba gratuita y fundamenta un modelo de lenguaje en tus propios datos.