Komponent OpenAI Embeddings — sgcAI | eSeGeCe

OpenAI Embeddings

TsgcAIOpenAIEmbeddings odpowiada za wczytywanie danych i wyszukiwanie w generowaniu wzbogaconym wyszukiwaniem. Dzieli korpus na fragmenty, żąda wektora embeddingu dla każdego z nich, zapisuje je w przypisanej przez ciebie bazie wektorowej i zwraca najbliższy zapisany tekst dla dowolnego zapytania.

TsgcAIOpenAIEmbeddings

Generowanie embeddingów z wymiennym magazynem. Przypisz komponent bazy wektorowej do Database, a cały potok wczytywania, dzielenie na fragmenty, osadzanie, grupowanie i zapis, uruchomi się z jednego wywołania.

Klasa komponentu

TsgcAIOpenAIEmbeddings

Przeznaczenie

Embeddingi i wyszukiwanie RAG

Platformy

Win32 i Win64

sgcAI jest samowystarczalny. Ten komponent jest dostarczany w sgcAI razem ze środowiskiem uruchomieniowym sgcWebSockets Core, na którym jest zbudowany, więc nie ma licencji bazowej do kupienia.

Zaindeksuj korpus, a potem go odpytuj

Przypisz bazę wektorową, wywołaj raz CreateEmbeddingsFromFile, a następnie wyszukuj kontekst dla każdego pytania użytkownika.

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

Kluczowe właściwości i metody

Składowe, po które sięgasz najczęściej.

Database

Database przyjmuje dowolny komponent bazy wektorowej. Użyj TsgcAIDatabaseVectorFile dla lokalnego pliku albo TsgcAIDatabaseVectorPinecone dla zarządzanego indeksu. Kod wczytywania danych się nie zmienia.

EmbeddingsOptions

Model domyślnie to text-embedding-3-small. ChunkSize steruje sposobem dzielenia korpusu, WaitStoringData reguluje tempo zapisów do magazynu, a User oznacza żądania.

Wczytywanie danych

CreateEmbeddings indeksuje ciąg znaków, a CreateEmbeddingsFromFile indeksuje cały plik. Oba otwierają wsad w magazynie, wypychają po jednym wektorze na fragment, a potem go zamykają.

Zapytanie

GetEmbedding osadza zapytanie i zwraca najbliższy zapisany tekst, czyli ciąg, który wklejasz do promptu jako kontekst.

Zdarzenia wsadu

OnCreateEmbeddingsStart raportuje całkowity rozmiar, OnCreateEmbeddingsProgress raportuje pozycję i niesie flagę kontynuacji, dzięki czemu długie wczytywanie można anulować, a OnCreateEmbeddingsStop zamyka przebieg.

Zdarzenia dla fragmentów

OnBeforeCreateEmbedding może sprawdzić i odrzucić pojedyncze żądanie, a OnAfterCreateEmbedding przekazuje ci żądanie i odpowiedź, co przydaje się przy kontroli zużycia tokenów.

Specyfikacje i materiały źródłowe

Miarodajne źródła dla usług i protokołów, z których korzysta ten komponent.

Poznawaj dalej

Pomoc onlinePełna dokumentacja API i przewodnik użytkowania komponentów sgcAI.
Wszystkie komponenty sgcAIPrzejrzyj pełną matrycę funkcji wszystkich 15 komponentów.
Pobierz bezpłatną wersję próbnąZaindeksuj własne dokumenty i odpytuj je bez połączenia.
CennikLicencje Single, Team i Site, pełny kod źródłowy, bez wymaganego produktu bazowego.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Gotowy, aby zacząć?

Pobierz bezpłatną wersję próbną i oprzyj model językowy na własnych danych.