Sdílet prostřednictvím


Použití ai.generate_response s PySparkem

Funkce ai.generate_response používá generující AI k vygenerování vlastních textových odpovědí založených na vašich vlastních pokynech s jedním řádkem kódu.

Poznámka:

Přehled

Funkce ai.generate_response je k dispozici pro datové rámce Sparku. Jako parametr musíte zadat název existujícího vstupního sloupce. Musíte také zadat výzvu založenou na řetězci a logickou hodnotu, která označuje, zda má být tento příkaz považován za formátovací řetězec.

Funkce vrátí nový datový rámec s vlastními odpověďmi pro každý vstupní textový řádek uložený ve výstupním sloupci.

Návod

Přečtěte si, jak vytvořit efektivnější výzvy k získání odpovědí vyšší kvality podle pokynů OpenAI pro gpt-4.1.

Syntaxe

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

Parametry

Název Description
prompt
Povinné
Řetězec, který obsahuje pokyny k zobrazení výzvy. Tyto pokyny se použijí u vstupních textových hodnot pro vlastní odpovědi.
is_prompt_template
Volitelný
Logická hodnota označující, jestli je výzva formátovací řetězec nebo literálový řetězec. Pokud je tento parametr nastaven na True, funkce bere v úvahu pouze konkrétní hodnoty řádků z každého sloupce, který se zobrazí ve formátovacím řetězci. V tomto případě se názvy sloupců musí zobrazit mezi složenými závorkami a další sloupce se ignorují. Pokud je tento parametr nastaven na výchozí hodnotu False, funkce považuje všechny hodnoty sloupců za kontext pro každý vstupní řádek.
output_col
Volitelný
Řetězec , který obsahuje název nového sloupce pro ukládání vlastních odpovědí pro každý řádek vstupního textu. Pokud tento parametr nenastavíte, vygeneruje se pro výstupní sloupec výchozí název.
error_col
Volitelný
Řetězec, který obsahuje název nového sloupce pro uložení všech chyb OpenAI, které jsou výsledkem zpracování každého řádku vstupního textu. Pokud tento parametr nenastavíte, vygeneruje se pro sloupec s chybou výchozí název. Pokud u řádku vstupu nejsou žádné chyby, hodnota v tomto sloupci je null.
response_format
Volitelný
Řetězec nebo slovník, který určuje očekávanou strukturu odpovědi modelu. Řetězcové hodnoty lze nastavit na "text" pro volný text nebo "json_object", aby byl výstup platným objektem JSON. type V opačném případě může být pole nastaveno na "json_schema" s vlastním schématem JSON pro vynucení konkrétní struktury odpovědi. Pokud tento parametr není zadaný, vrátí se odpověď jako prostý text.

Návraty

Funkce vrátí datový rámec Sparku , který obsahuje nový sloupec, který obsahuje vlastní textové odpovědi na výzvu pro každý vstupní textový řádek.

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)

Tato ukázková buňka kódu poskytuje následující výstup:

Snímek obrazovky znázorňující datový rámec se sloupci

Příklad formátu odpovědi

Následující příklad ukazuje, jak pomocí parametru response_format zadat různé formáty odpovědí, včetně prostého textu, objektu JSON a vlastního schématu 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)

Tato ukázková buňka kódu poskytuje následující výstup:

Snímek obrazovky znázorňující datový rámec se sloupcem bio a novým sloupcem pro každý zadaný formát s odpovídajícím formátovaným výstupem