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, así que no hay ninguna licencia base que comprar.

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, sin producto base necesario.
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.