Partager via


Utiliser ai.generate_response avec PySpark

La fonction utilise l’IA ai.generate_response générative pour générer des réponses de texte personnalisées basées sur vos propres instructions, avec une seule ligne de code.

Note

Aperçu

La ai.generate_response fonction est disponible pour les DataFrames Spark. Vous devez spécifier le nom d’une colonne d’entrée existante en tant que paramètre. Vous devez également spécifier une invite basée sur une chaîne et une valeur booléenne qui indique si cette invite doit être traitée comme une chaîne de format.

La fonction retourne un nouveau DataFrame, avec des réponses personnalisées pour chaque ligne de texte d’entrée stockée dans une colonne de sortie.

Conseil / Astuce

Découvrez comment créer des invites plus efficaces pour obtenir des réponses de qualité supérieure en suivant les conseils d’invite d’OpenAI pour gpt-4.1.

Syntaxe

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

Paramètres

Nom Descriptif
prompt
Obligatoire
Une chaîne qui contient des instructions d’invite. Ces instructions sont appliquées aux valeurs de texte d’entrée pour les réponses personnalisées.
is_prompt_template
Optional
Valeur booléenne qui indique si l’invite est une chaîne de format ou une chaîne littérale. Si ce paramètre est défini sur True, la fonction considère uniquement les valeurs spécifiques de ligne de chaque colonne qui apparaissent dans la chaîne de format. Dans ce cas, ces noms de colonnes doivent apparaître entre accolades, et d'autres colonnes sont ignorées. Si ce paramètre est défini sur sa valeur par défaut, la fonction considère toutes les valeurs de Falsecolonne comme contexte pour chaque ligne d’entrée.
output_col
Optional
Chaîne qui contient le nom d’une nouvelle colonne pour stocker des réponses personnalisées pour chaque ligne de texte d’entrée. Si vous ne définissez pas ce paramètre, un nom par défaut est généré pour la colonne de sortie.
error_col
Optional
Chaîne qui contient le nom d’une nouvelle colonne pour stocker toutes les erreurs OpenAI résultant du traitement de chaque ligne de texte d’entrée. Si vous ne définissez pas ce paramètre, un nom par défaut est généré pour la colonne d’erreur. En l’absence d’erreurs pour une ligne d’entrée, la valeur de cette colonne est null.
response_format
Optional
Chaîne oudictionnaire qui spécifie la structure attendue de la réponse du modèle. Les valeurs de chaîne peuvent être définies sur « text » pour le texte de forme libre, ou « json_object » pour garantir que la sortie est un objet JSON valide. Sinon, le type champ peut être défini sur « json_schema » avec un schéma JSON personnalisé pour appliquer une structure de réponse spécifique. Si ce paramètre n’est pas fourni, la réponse est retournée sous forme de texte brut.

Retours

La fonction retourne un DataFrame Spark qui inclut une nouvelle colonne qui contient des réponses de texte personnalisées à l’invite de chaque ligne de texte d’entrée.

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)

Cet exemple de cellule de code fournit la sortie suivante :

Capture d’écran montrant une trame de données avec des colonnes « product » et « response ». La colonne « response » contient une ligne d’objet percutant pour le produit.

Exemple de format de réponse

L’exemple suivant montre comment utiliser le response_format paramètre pour spécifier différents formats de réponse, notamment du texte brut, un objet JSON et un schéma JSON personnalisé.

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

Cet exemple de cellule de code fournit la sortie suivante :

Capture d’écran montrant une trame de données avec une colonne « bio » et une nouvelle colonne pour chaque format spécifié, avec sa sortie mise en forme correspondante.