Freigeben über


Verwenden Sie ai.extract mit PySpark

Die ai.extract-Funktion verwendet generative KI, um Eingabetext zu scannen und bestimmte Arten von Informationen zu extrahieren, die Sie auswählen (z. B. Orte oder Namen). Es verwendet nur eine einzelne Codezeile.

Hinweis

Überblick

Die ai.extract Funktion ist für Spark DataFrames verfügbar. Sie müssen den Namen einer vorhandenen Eingabespalte als Parameter angeben, zusammen mit einer Liste von Entitätstypen, die aus jeder Textzeile extrahiert werden sollen.

Die Funktion gibt einen neuen DataFrame mit einer separaten Spalte für jeden angegebenen Entitätstyp zurück, der extrahierte Werte für jede Eingabezeile enthält.

Syntax

df.ai.extract(labels=["entity1", "entity2", "entity3"], input_col="input")

Die Parameter

Name Description
labels
Erforderlich
Ein Array von Zeichenfolgen, das den Satz von Entitätstypen darstellt, der aus den Textwerten in der Eingabespalte extrahiert werden soll.
input_col
Erforderlich
Eine Zeichenfolge, die den Namen einer vorhandenen Spalte mit Eingabetextwerten enthält, um die benutzerdefinierten Entitäten zu suchen.
aifunc.ExtractLabel
Wahlfrei
Mindestens eine Etikettendefinition zur Beschreibung der Felder, die extrahiert werden sollen. Weitere Informationen finden Sie in der Tabelle "ExtractLabel Parameters".
error_col
Wahlfrei
Eine Zeichenfolge , die den Namen einer neuen Spalte enthält, um alle OpenAI-Fehler zu speichern, die aus der Verarbeitung der einzelnen Eingabetextzeilen resultieren. Wenn Sie diesen Parameter nicht festlegen, wird für die Fehlerspalte ein Standardname generiert. Wenn eine Eingabezeile keine Fehler aufweist, lautet nullder Wert in dieser Spalte .

ExtractLabel-Parameter

Name Description
label
Erforderlich
Eine Zeichenfolge , die die Entität darstellt, die aus den Eingabetextwerten extrahiert werden soll.
description
Wahlfrei
Eine Zeichenfolge , die zusätzlichen Kontext für das KI-Modell hinzufügt. Sie kann Anforderungen, Kontext oder Anweisungen für die KI enthalten, die beim Ausführen der Extraktion berücksichtigt werden sollen.
max_items
Wahlfrei
Ein Int , das die maximale Anzahl von Elementen angibt, die für diese Bezeichnung extrahiert werden sollen.
type
Wahlfrei
JSON-Schematyp für den extrahierten Wert. Unterstützte Typen für diese Klasse umfassen string, , number, integer, boolean, , objectund array.
properties
Wahlfrei
Weitere JSON-Schemaeigenschaften für den Typ als Wörterbuch. Es kann unterstützte Eigenschaften wie "items" für Arrays, "properties" für Objekte, "enum" für Enum-Typen und mehr enthalten. Siehe Beispielverwendung in diesem Artikel.
raw_col
Wahlfrei
Eine Zeichenfolge , die den Spaltennamen für die unformatierte LLM-Antwort festlegt. Die unformatierte Antwort enthält eine Liste von Wörterbuchpaaren für jede Entitätsbezeichnung, einschließlich "Reason" und "extraction_text".

Rückkehr

Die Funktion gibt einen Spark DataFrame mit einer neuen Spalte für jeden angegebenen Entitätstyp zurück. Die Spalte oder Spalten enthalten die Entitäten, die für jede Zeile mit Eingabetext extrahiert wurden. Wenn die Funktion mehrere Übereinstimmungen für eine Entität identifiziert, gibt sie nur eine dieser Übereinstimmungen zurück. Wenn keine Übereinstimmung gefunden wird, lautet nulldas Ergebnis .

Der Standardmäßige Rückgabetyp ist eine Liste der Zeichenfolgen für jede Bezeichnung. Wenn Benutzer einen anderen Typ in der aifunc.ExtractLabel Konfiguration angeben möchten, z. B. "type=integer", dann ist die Ausgabe eine Liste von Python int. Wenn Benutzer "max_items=1" in der aifunc.ExtractLabel Konfiguration angeben, wird für diese Bezeichnung nur ein Element des Typs zurückgegeben.

Example

# This code uses AI. Always review output for mistakes. 

df = spark.createDataFrame([
        ("MJ Lee lives in Tuscon, AZ, and works as a software engineer for Contoso.",),
        ("Kris Turner, a nurse at NYU Langone, is a resident of Jersey City, New Jersey.",)
    ], ["descriptions"])

df_entities = df.ai.extract(labels=["name", "profession", "city"], input_col="descriptions")
display(df_entities)

Diese Beispielcodezelle stellt die folgende Ausgabe bereit:

Screenshot eines neuen Datenrahmens mit den Spalten