Pinecone Metadaten in einen Index einfügen

Indexmetadaten in Pinecone beziehen sich auf die zusätzlichen Informationen oder Attribute, die mit Vektoren verknüpft sind, die in einem Index gespeichert sind. Pinecone ermöglicht es uns, die Schlüssel-Wert-Paare auf Vektoren anzugreifen, die als Metadaten behandelt werden. Dadurch können wir Kontextinformationen oder beschreibende Attribute bereitstellen, die jedem Vektor zugeordnet sind.

Eine Verwendung von Vektormetadaten ist die Vektorfilterung. Beispielsweise können Sie beim Abfragen eines Pinecone-Index einen Filterausdruck angeben, der nur die Vektoren filtert, die mit diesen Metadaten übereinstimmen.

Solche Filterausdrücke ermöglichen es, die Vektorsuche basierend auf bestimmten Metadatenkriterien einzuschränken. Wir können nur die Ergebnisse des nächsten Nachbarn abrufen, die den angegebenen Metadatenfiltern entsprechen, indem wir die Filterausdrücke einschließen.

Diese Funktion ermöglicht präzisere und gezieltere Suchvorgänge, da wir die Metadaten nutzen können, um den Suchraum einzugrenzen und die Ergebnisse abzurufen, die einem bestimmten Kriterium entsprechen.

In diesem Tutorial lernen wir, wie man die Metadaten in einen bestimmten Index einfügt. Außerdem erfahren Sie, wie Sie diese Indizes verwenden, um die Metadatenfilterung für eine detailliertere Suche durchzuführen.

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 Beispielindex

    Der erste Schritt besteht darin, einen Basisindex einzurichten, den wir zu Demonstrationszwecken verwenden werden. In diesem Fall erstellen wir einen Basisindex, der die Buchinformationen speichert.

    Tannenzapfen importieren

    # Pinecone-Konfiguration initiieren

    Pinecone.init(api_key=“YOUR_API_KEY“, Environment=“YOUR_ENV“)

    # Basisindex erstellen

    pinecone.create_index(„book“, dimension=8, metric=“euklidisch“, pod_type=“p1″, pods=1, Replicas=1)

    # Mit dem Index verbinden

    index = tannenzapfen.Index(„book“)

    Der vorherige Code initialisiert die Pinecone-Instanz und erstellt einen Buchindex mit der Dimension 8.

    Einfügen von Vektoren mit Metadaten

    Sobald wir einen Index erstellt haben, können wir die Upsert-Operation verwenden, um die Vektoren mit Metadaten einzufügen, wie im folgenden Beispielcode gezeigt:

    index.upsert([
    („A“, [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]{„genre“: „comedy“, „year“: 2020, „title“: „Book A“}),
    („B“, [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]{„genre“: „mystery“, „year“: 2019, „title“: „Book B“}),
    („C“, [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]{„genre“: „comedy“, „year“: 2019, „title“: „Book C“}),
    („D“, [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]{„genre“: „drama“, „title“: „Book D“}),
    („E“, [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]{„Genre“: „Romantik“, „Titel“: „Buch E“})
    ])

    Der vorherige Code fügt die Vektoren ein, die die Buchinformationen darstellen. Es enthält auch die Metadaten wie Genre, Jahr und Titel.

    Filtern mit Metadaten

    Sobald wir die Vektoren mit Metadaten eingefügt haben, können wir diese Informationen verwenden, um die granulare Filterung durchzuführen, wie im folgenden Beispielcode gezeigt:

    index.query(
    Vektor=[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1],
    filter={
    „genre“: {“$eq“: „comedy“},
    „Jahr“: 2020
    },

    Der vorherige Code sollte den Index abfragen und nur die Vektoren zurückgeben, bei denen das Genre Komödie und das Jahr 2020 entspricht.

    Die unterstützten Metadatenfilter sind wie folgt:

    Sie können die Metadatenfilter mit den Operatoren AND und OR kombinieren.

    • $eq – Gleich (Zahl, Zeichenfolge, boolescher Wert)
    • $ne – Ungleich (Zahl, Zeichenfolge, Boolescher Wert)
    • $gt – Größer als (Anzahl)
    • $gte – Größer oder gleich (Anzahl)
    • $lt – Kleiner als (Anzahl)
    • $lte – Kleiner oder gleich (Anzahl)
    • $in – Im Array (String oder Zahl)
    • $nin – Nicht im Array (String oder Zahl)

    Hier hast du es!

    Abschluss

    Sie haben das Konzept der Vektormetadaten in Pinecone kennengelernt, wie Sie die Vektoren mit Metadaten einfügen und wie Sie die Vektormetadaten verwenden, um die Vektoren zu filtern, die den angegebenen Kriterien entsprechen.

    Kommentar verfassen

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

    Nach oben scrollen