OpenAI-Embeddings-Komponente — sgcAI | eSeGeCe

OpenAI Embeddings

TsgcAIOpenAIEmbeddings ist die Ingest- und Abfrageseite von Retrieval Augmented Generation. Die Komponente teilt einen Korpus in Chunks auf, fordert für jeden davon einen Embedding-Vektor an, schreibt sie in den Vektorspeicher, den du zuweist, und liefert zu jeder Abfrage den nächstgelegenen gespeicherten Text zurück.

TsgcAIOpenAIEmbeddings

Embeddings-Erzeugung mit austauschbarem Speicher. Weise Database eine Vektordatenbank-Komponente zu und die gesamte Ingest-Pipeline aus Chunking, Embedding, Batching und Schreiben läuft mit einem einzigen Aufruf.

Komponentenklasse

TsgcAIOpenAIEmbeddings

Zweck

Embeddings und RAG-Abfrage

Plattformen

Win32 und Win64

sgcAI ist eigenständig. Diese Komponente wird in sgcAI zusammen mit der sgcWebSockets Core Runtime ausgeliefert, auf der sie aufbaut. Du musst also keine Basislizenz kaufen.

Einen Korpus indexieren und dann abfragen

Weise einen Vektorspeicher zu, rufe CreateEmbeddingsFromFile einmalig auf und hole dann zu jeder Nutzerfrage den passenden Kontext.

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

Wichtige Eigenschaften & Methoden

Die Member, zu denen du am häufigsten greifst.

Database

Database nimmt jede beliebige Vektorspeicher-Komponente entgegen. Verwende TsgcAIDatabaseVectorFile für eine lokale Datei oder TsgcAIDatabaseVectorPinecone für einen verwalteten Index. Der Ingest-Code bleibt derselbe.

EmbeddingsOptions

Model steht standardmäßig auf text-embedding-3-small. ChunkSize steuert, wie der Korpus aufgeteilt wird, WaitStoringData taktet die Schreibvorgänge in den Speicher und User kennzeichnet die Anfragen.

Ingest

CreateEmbeddings indexiert einen String und CreateEmbeddingsFromFile indexiert eine ganze Datei. Beide öffnen einen Batch im Speicher, schieben einen Vektor pro Chunk hinein und schließen ihn danach wieder.

Abfrage

GetEmbedding bettet eine Abfrage ein und liefert den nächstgelegenen gespeicherten Text zurück, also genau den String, den du als Kontext in den Prompt einfügst.

Batch-Ereignisse

OnCreateEmbeddingsStart meldet die Gesamtgröße, OnCreateEmbeddingsProgress meldet die Position und führt ein Continue-Flag mit, damit sich ein langer Ingest abbrechen lässt, und OnCreateEmbeddingsStop schließt den Durchlauf ab.

Ereignisse pro Chunk

OnBeforeCreateEmbedding kann eine einzelne Anfrage prüfen und ablehnen, und OnAfterCreateEmbedding übergibt dir Anfrage und Antwort, was sich gut für die Kontrolle des Token-Verbrauchs eignet.

Spezifikationen & Referenzen

Maßgebliche Quellen zu den Diensten und Protokollen, die diese Komponente nutzt.

Weiter entdecken

Online-HilfeVollständige API-Referenz und Anwendungsleitfaden für die sgcAI-Komponenten.
Alle sgcAI-KomponentenDurchstöbere die vollständige Funktionsmatrix aller 15 Komponenten.
Kostenlose Testversion herunterladenIndexiere deine eigenen Dokumente und frage sie offline ab.
PreiseSingle-, Team- und Site-Lizenzen, vollständiger Quellcode, kein Basisprodukt erforderlich.
Bestes Preis-Leistungs-Verhältnis: All-AccessAlle eSeGeCe-Produkte, inklusive Premium-Support, ab €1,059 pro Jahr.
All-Access-Preise ansehen

Bereit loszulegen?

Lade die kostenlose Testversion herunter und verankere ein Sprachmodell in deinen eigenen Daten.