Freigeben über


Verwenden von ai.generate_response mit PySpark

Die ai.generate_response Funktion verwendet generative KI, um benutzerdefinierte Textantworten zu generieren, die auf Ihren eigenen Anweisungen basieren, mit einer einzigen Codezeile.

Hinweis

Überblick

Die ai.generate_response Funktion ist für Spark DataFrames verfügbar. Sie müssen den Namen einer vorhandenen Eingabespalte als Parameter angeben. Sie müssen auch eine Zeichenfolgenbasierte Eingabeaufforderung und einen Booleschen Wert angeben, der angibt, ob diese Eingabeaufforderung als Formatzeichenfolge behandelt werden soll.

Die Funktion gibt einen neuen DataFrame mit benutzerdefinierten Antworten für jede Eingabetextzeile zurück, die in einer Ausgabespalte gespeichert ist.

Tipp

Erfahren Sie, wie Sie effektivere Aufforderungen erstellen, um antworten mit höherer Qualität zu erhalten, indem Sie die Tipps zur Aufforderung von OpenAI für gpt-4.1 befolgen.

Syntax

df.ai.generate_response(prompt="Instructions for a custom response based on all column values", output_col="response")

Die Parameter

Name Description
prompt
Erforderlich
Eine Zeichenfolge , die Anweisungen zur Eingabeaufforderung enthält. Diese Anweisungen werden auf Eingabetextwerte für benutzerdefinierte Antworten angewendet.
is_prompt_template
Wahlfrei
Ein Boolescher Wert, der angibt, ob es sich bei der Eingabeaufforderung um eine Formatzeichenfolge oder eine Literalzeichenfolge handelt. Wenn dieser Parameter auf True festgelegt ist, berücksichtigt die Funktion nur die spezifischen Zeilenwerte aus jeder Spalte, die in der Formatzeichenfolge angezeigt wird. In diesem Fall müssen diese Spaltennamen zwischen geschweiften Klammern angezeigt werden, und andere Spalten werden ignoriert. Wenn dieser Parameter auf den Standardwert festgelegt Falseist, berücksichtigt die Funktion alle Spaltenwerte als Kontext für jede Eingabezeile.
output_col
Wahlfrei
Eine Zeichenfolge , die den Namen einer neuen Spalte enthält, um benutzerdefinierte Antworten für jede Zeile mit Eingabetext zu speichern. Wenn Sie diesen Parameter nicht festlegen, wird für die Ausgabespalte ein Standardname generiert.
error_col
Wahlfrei
Eine Zeichenfolge , die den Namen einer neuen Spalte enthält, um alle OpenAI-Fehler zu speichern, die aus der Verarbeitung jeder Zeile von Eingabetext resultieren. Wenn Sie diesen Parameter nicht festlegen, wird für die Fehlerspalte ein Standardname generiert. Wenn keine Fehler für eine Zeile mit Eingabe vorhanden sind, ist der Wert in dieser Spalte null.
response_format
Wahlfrei
Eine Zeichenfolge oder ein Wörterbuch , die die erwartete Struktur der Antwort des Modells angibt. Die Zeichenfolgenwerte können für Freiformtext auf "Text" oder "json_object" festgelegt werden, um sicherzustellen, dass die Ausgabe ein gültiges JSON-Objekt ist. Andernfalls kann das type Feld mit einem benutzerdefinierten JSON-Schema auf "json_schema" festgelegt werden, um eine bestimmte Antwortstruktur zu erzwingen. Wenn dieser Parameter nicht angegeben wird, wird die Antwort als Nur-Text zurückgegeben.

Rückkehr

Die Funktion gibt einen Spark DataFrame zurück, der eine neue Spalte enthält, die benutzerdefinierte Textantworten für die Eingabeaufforderung für jede Eingabetextzeile enthält.

Example

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

df = spark.createDataFrame([
        ("Scarves",),
        ("Snow pants",),
        ("Ski goggles",)
    ], ["product"])

responses = df.ai.generate_response(prompt="Write a short, punchy email subject line for a winter sale.", output_col="response")
display(responses)

Diese Beispielcodezelle stellt die folgende Ausgabe bereit:

Screenshot eines Datenrahmens mit den Spalten

Beispiel für das Antwortformat

Das folgende Beispiel zeigt, wie Sie den response_format Parameter verwenden, um verschiedene Antwortformate anzugeben, einschließlich Nur-Text, json-Objekt und einem benutzerdefinierten JSON-Schema.

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

df = spark.createDataFrame([
        ("Alex Rivera is a 24-year-old soccer midfielder from Barcelona who scored 12 goals last season.",),
        ("Jordan Smith, a 29-year-old basketball guard from Chicago, averaged 22 points per game.",),
        ("William O'Connor is a 22-year-old tennis player from Dublin who won 3 ATP titles this year.",)
    ], ["bio"])

# response_format : text
df = df.ai.generate_response(
        prompt="Create a player card with the player's details and a motivational quote",
        response_format="text",
        output_col="card_text"
)

# response_format : json object
df = df.ai.generate_response(
        prompt="Create a player card with the player's details and a motivational quote in JSON",
        response_format="json_object", # Requires "json" in the prompt
        output_col="card_json_object"
)

# response_format : specified json schema
df = df.ai.generate_response(
        prompt="Create a player card with the player's details and a motivational quote",
        response_format={
           "type": "json_schema",
            "json_schema": {
                "name": "player_card_schema",
                "strict": True,
                "schema": {
                    "type": "object",
                    "properties": {
                        "name": {"type": "string"},
                        "age": {"type": "integer"},
                        "sport": {"type": "string"},
                        "position": {"type": "string"},
                        "hometown": {"type": "string"},
                        "stats": {"type": "string", "description": "Key performance metrics or achievements"},
                        "motivational_quote": {"type": "string"},
                    },
                    "required": ["name", "age", "sport", "position", "hometown", "stats", "motivational_quote"],
                    "additionalProperties": False,
                },
            }
        },
        output_col="card_json_schema"
)

display(df)

Diese Beispielcodezelle stellt die folgende Ausgabe bereit:

Screenshot eines Datenrahmens mit einer