Composant base de données vectorielle (fichier) — sgcAI | eSeGeCe

Base de données vectorielle (fichier)

TsgcAIDatabaseVectorFile stocke les vecteurs d'embeddings et leur texte source dans deux fichiers locaux. Assigne-le à un composant d'embeddings et tu obtiens un corpus interrogeable qui voyage avec ton application, sans serveur et sans coût par requête.

TsgcAIDatabaseVectorFile

Une base vectorielle sans aucune dépendance. Les vecteurs et leurs textes sources sont conservés en mémoire, écrits sur le disque à la fermeture d'un lot, et parcourus à la recherche de la correspondance la plus proche lors d'une requête.

Classe du composant

TsgcAIDatabaseVectorFile

Rôle

Base vectorielle locale

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.

Un corpus interrogeable en deux fichiers

Indique au composant un fichier d'entrée et un fichier de vecteurs, assigne-le à un composant d'embeddings, et il fait le reste.

uses
  sgcAI, sgcAI_DB_Vector_File, sgcAI_OpenAI_Embeddings;

var
  oDB: TsgcAIDatabaseVectorFile;
  oEmbeddings: TsgcAIOpenAIEmbeddings;
begin
  oDB := TsgcAIDatabaseVectorFile.Create(nil);
  oDB.VectorFileOptions.InputFilename  := 'corpus.sgcif';
  oDB.VectorFileOptions.VectorFilename := 'corpus.sgcvf';

  oEmbeddings := TsgcAIOpenAIEmbeddings.Create(nil);
  oEmbeddings.OpenAIOptions.ApiKey := 'sk-...';
  oEmbeddings.Database := oDB;
  oEmbeddings.CreateEmbeddingsFromFile('manual.txt');

  // The store can also be driven directly.
  oDB.BeginAddData;
  oDB.AddData('Reset procedure: hold the button for 10 seconds.', vVector);
  oDB.EndAddData;

  Memo1.Text := oDB.QueryData(vQueryVector);
end;
// includes: sgcAI.hpp, sgcAI_DB_Vector_File.hpp

TsgcAIDatabaseVectorFile *oDB = new TsgcAIDatabaseVectorFile(NULL);
oDB->VectorFileOptions->InputFilename  = "corpus.sgcif";
oDB->VectorFileOptions->VectorFilename = "corpus.sgcvf";

oDB->BeginAddData();
oDB->AddData("Reset procedure: hold the button for 10 seconds.", vVector);
oDB->EndAddData();

String vBest = oDB->QueryData(vQueryVector);

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

Les membres que tu utilises le plus souvent.

VectorFileOptions

InputFilename contient les textes sources indexés par identifiant et VectorFilename contient les vecteurs correspondants. Distribue les deux fichiers avec ton application et le corpus est disponible hors ligne.

Indexation

BeginAddData ouvre un lot, AddData ajoute un texte et son vecteur, et EndAddData ferme le lot et écrit les deux fichiers sur le disque.

Requête

QueryData prend un vecteur de requête, parcourt les vecteurs stockés à la recherche de la correspondance la plus proche et renvoie le texte original correspondant.

Contrôle des identifiants

OnBeginAddData te permet de fixer le premier identifiant et son libellé pour un lot, si bien qu'une seconde indexation peut compléter un corpus existant au lieu de l'écraser.

Quand l'utiliser

Idéal pour des corpus qui tiennent confortablement en mémoire et pour des applications de bureau qui doivent fonctionner sans connexion réseau. Pour des index volumineux ou partagés, utilise plutôt la base Pinecone.

Interchangeable

Il implémente la même interface que TsgcAIDatabaseVectorPinecone, passer de fichiers locaux à un index géré est donc un changement de composant, pas de code.

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 gratuitConstruis un corpus interrogeable hors ligne dans une application de bureau.
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 embarque une base de connaissances interrogeable dans ton exécutable.