Composant Embeddings OpenAI — sgcAI | eSeGeCe

Embeddings OpenAI

TsgcAIOpenAIEmbeddings couvre le côté indexation et recherche de la génération augmentée par recherche. Il découpe un corpus en fragments, demande un vecteur d'embedding pour chacun, les écrit dans la base vectorielle que tu lui assignes, et renvoie le texte stocké le plus proche pour n'importe quelle requête.

TsgcAIOpenAIEmbeddings

Génération d'embeddings avec un stockage interchangeable. Assigne un composant de base de données vectorielle à Database et toute la chaîne d'indexation, découpage, embedding, traitement par lots et écriture, part d'un seul appel.

Classe du composant

TsgcAIOpenAIEmbeddings

Rôle

Embeddings et recherche RAG

Plateformes

Win32 et Win64

sgcAI est autonome. Ce composant est livré dans sgcAI avec le runtime sgcWebSockets Core sur lequel il repose, il n'y a donc aucune licence de base à acheter.

Indexer un corpus, puis l'interroger

Assigne une base vectorielle, appelle CreateEmbeddingsFromFile une fois, puis récupère le contexte pour chaque question de l'utilisateur.

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

Propriétés et méthodes clés

Les membres que tu utilises le plus souvent.

Database

Database accepte n'importe quel composant de base vectorielle. Utilise TsgcAIDatabaseVectorFile pour un fichier local ou TsgcAIDatabaseVectorPinecone pour un index géré. Le code d'indexation ne change pas.

EmbeddingsOptions

Model vaut text-embedding-3-small par défaut. ChunkSize contrôle le découpage du corpus, WaitStoringData cadence les écritures vers la base, et User étiquette les requêtes.

Indexation

CreateEmbeddings indexe une chaîne et CreateEmbeddingsFromFile indexe un fichier entier. Les deux ouvrent un lot sur la base, poussent un vecteur par fragment, puis le referment.

Requête

GetEmbedding vectorise une requête et renvoie le texte stocké le plus proche, c'est la chaîne que tu insères dans le prompt comme contexte.

Événements de lot

OnCreateEmbeddingsStart indique la taille totale, OnCreateEmbeddingsProgress indique la position et porte un indicateur de poursuite pour annuler une longue indexation, et OnCreateEmbeddingsStop clôt l'opération.

Événements par fragment

OnBeforeCreateEmbedding peut inspecter et rejeter une requête individuelle, et OnAfterCreateEmbedding te remet la requête et la réponse, ce qui est utile pour auditer la consommation de tokens.

Spécifications et références

Les sources faisant autorité pour les services et protocoles utilisés par ce composant.

Pour aller plus loin

Aide en ligneRéférence complète de l'API et guide d'utilisation des composants sgcAI.
Tous les composants sgcAIParcours la matrice complète des fonctionnalités des 15 composants.
Télécharger l'essai gratuitIndexe tes propres documents et interroge-les hors ligne.
TarifsLicences Single, Team et Site, code source complet, aucun produit de base requis.
Meilleur rapport qualité-prix : All-AccessTous les produits eSeGeCe, Support Premium inclus, à partir de €1,059/an.
Voir les tarifs All-Access

Prêt à te lancer ?

Télécharge l'essai gratuit et ancre un modèle de langage dans tes propres données.