Delphi Pinecone API istemcisi

· Bileşenler

sgcWebSockets 2023.6.0 sürümünden itibaren Pinecone API desteklenmektedir.

Pinecone.io

Pinecone, vektör verilerini kolay ve güçlü bir şekilde yüklemeye / sorgulamaya / silmeye olanak tanıyan bir vektör veritabanıdır. Pinecone, üçüncü tarafların pinecone'u kendi uygulamalarına entegre etmesine olanak tanıyan genel bir API'ye sahiptir. TsgcHTTP_API_Pinecone bileşeni, Pinecone API üzerinde bir sarmalayıcıdır (wrapper).

Yapılandırma

Başlamadan önce, Pinecone web sitesine kayıt olmalı ve bir API talep etmelisiniz. Bu API anahtarı, API isteklerini göndermek için kullanılır ve TsgcHTTP_API_Pinecone bileşeninin PineconeOptions.ApiKey özelliğinde ayarlanmalıdır.

Metotlar

Aşağıdaki metotlar desteklenir:

  1.  Dizin İşlemleri: dizinleri listeleme, oluşturma, açıklama, silme ve yapılandırmaya olanak tanır.
  2. Koleksiyon İşlemleri: işlemleri listeleyebilir, oluşturabilir ve açıklayabilirsiniz.
  3. Vektör İşlemleri: vektörleri sorgulama, silme, güncelleme, upsert ve getirme işlemlerini destekler.

UPSERT Nasıl Yapılır

Id = "id1" olan tek bir vektörün UPSERT edilmesine dair bir örneği aşağıda bulabilirsiniz. 

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; 

Nasıl Sorgulanır

Tek bir vektörün QUERY (sorgulama) edilmesine dair bir örneği aşağıda bulabilirsiniz. 

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şağıdaki demo, Pinecone API'sinin nasıl çalıştığını gösterir; demo Windows için derlenmiştir ve sgcWebSockets Pinecone API istemcisini kullanır.