Delphi Pinecone API-client

· Componenten

Vanaf sgcWebSockets 2023.6.0 wordt de Pinecone-API ondersteund.

Pinecone.io

Pinecone is een vectordatabase waarmee je vectordata eenvoudig en krachtig kunt uploaden / queriën / verwijderen. Pinecone biedt een publieke API waarmee derden Pinecone kunnen integreren in hun eigen toepassingen. Het component TsgcHTTP_API_Pinecone is een wrapper rond de Pinecone-API.

Configuratie

Voordat je begint, moet je je registreren op de Pinecone-website en een API aanvragen. Deze API-sleutel wordt gebruikt om de API-requests te versturen en moet worden ingesteld op de eigenschap PineconeOptions.ApiKey van het TsgcHTTP_API_Pinecone-component.

Methoden

De volgende methoden worden ondersteund:

  1.  Index-operaties: hiermee kun je indexes weergeven, aanmaken, beschrijven, verwijderen en configureren.
  2. Collection-operaties: je kunt operaties weergeven, aanmaken en beschrijven.
  3. Vector-operaties: ondersteunt query, delete, update, upsert en fetch van vectoren.

Hoe te UPSERTen

Hieronder een voorbeeld van een UPSERT van een enkele vector met de 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;

Hoe te querien

Hieronder een voorbeeld van een QUERY van een enkele vector. 

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

De volgende demo laat zien hoe de Pinecone-API werkt. De demo is gecompileerd voor Windows en gebruikt de sgcWebSockets Pinecone-API-client.