A partir de sgcWebSockets 2023.6.0 se admite la API de Pinecone.
Pinecone es una base de datos vectorial que permite subir, consultar y eliminar datos vectoriales de forma sencilla y potente. Pinecone tiene una API pública que permite a terceros integrarlo en sus propias aplicaciones. El componente TsgcHTTP_API_Pinecone es un wrapper sobre la API de Pinecone.
Configuración
Antes de empezar debes registrarte en la web de Pinecone y solicitar una API. Esta api key se usa para enviar las peticiones a la API y debe configurarse en la propiedad PineconeOptions.ApiKey del componente TsgcHTTP_API_Pinecone.
Métodos
Se admiten los siguientes métodos:
- Operaciones de Index: permite listar, crear, describir, eliminar y configurar índices.
- Operaciones de Collection: puedes listar, crear y describir colecciones.
- Operaciones de Vector: admite query, delete, update, upsert y fetch sobre los vectores.
Cómo hacer un UPSERT
A continuación tienes un ejemplo de UPSERT de un único vector con 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;
Cómo hacer un Query
A continuación tienes un ejemplo de QUERY sobre un único 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
La siguiente demo muestra cómo funciona la API de Pinecone. La demo está compilada para Windows y usa el cliente Pinecone API de sgcWebSockets.
