Delphi Pinecone API client

· Components

Ab sgcWebSockets 2023.6.0 wird die Pinecone-API unterstützt.

Pinecone.io

Pinecone ist eine Vektordatenbank, mit der du Vektordaten einfach und leistungsstark hochladen, abfragen und löschen kannst. Pinecone bietet eine öffentliche API, über die Drittanbieter Pinecone in ihre eigenen Anwendungen integrieren können. Die Komponente TsgcHTTP_API_Pinecone ist ein Wrapper über der Pinecone-API.

Konfiguration

Bevor du startest, musst du dich auf der Pinecone-Website registrieren und einen API-Schlüssel anfordern. Dieser API-Schlüssel wird zum Senden der API-Anfragen verwendet und muss in der Eigenschaft PineconeOptions.ApiKey der Komponente TsgcHTTP_API_Pinecone gesetzt werden.

Methoden

Die folgenden Methoden werden unterstützt:

  1.  Index-Operationen: erlauben das Auflisten, Erstellen, Beschreiben, Löschen und Konfigurieren von Indizes.
  2. Collection-Operationen: du kannst Operationen auflisten, anlegen und beschreiben.
  3. Vektor-Operationen: unterstützen Abfragen, Löschen, Aktualisieren, Upsert und Abruf von Vektoren.

So führst du UPSERT aus

Unten findest du ein Beispiel für UPSERT eines einzelnen Vektors mit der 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; 

So führst du eine Query aus

Unten findest du ein Beispiel für QUERY eines einzelnen Vektors. 

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; 

Demo

Die folgende Demo zeigt, wie die Pinecone-API funktioniert. Die Demo ist für Windows kompiliert und nutzt den Pinecone-API-Client von sgcWebSockets.