Del via


Bruk ai.generate_response med PySpark

Funksjonen ai.generate_response bruker generativ AI til å generere tilpassede tekstsvar som er basert på dine egne instruksjoner, med en enkelt kodelinje.

Note

Oversikt

Funksjonen ai.generate_response er tilgjengelig for Spark DataFrames. Du må angi navnet på en eksisterende inndatakolonne som parameter. Du må også angi en strengbasert ledetekst, og en boolsk som angir om denne ledeteksten skal behandles som en formatstreng.

Funksjonen returnerer en ny DataFrame, med egendefinerte svar for hver inndatatekstrad som er lagret i en utdatakolonne.

Tip

Lær hvordan du lager mer effektive spørsmål for å få svar av høyere kvalitet ved å følge OpenAIs tipstips for gpt-4.1.

Syntaks

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

Parametere

Name Beskrivelse
prompt
Obligatorisk
En streng som inneholder ledetekstinstruksjoner. Disse instruksjonene brukes på inndatatekstverdier for egendefinerte svar.
is_prompt_template
Valgfritt
En boolsk verdi som angir om ledeteksten er en formatstreng eller en litteral streng. Hvis denne parameteren er satt til True, vurderer funksjonen bare de bestemte radverdiene fra hver kolonne som vises i formatstrengen. I dette tilfellet må disse kolonnenavnene vises mellom klammeparenteser og andre kolonner ignoreres. Hvis denne parameteren er satt til standardverdien for False, anser funksjonen alle kolonneverdier som kontekst for hver inndatarad.
output_col
Valgfritt
En streng som inneholder navnet på en ny kolonne for å lagre egendefinerte svar for hver rad med inndatatekst. Hvis du ikke angir denne parameteren, genereres et standardnavn for utdatakolonnen.
error_col
Valgfritt
En streng som inneholder navnet på en ny kolonne for å lagre eventuelle OpenAI-feil som skyldes behandling av hver rad med inndatatekst. Hvis du ikke angir denne parameteren, genereres et standardnavn for feilkolonnen. Hvis det ikke er noen feil for en rad med inndata, er verdien i denne kolonnen null.
response_format
Valgfritt
En streng eller ordbok som spesifiserer den forventede strukturen til modellens respons. Strengverdiene kan settes til «tekst» for fri tekst, eller «json_object» for å sikre at utdataene er et gyldig JSON-objekt. Ellers type kan feltet settes til "json_schema" med et tilpasset JSON-skjema for å håndheve en spesifikk responsstruktur. Hvis denne parameteren ikke er oppgitt, returneres svaret som klartekst.

Returnerer

Funksjonen returnerer en Spark DataFrame som inneholder en ny kolonne som inneholder egendefinerte tekstsvar på ledeteksten for hver inndatatekstrad.

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 eksempelkodecellen gir følgende utdata:

Skjermbilde som viser en dataramme med kolonnene «produkt» og «svar». «Svar»-kolonnen inneholder en slagkraftig emnelinje for produktet.

Eksempel på responsformat

Følgende eksempel viser hvordan man bruker parameteren response_format for å spesifisere ulike svarformater, inkludert ren tekst, et JSON-objekt og et tilpasset JSON-skjema.

# 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 eksempelkodecellen gir følgende utdata:

Skjermbilde som viser en dataramme med en 'bio'-kolonne, og en ny kolonne for hvert spesifisert format, med tilsvarende formatert utdata.