Tannenzapfen Index.Upsert()

In Pinecone bezieht sich ein Index auf eine Hochleistungsdatenstruktur, die eine effiziente Ähnlichkeitssuche und das Abrufen von Vektoreinbettungen ermöglicht.

Es funktioniert durch die Organisation der Einbettungen, um die Abfragen zum nächsten Nachbarn zu optimieren, sodass Sie schnell die ähnlichsten Vektoren finden können. Daher kann ein Pinecone-Index große Vektordatensätze mit unglaublich schnellen Einfüge-, Aktualisierungs- und Löschvorgängen verarbeiten und gleichzeitig eine hohe Sucheffizienz beibehalten.

Was ist Upsert in Pinecone?

In Pinecone ist ein Upsert ein Vorgang, der es uns ermöglicht, die Vektoreinbettungen zu aktualisieren oder in einen vorhandenen Index einzufügen. Es kombiniert das Aktualisieren der aktuellen Vektoren und das Einfügen neuer Vektoren in einem einzigen Prozess.

Wenn Sie einen Upsert-Vorgang aufrufen, prüft die Pinecone-Engine, ob der angegebene Vektor bereits im Index vorhanden ist. Wenn dies der Fall ist, führt es einen Aktualisierungsvorgang mit den neuen Vektorwerten durch. Andernfalls, wenn der Vektor nicht existiert, wird ein neuer im Index erstellt.

Die Upsert-Funktion ist nützlich, wenn Sie über einen dynamischen Datensatz verfügen und kontinuierlich Vektoren aktualisieren oder neue hinzufügen müssen, ohne den gesamten Index neu erstellen zu müssen.

Aufgrund dieser Funktionalität ermöglicht es die Unterstützung von Echtzeitaktualisierungen des Index und ermöglicht gleichzeitig synchronisierte Änderungen in den Daten. Dies kann besonders wertvoll in Anwendungen wie Empfehlungssystemen sein, bei denen sich die Benutzerpräferenzen oder Artikelfunktionen im Laufe der Zeit ändern.

In diesem Tutorial lernen wir, wie man mit dem Pinecone-Client für Python einen Upsert-Vorgang in Pinecone durchführt.

Anforderungen:

Um diesem Tutorial folgen zu können, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Installierte Python 3.10 und höher
  • Grundlegende Python-Programmierkenntnisse
  • Installation des Pinecone-Clients

    Bevor wir mit Python mit dem Pinecone-Server interagieren, müssen wir den Pinecone-Client auf unserem Computer installieren. Glücklicherweise können wir dies mit einem einfachen „pip“-Befehl wie folgt tun:

    $ pip3 Pinecone-Client installieren

    Der vorherige Befehl sollte die neueste stabile Version des Pinecone-Clients herunterladen und in Ihrem Projekt installieren.

    Erstellen eines Index und Upsert

    Sobald wir den Pinecone-Client installiert haben, können wir einen Index erstellen, in dem wir die Vektordaten speichern.

    Wir können dies mit der Methode create_index() tun, wie im folgenden Beispielcode gezeigt:

    Tannenzapfen importieren

    numpy als np importieren

    # Pinecone-Konfiguration initiieren

    Pinecone.init(api_key=“0f57b6af-ea59-4fd3-a0ce-3c7f0c1d419f“, Environment=“us-west1-gcp-free“)

    # Basisindex erstellen

    pinecone.create_index(„sample“, dimension=1024, metric=“euklidisch“, pod_type=“p1″, pods=1, replikate=1)

    # Mit dem Index verbinden

    index = tannenzapfen.Index(„sample“)

    # Erstellen Sie drei Sätze 8-dimensionaler Vektoren

    vectors_a = np.random.rand(15, 8).tolist()

    # IDs erstellen

    ids_a = map(str, np.arange(15).tolist())

    # In separate Namespaces einfügen

    index.upsert(vectors=zip(ids_a,vectors_a),namespace=’linuxhint_namespace_a‘)

    Der vorherige Code beginnt mit der Initialisierung von Pinecone. Anschließend erstellt es einen Basisindex namens „sample“ mit angegebenen Parametern und stellt eine Verbindung zum Index her.

    Als nächstes generieren wir einen Satz 15-dimensionaler Vektoren und entsprechende IDs.

    Schließlich fügt es die Vektoren mithilfe der Upsert-Funktionalität in den Namensraum „linuxhint_namespace_a“ des „sample“-Index ein.

    Index.Upsert()-Methode

    Mit der Methode index.upsert() können wir die Vektoren aktualisieren oder in einen bestimmten Index einfügen, wie im vorherigen Beispiel gezeigt.

    Die Methodensyntax lautet wie folgt:

    Index.upsert(**kwargs)

    Die Methode akzeptiert zwei Hauptparameter:

  • Vektoren – Dieser Parameter definiert ein Array, das die einzufügenden Vektoren enthält. Es wird empfohlen, eine Charge von maximal 100 Artikeln einzufügen. Das Array enthält die folgenden Parameter:
    • id – Gibt die eindeutige ID des Vektors an.
    • Werte – Stellt die Vektordaten dar.
    • Metadaten – Gibt die Metadaten für den Vektor an.
    • sparse_vector – Dies definiert ein Wörterbuch, das den Index und die Wertearrays enthält, die die spärlichen Vektorwerte enthalten.
  • Namespace – Der Namespace-Name, um die Vektoren einzufügen.
  • Die Methode gibt einen int64-Datentyp zurück, der die Anzahl der Vektoren angibt, die im Betrieb eingefügt werden.

    Abschluss

    Sie haben gelernt, was ein Pinecone-Index ist, was ein Upsert-Vorgang ist und wie Sie den Pinecone-Client für Python verwenden, um einen Upsert-Vorgang durchzuführen.

    Kommentar verfassen

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    Nach oben scrollen