Compartir a través de


Uso de ai.generate_response con PySpark

La función ai.generate_response emplea IA generativa para generar, con una sola línea de código, respuestas de texto personalizadas basadas en sus propias instrucciones.

Nota:

Información general

La ai.generate_response función está disponible para DataFrames de Spark. Debe especificar el nombre de una columna de entrada existente como parámetro. También debe especificar un símbolo del sistema basado en cadenas y un valor booleano que indique si ese mensaje debe tratarse como una cadena de formato.

La función devuelve un nuevo DataFrame, con respuestas personalizadas para cada fila de texto de entrada almacenada en una columna de salida.

Sugerencia

Obtenga información sobre cómo crear mensajes más eficaces para obtener respuestas de mayor calidad siguiendo las sugerencias de solicitud de OpenAI para gpt-4.1.

Syntax

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

Parámetros

Nombre Description
prompt
Obligatorio
Cadena que contiene instrucciones de aviso. Estas instrucciones se aplican a los valores de texto de entrada para las respuestas personalizadas.
is_prompt_template
Opcional
Valor booleano que indica si el símbolo del sistema es una cadena de formato o una cadena literal. Si este parámetro se establece Trueen , la función solo tiene en cuenta los valores de fila específicos de cada columna que aparece en la cadena de formato. En este caso, esos nombres de columna deben aparecer entre llaves y otras columnas se omiten. Si este parámetro se establece en su valor predeterminado de , la función considera todos los valores de Falsecolumna como contexto para cada fila de entrada.
output_col
Opcional
Cadena que contiene el nombre de una nueva columna para almacenar respuestas personalizadas para cada fila de texto de entrada. Si no establece este parámetro, se genera un nombre predeterminado para la columna de salida.
error_col
Opcional
La cadena que contiene el nombre de una nueva columna para almacenar los errores de OpenAI que resultan del procesamiento de cada fila de texto de entrada. Si no establece este parámetro, se genera un nombre predeterminado para la columna de error. Si no hay ningún error para una fila de entrada, el valor de esta columna es null.
response_format
Opcional
Una cadena o diccionario que especifica la estructura esperada de la respuesta del modelo. Los valores de cadena se pueden establecer en "text" para texto de forma libre o "json_object" para asegurarse de que la salida es un objeto JSON válido. De lo contrario, el type campo se puede establecer en "json_schema" con un esquema JSON personalizado para aplicar una estructura de respuesta específica. Si no se proporciona este parámetro, la respuesta se devuelve como texto sin formato.

Devoluciones

La función devuelve un DataFrame de Spark que incluye una nueva columna que contiene respuestas de texto personalizadas al mensaje de cada fila de texto de entrada.

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)

Esta celda de código de ejemplo proporciona la siguiente salida:

Captura de pantalla que muestra una trama de datos con columnas

Ejemplo de formato de respuesta

En el ejemplo siguiente se muestra cómo usar el response_format parámetro para especificar diferentes formatos de respuesta, como texto sin formato, un objeto JSON y un esquema JSON personalizado.

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

Esta celda de código de ejemplo proporciona la siguiente salida:

Captura de pantalla que muestra una trama de datos con una columna