Ab sgcWebSockets 2023.6.0 wird die Pinecone-API unterstützt.
Pinecone ist eine Vektordatenbank, mit der du Vektordaten einfach und leistungsstark hochladen, abfragen und löschen kannst. Pinecone bietet eine öffentliche API, über die Drittanbieter Pinecone in ihre eigenen Anwendungen integrieren können. Die Komponente TsgcHTTP_API_Pinecone ist ein Wrapper über der Pinecone-API.
Konfiguration
Bevor du startest, musst du dich auf der Pinecone-Website registrieren und einen API-Schlüssel anfordern. Dieser API-Schlüssel wird zum Senden der API-Anfragen verwendet und muss in der Eigenschaft PineconeOptions.ApiKey der Komponente TsgcHTTP_API_Pinecone gesetzt werden.
Methoden
Die folgenden Methoden werden unterstützt:
- Index-Operationen: erlauben das Auflisten, Erstellen, Beschreiben, Löschen und Konfigurieren von Indizes.
- Collection-Operationen: du kannst Operationen auflisten, anlegen und beschreiben.
- Vektor-Operationen: unterstützen Abfragen, Löschen, Aktualisieren, Upsert und Abruf von Vektoren.
So führst du UPSERT aus
Unten findest du ein Beispiel für UPSERT eines einzelnen Vektors mit der 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;
So führst du eine Query aus
Unten findest du ein Beispiel für QUERY eines einzelnen Vektors.
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
Die folgende Demo zeigt, wie die Pinecone-API funktioniert. Die Demo ist für Windows kompiliert und nutzt den Pinecone-API-Client von sgcWebSockets.
