Använda ai.generate_response med PySpark

Funktionen ai.generate_response använder generativ AI för att generera anpassade textsvar som baseras på dina egna instruktioner, med en enda kodrad.

Anmärkning

Översikt

Funktionen ai.generate_response är tillgänglig för Spark DataFrames. Du måste ange namnet på en befintlig indatakolumn som en parameter. Du måste också ange en strängbaserad prompt och ett booleskt värde som anger om prompten ska behandlas som en formatsträng.

Funktionen returnerar en ny DataFrame med anpassade svar för varje textrad som lagras i en utdatakolumn.

Tips/Råd

Lär dig hur du skapar effektivare uppmaningar för att få svar av högre kvalitet genom att följa OpenAI:s tips för gpt-4.1.

Syntax

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

Parameterar

Namn Description
prompt
Krävs
En sträng som innehåller anvisningarna i fråga. Dessa instruktioner tillämpas på indatatextvärden för anpassade svar.
is_prompt_template
Valfritt
Ett booleskt värde som anger om prompten är en formatsträng eller en literalsträng. Om den här parametern är inställd på Truetar funktionen endast hänsyn till de specifika radvärdena från varje kolumn som visas i formatsträngen. I det här fallet måste dessa kolumnnamn visas mellan klammerparenteser och andra kolumner ignoreras. Om den här parametern är inställd på standardvärdet Falsetar funktionen hänsyn till alla kolumnvärden som kontext för varje indatarad.
output_col
Valfritt
En sträng som innehåller namnet på en ny kolumn för att lagra anpassade svar för varje rad med indatatext. Om du inte anger den här parametern genereras ett standardnamn för utdatakolumnen.
error_col
Valfritt
En sträng som innehåller namnet på en ny kolumn för att lagra eventuella OpenAI-fel som uppstår vid bearbetning av varje rad med indatatext. Om du inte anger den här parametern genereras ett standardnamn för felkolumnen. Om det inte finns några fel för en rad med indata är värdet i den här kolumnen null.
response_format
Valfritt
En sträng eller ordlista som anger den förväntade strukturen för modellens svar. Strängvärdena kan anges till "text" för fritext eller "json_object" för att säkerställa att utdata är ett giltigt JSON-objekt. Annars kan fältet type anges till "json_schema" med ett anpassat JSON-schema för att framtvinga en specifik svarsstruktur. Om den här parametern inte anges returneras svaret som oformaterad text.

Retur

Funktionen returnerar en Spark DataFrame som innehåller en ny kolumn som innehåller anpassade textsvar i prompten för varje textrad.

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)

Den här exempelkodcellen innehåller följande utdata:

Skärmbild som visar en dataram med kolumnerna

Exempel på svarsformat

I följande exempel visas hur du använder parametern response_format för att ange olika svarsformat, inklusive oformaterad text, ett JSON-objekt och ett anpassat 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)

Den här exempelkodcellen innehåller följande utdata:

Skärmbild som visar en dataram med en