Client API Delphi Pinecone

· Composants

Depuis sgcWebSockets 2023.6.0, l'API Pinecone est prise en charge.

Pinecone.io

Pinecone est une base de données vectorielle qui permet de téléverser / interroger / supprimer des données vectorielles de façon simple et puissante. Pinecone dispose d'une API publique qui permet à des tiers d'intégrer pinecone dans leurs propres applications. Le composant TsgcHTTP_API_Pinecone est un wrapper de l'API Pinecone.

Configuration

Avant de commencer, tu dois t'inscrire sur le site web de Pinecone et demander une API. Cette clé API est utilisée pour envoyer les requêtes API et doit être définie dans la propriété PineconeOptions.ApiKey du composant TsgcHTTP_API_Pinecone.

Méthodes

Les méthodes suivantes sont prises en charge :

  1.  Opérations d'index : permettent de lister, créer, décrire, supprimer et configurer les index.
  2. Opérations de collection : tu peux lister, créer et décrire les opérations.
  3. Opérations vectorielles : prennent en charge query, delete, update, upsert et fetch des vecteurs.

Comment faire un UPSERT

Voici un exemple d'UPSERT d'un seul vecteur avec l'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; 

Comment faire une requête

Voici un exemple de QUERY d'un seul vecteur. 

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; 

Démo

La démo suivante montre comment fonctionne l'API Pinecone, la démo est compilée pour Windows et utilise le client API Pinecone sgcWebSockets.