Поделиться через


Использование ai.generate_response с PySpark

Функция ai.generate_response использует генерирующий ИИ для создания пользовательских текстовых ответов, основанных на собственных инструкциях, с одной строкой кода.

Замечание

Обзор

Функция ai.generate_response доступна для кадров данных Spark. Необходимо указать имя существующего входного столбца в качестве параметра. Кроме того, необходимо указать строковый запрос и логическое значение, указывающее, следует ли рассматривать запрос как строку формата.

Функция возвращает новый кадр данных с пользовательскими ответами для каждой входной текстовой строки, хранящейся в выходном столбце.

Подсказка

Узнайте, как создавать более эффективные запросы на получение ответов более высокого качества, следуя подсказкам OpenAI для gpt-4.1.

Синтаксис

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

Параметры

Имя Description
prompt
Обязательно
Строка, содержащая инструкции по запросу. Эти инструкции применяются к входным текстовым значениям для пользовательских ответов.
is_prompt_template
Необязательно
Логическое значение, указывающее, является ли запрос строкой форматирования или строкой литерала. Если для этого параметра задано значение True, функция учитывает только определенные значения строк из каждого столбца, отображаемого в строке форматирования. В этом случае имена столбцов должны находиться в фигурных скобках, а остальные столбцы игнорируются. Если этот параметр имеет значение по умолчанию False, функция считает все значения столбцов контекстом для каждой входной строки.
output_col
Необязательно
Строка , содержащая имя нового столбца для хранения пользовательских ответов для каждой строки входного текста. Если этот параметр не задан, имя по умолчанию создается для выходного столбца.
error_col
Необязательно
Строка , содержащая имя нового столбца для сохранения любых ошибок OpenAI, возникших в результате обработки каждой строки входного текста. Если этот параметр не задан, для столбца ошибок генерируется имя по умолчанию. Если для строки входных данных нет ошибок, то в этом столбце будет указано значение null.
response_format
Необязательно
Строка или словарь, указывающий ожидаемую структуру ответа модели. Строковые значения можно задать как "text" для свободного текста формы или "json_object", чтобы убедиться, что выходные данные являются допустимым объектом JSON. type В противном случае поле можно задать значение "json_schema" с помощью пользовательской схемы JSON, чтобы применить определенную структуру ответа. Если этот параметр не указан, ответ возвращается как обычный текст.

Возвраты

Функция возвращает кадр данных Spark , содержащий новый столбец, содержащий настраиваемые текстовые ответы на запрос для каждой входной текстовой строки.

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)

В этом примере ячейка кода предоставляет следующие выходные данные:

Снимок экрана: фрейм данных со столбцами

Пример формата ответа

В следующем примере показано, как использовать response_format параметр для указания различных форматов ответа, включая обычный текст, объект JSON и настраиваемую схему JSON.

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

В этом примере ячейка кода предоставляет следующие выходные данные:

Снимок экрана: кадр данных с столбцом bio и новым столбцом для каждого указанного формата с соответствующим форматированными выходными данными.