Cliente Delphi para a API Pinecone

· Componentes

A partir do sgcWebSockets 2023.6.0, a Pinecone API é suportada.

Pinecone.io

O Pinecone é um banco de dados vetorial que permite fazer upload, consultar e excluir dados vetoriais de forma fácil e poderosa. O Pinecone possui uma API pública que permite a integração de terceiros em suas próprias aplicações. O componente TsgcHTTP_API_Pinecone é um wrapper sobre a Pinecone API.

Configuração

Antes de começar, você deve se registrar no site do Pinecone e solicitar uma API. Essa chave de API é usada para enviar as requisições e deve ser definida na propriedade PineconeOptions.ApiKey do componente TsgcHTTP_API_Pinecone.

Métodos

Os seguintes métodos são suportados:

  1.  Operações de Índice: permite listar, criar, descrever, excluir e configurar índices.
  2. Operações de Coleção: você pode listar, criar e descrever operações.
  3. Operações de Vetor: suporta consulta, exclusão, atualização, upsert e busca de vetores.

Como fazer UPSERT

Veja abaixo um exemplo de UPSERT de um único vetor com 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; 

Como fazer QUERY

Veja abaixo um exemplo de QUERY de um único vetor. 

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

A demo a seguir mostra como a Pinecone API funciona. A demo está compilada para Windows e usa o cliente Pinecone API do sgcWebSockets.