Depuis sgcWebSockets 2023.6.0, l'API Pinecone est prise en charge.
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 :
- Opérations d'index : permettent de lister, créer, décrire, supprimer et configurer les index.
- Opérations de collection : tu peux lister, créer et décrire les opérations.
- 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.
