Del via


Brug ai.generate_response med PySpark

Funktionen ai.generate_response bruger generativ AI til at generere brugerdefinerede tekstsvar, der er baseret på dine egne instruktioner, med en enkelt kodelinje.

Notat

Oversigt

Funktionen ai.generate_response er tilgængelig for Spark DataFrames. Du skal angive navnet på en eksisterende inputkolonne som en parameter. Du skal også angive en strengbaseret prompt og en boolesk prompt, der angiver, om prompten skal behandles som en formatstreng.

Funktionen returnerer en ny DataFrame med brugerdefinerede svar for hver inputtekstrække, der er gemt i en outputkolonne.

Tips

Lær, hvordan du laver mere effektive prompter for at få svar af højere kvalitet ved at følge OpenAI's prompting-tips til gpt-4.1.

Syntaks

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

Parametre

Navn Beskrivelse
prompt
Påkrævet
En streng , der indeholder promptinstruktioner. Disse instruktioner anvendes på inputtekstværdier for brugerdefinerede svar.
is_prompt_template
Valgfrit
En boolesk værdi, der angiver, om prompten er en formatstreng eller en konstantstreng. Hvis denne parameter er angivet til True, tager funktionen kun de specifikke rækkeværdier fra hver kolonne, der vises i formatstrengen, i betragtning. I dette tilfælde skal disse kolonnenavne vises mellem krøllede klammeparenteser, og andre kolonner ignoreres. Hvis denne parameter er angivet til standardværdien for False, betragter funktionen alle kolonneværdier som kontekst for hver inputrække.
output_col
Valgfrit
En streng , der indeholder navnet på en ny kolonne til lagring af brugerdefinerede svar for hver række med inputtekst. Hvis du ikke angiver denne parameter, genereres der et standardnavn for outputkolonnen.
error_col
Valgfrit
En streng , der indeholder navnet på en ny kolonne for at gemme eventuelle OpenAI-fejl, der skyldes behandling af hver række med inputtekst. Hvis du ikke angiver denne parameter, genereres der et standardnavn for fejlkolonnen. Hvis der ikke er nogen fejl for en række med input, er værdien i denne kolonne null.
response_format
Valgfrit
En streng eller ordbog , der specificerer den forventede struktur af modellens respons. Strengværdierne kan sættes til "tekst" for fri tekst eller "json_object" for at sikre, at outputtet er et gyldigt JSON-objekt. Ellers type kan feltet sættes til "json_schema" med et brugerdefineret JSON-skema for at håndhæve en specifik responsstruktur. Hvis denne parameter ikke er angivet, returneres svaret som klartekst.

Returnerer

Funktionen returnerer en Spark DataFrame , der indeholder en ny kolonne, der indeholder brugerdefinerede tekstsvar på prompten for hver inputtekstrække.

Eksempel

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

Denne eksempelkodecelle indeholder følgende output:

Skærmbillede, der viser en dataramme med kolonnerne 'produkt' og 'svar'. Kolonnen

Eksempel på responsformat

Følgende eksempel viser, hvordan man bruger parameteren response_format til at specificere forskellige svarformater, herunder almindelig tekst, et JSON-objekt og et brugerdefineret JSON-skema.

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

Denne eksempelkodecelle indeholder følgende output:

Skærmbillede, der viser en dataframe med en 'bio'-kolonne og en ny kolonne for hvert angivet format med det tilsvarende formaterede output.