Klient API Pinecone dla Delphi

· Komponenty

Od sgcWebSockets 2023.6.0 obsługiwane jest Pinecone API.

Pinecone.io

Pinecone to wektorowa baza danych umożliwiająca łatwe przesyłanie, odpytywanie i usuwanie danych wektorowych. Pinecone udostępnia publiczne API, które pozwala stronom trzecim integrować Pinecone z własnymi aplikacjami. Komponent TsgcHTTP_API_Pinecone jest nakładką na Pinecone API.

Konfiguracja

Przed rozpoczęciem musisz zarejestrować się na stronie Pinecone i uzyskać klucz API. Klucz ten jest używany do wysyłania żądań API i musi być ustawiony we właściwości PineconeOptions.ApiKey komponentu TsgcHTTP_API_Pinecone.

Metody

Obsługiwane są następujące metody:

  1. Operacje na indeksach: umożliwiają listowanie, tworzenie, opisywanie, usuwanie i konfigurowanie indeksów.
  2. Operacje na kolekcjach: możesz listować, tworzyć i opisywać operacje.
  3. Operacje na wektorach: obsługuje odpytywanie, usuwanie, aktualizowanie, upsert i pobieranie wektorów.

Jak wykonać UPSERT

Poniżej znajduje się przykład operacji UPSERT dla pojedynczego wektora o Id = "id1".

procedure UpsertPinecone(const aIndexName, aProjectId: string; const aVector: Array of Double);
var
  oPinecone: TsgcHTTP_API_Pinecone;
  oParams: TsgcHTTPPineconeVectorUpserts;
  oVectors: TsgcArrayOfVectorUpsert;
begin
  oPinecone := TsgcHTTP_API_Pinecone.Create(nil);
  Try
    oPinecone.PineconeOptions.API := 'your-api-key';
    oParams := TsgcHTTPPineconeVectorUpserts.Create;
    Try
      SetLength(oVectors, 1);
      oVectors[0] := TsgcHTTPPineconeVectorUpsert.Create;
      oVectors[0].Id := 'id1';
      oVectors[0].Values := aVector;
      oParams.Vectors := oVectors;
      Pinecone.VectorsUpsert(aIndexName, aProjectId, oParams);
    Finally
      oParams.Free;
    End;
  Finally
    oPinecone.Free;
  End;
end; 

Jak wykonać zapytanie

Poniżej znajduje się przykład zapytania o pojedynczy wektor.

procedure QueryPinecone(const aIndexName, aProjectId: string; const aVector: Array of Double);
var
  oParams: TsgcHTTPPineconeVectorQuery;
begin
  oParams := TsgcHTTPPineconeVectorQuery.Create;
  Try
    oParams.Vector := aVector;
    Pinecone.VectorsQuery(aIndexName, aProjectId, oParams);
  Finally
    oParams.Free;
  End;
end; 

Demonstracja

Poniższe demo pokazuje, jak działa Pinecone API. Demo jest skompilowane dla Windows i używa klienta Pinecone API z biblioteki sgcWebSockets.