OpenAI Embeddings-component — sgcAI | eSeGeCe

OpenAI Embeddings

TsgcAIOpenAIEmbeddings verzorgt het inlezen en opzoeken bij retrieval augmented generation. Het splitst een corpus in chunks, vraagt voor elk daarvan een embeddingvector op, schrijft die weg naar de vector store die je toewijst en geeft bij elke zoekvraag de dichtstbijzijnde opgeslagen tekst terug.

TsgcAIOpenAIEmbeddings

Embeddings genereren met een verwisselbare opslag. Wijs een vectordatabasecomponent toe aan Database en de hele inleespijplijn, chunken, embedden, batchen en wegschrijven, loopt vanuit één aanroep.

Componentklasse

TsgcAIOpenAIEmbeddings

Doel

Embeddings en RAG-opzoeken

Platforms

Win32 en Win64

sgcAI is zelfstandig. Dit component zit in sgcAI, samen met de sgcWebSockets Core runtime waarop het gebouwd is, dus je hoeft geen basislicentie te kopen.

Indexeer een corpus en bevraag het

Wijs een vector store toe, roep CreateEmbeddingsFromFile één keer aan en zoek daarna bij elke vraag van de gebruiker de context op.

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

Belangrijkste eigenschappen & methoden

De leden die je het vaakst gebruikt.

Database

Database accepteert elk vector store-component. Gebruik TsgcAIDatabaseVectorFile voor een lokaal bestand of TsgcAIDatabaseVectorPinecone voor een beheerde index. De inleescode blijft gelijk.

EmbeddingsOptions

Model staat standaard op text-embedding-3-small. ChunkSize bepaalt hoe het corpus wordt gesplitst, WaitStoringData doseert het schrijven naar de opslag en User voorziet de verzoeken van een label.

Inlezen

CreateEmbeddings indexeert een string en CreateEmbeddingsFromFile indexeert een heel bestand. Beide openen een batch op de opslag, sturen één vector per chunk en sluiten hem daarna weer.

Bevragen

GetEmbedding embedt een zoekvraag en geeft de dichtstbijzijnde opgeslagen tekst terug, precies de string die je als context in de prompt plakt.

Batchgebeurtenissen

OnCreateEmbeddingsStart meldt de totale omvang, OnCreateEmbeddingsProgress meldt de positie en draagt een continue-vlag mee zodat je een lange inleesronde kunt annuleren, en OnCreateEmbeddingsStop sluit de run af.

Gebeurtenissen per chunk

OnBeforeCreateEmbedding kan een afzonderlijk verzoek bekijken en weigeren, en OnAfterCreateEmbedding geeft je het verzoek en het antwoord, handig om het tokenverbruik te controleren.

Specificaties & referenties

Gezaghebbende bronnen voor de diensten en protocollen die dit component gebruikt.

Blijf ontdekken

Online helpVolledige API-referentie en gebruiksgids voor de sgcAI-componenten.
Alle sgcAI-componentenBekijk de volledige functiematrix van alle 15 componenten.
Download de gratis proefversieIndexeer je eigen documenten en bevraag ze offline.
PrijzenSingle-, Team- en Site-licenties, volledige broncode, geen basisproduct vereist.
De beste deal: All-AccessElk eSeGeCe-product, inclusief Premium-ondersteuning, vanaf €1,059 per jaar.
Bekijk de All-Access-prijzen

Klaar om aan de slag te gaan?

Download de gratis proefversie en baseer een taalmodel op je eigen data.