Condividi tramite


Usare ai.generate_response con PySpark

La ai.generate_response funzione usa l'intelligenza artificiale generativa per generare risposte di testo personalizzate basate sulle proprie istruzioni, con una singola riga di codice.

Annotazioni

Informazioni generali

La ai.generate_response funzione è disponibile per i dataframe Spark. È necessario specificare il nome di una colonna di input esistente come parametro. È inoltre necessario specificare un prompt basato su stringa e un valore booleano che indica se tale richiesta deve essere considerata come stringa di formato.

La funzione restituisce un nuovo dataframe, con risposte personalizzate per ogni riga di testo di input archiviata in una colonna di output.

Suggerimento

Informazioni su come creare richieste più efficaci per ottenere risposte di qualità superiore seguendo i suggerimenti di OpenAI per gpt-4.1.

Sintassi

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

Parametri

Nome Description
prompt
Obbligatorio
Stringa che contiene istruzioni per il prompt. Queste istruzioni vengono applicate ai valori di testo di input per le risposte personalizzate.
is_prompt_template
Opzionale
Valore booleano che indica se il prompt è una stringa di formato o una stringa letterale. Se questo parametro è impostato su True, la funzione considera solo i valori di riga specifici di ogni colonna visualizzata nella stringa di formato. In questo caso, tali nomi di colonna devono essere visualizzati tra parentesi graffe e altre colonne vengono ignorate. Se questo parametro è impostato sul valore predefinito di , la funzione considera tutti i valori di Falsecolonna come contesto per ogni riga di input.
output_col
Opzionale
Stringa che contiene il nome di una nuova colonna per archiviare risposte personalizzate per ogni riga di testo di input. Se non si imposta questo parametro, viene generato un nome predefinito per la colonna di output.
error_col
Opzionale
Stringa contenente il nome di una nuova colonna per archiviare eventuali errori OpenAI risultanti dall'elaborazione di ogni riga di testo di input. Se non si imposta questo parametro, viene generato un nome predefinito per la colonna di errore. Se non sono presenti errori per una riga di input, il valore in questa colonna è null.
response_format
Opzionale
Stringa o dizionario che specifica la struttura prevista della risposta del modello. I valori stringa possono essere impostati su "text" per il testo in formato libero o su "json_object" per assicurarsi che l'output sia un oggetto JSON valido. In caso contrario, il type campo può essere impostato su "json_schema" con uno schema JSON personalizzato per applicare una struttura di risposta specifica. Se questo parametro non viene specificato, la risposta viene restituita come testo normale.

Restituzioni

La funzione restituisce un dataframe Spark che include una nuova colonna contenente risposte di testo personalizzate alla richiesta di ogni riga di testo di input.

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)

Questa cella di codice di esempio fornisce l'output seguente:

Screenshot che mostra un data frame con le colonne 'product' e 'response'. La colonna 'response' contiene una riga di oggetto incisiva per il prodotto.

Esempio di formato di risposta

L'esempio seguente illustra come usare il response_format parametro per specificare formati di risposta diversi, tra cui testo normale, un oggetto JSON e uno schema JSON personalizzato.

# 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)

Questa cella di codice di esempio fornisce l'output seguente:

Screenshot che mostra un frame di dati con una colonna