Pinecone Index.Update()

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 ein Update in Pinecone?

In Pinecone ist ein Upsert eine Operation, die es uns ermöglicht, die Vektordaten in einem bestimmten Index zu aktualisieren. Im Gegensatz zu einer Upsert-Operation, die sowohl eine Einfüge- als auch eine Aktualisierungsoperation ausführt, aktualisiert eine Aktualisierungsoperation nur die vorhandenen Vektordaten.

In diesem Tutorial lernen wir, wie man mit dem Pinecone-Client für Python einen Update-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 Indexes und Einfügens

    Sobald wir den Pinecone-Client installiert haben, können wir einen Index zum Speichern der Vektordaten erstellen.

    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=“YOUR_API_KEY“, Environment=“YOUR_ENV“)

    # Erstellen Sie einen Basisindex

    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 die entsprechenden IDs.

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

    Pinecone Index.Update()

    Diese Methode aktualisiert die Vektoren in einem Namespace. Wenn ein Wert enthalten ist, überschreibt dieser den vorherigen Wert.

    Die Funktionssyntax lautet wie folgt:

    Index.update(**kwargs)

    Die Funktion akzeptiert die Parameter wie folgt:

  • id – Die eindeutige ID des Vektors.
  • Werte – Gibt die Vektordaten an.
  • Set_metadata – Gibt die Metadaten an, die für den Vektor festgelegt werden sollen.
  • Namespace – Definiert den Namespace, der den Vektor enthält.
  • Funktionsverwendung

    Das folgende Beispiel zeigt, wie der zuvor erstellte Beispielindex aktualisiert wird:

    update_response = index.update(

    id=ids_a,

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

    set_metadata={‚info‘: ’numpy random‘},

    namespace=’linuxhint_namespace_a‘

    )

    Der vorherige Code aktualisiert die Indexvektoren mit neuen Werten, die vom NumPy-Zufallsmodul generiert werden. Wir fügen den Vektoren auch die Metadaten hinzu.

    Abschluss

    Sie haben den Aktualisierungsvorgang kennengelernt, wenn Sie mit Vektoren arbeiten, um einen vorhandenen Vektor mit neuen Werten zu aktualisieren oder Metadaten hinzuzufügen.

    Kommentar verfassen

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

    Nach oben scrollen