Lær AI med Python · leksjon

OpenAI API: chat.completions og strømming

OpenAI-klient, meldingsliste, system-/user-/assistant-roller og strømming med stream=True.

Leksjon 1 av 413 trinn

OpenAI API: chat.completions og strømming er en gratis leksjon i Lær AI med Python på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lær AI med Python, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.

Bli kjent med OpenAI Python SDK

Python-pakken openai er den offisielle måten å kommunisere med OpenAI-modeller som GPT-4o på. Installer den med pip install openai, så får De én OpenAI-klientklasse som håndterer autentisering, nye forsøk og bygging av forespørsler.

Alle kall går gjennom denne klienten, så standardmønsteret er å opprette den én gang og gjenbruke den.

pip install openai

from openai import OpenAI

Opprette klienten

Opprett klienten med OpenAI(). Som standard leser den nøkkelen fra miljøvariabelen OPENAI_API_KEY, slik at hemmeligheter holdes utenfor kildekoden.

Nøkkelen kan også sendes inn eksplisitt, men miljøvariabler er den anbefalte tilnærmingen i produksjonsapplikasjoner.

from openai import OpenAI

# Reads OPENAI_API_KEY from the environment
client = OpenAI()

# Or pass it explicitly (not recommended)
client = OpenAI(api_key="sk-...")

Listen med meldinger

Chatmodeller styres av en liste med meldinger. Hver melding er en dict med en role og et content. De tre sentrale rollene er system (instruksjoner), user (mennesket) og assistant (modellen).

Denne listen er hele samtalekonteksten modellen ser ved hvert kall.

messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "What is the capital of France?"}
]

Din første completion

Kall client.chat.completions.create() med en model og dine messages. Svarteksten ligger på response.choices[0].message.content.

API-et returnerer en liste med alternativer, men ved vanlig bruk leser du det første.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages
)

print(response.choices[0].message.content)

Styre utdata med parametere

To parametere former svaret: temperature (0 = deterministisk, høyere = mer kreativt) og max_tokens (begrenser lengden på svaret). Lavere temperaturer passer for faktabaserte oppgaver, mens høyere temperaturer passer bedre til idémyldring.

response = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    temperature=0.2,
    max_tokens=300
)

Hvorfor strømme svar?

Uten strømming må du vente på hele svaret før du ser noe. Med strømming kommer tokens etter hvert som de genereres, slik at et brukergrensesnitt kan vise tekst i sanntid, slik ChatGPT gjør.

Du aktiverer dette med stream=True, som endrer returverdien fra ett enkelt objekt til en iterator.

Aktivere strømming

Send stream=True til create(). I stedet for et ferdig svar får du nå en generator som gir chunks etter hvert som modellen produserer dem.

stream = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    stream=True
)

Iterere over chunks

Gå gjennom strømmen i en løkke. Hver chunk inneholder en del av teksten i chunk.choices[0].delta.content. De første og siste chunkene kan ha None der, så kontroller verdien før du skriver den ut.

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta is not None:
        print(delta, end="", flush=True)

Forstå delta kontra message

I et vanlig svar leser du message.content (hele svaret). I en strøm leser du delta.content (bare den nye delen). Ordet delta betyr «endringen» siden forrige chunk.

Ved å sette sammen alle deltaene rekonstruerer du hele meldingen.

full_text = ""
for chunk in stream:
    piece = chunk.choices[0].delta.content or ""
    full_text += piece
print("\nFinal:", full_text)

Samtaler med flere turer

Hvis du vil fortsette en samtale, legger du assistentens svar tilbake i messages og legger deretter til den neste brukermeldingen. Modellen er tilstandsløs, så det er DE som vedlikeholder historikken.

messages.append({"role": "assistant", "content": response.choices[0].message.content})
messages.append({"role": "user", "content": "And its population?"})

follow_up = client.chat.completions.create(model="gpt-4o", messages=messages)

Kontrollere tokenbruk

Svar uten strømming inneholder et usage-objekt med prompt_tokens, completion_tokens og total_tokens. Slik kan du følge med på og budsjettere API-kostnadene, siden faktureringen skjer per token.

print(response.usage.prompt_tokens)
print(response.usage.completion_tokens)
print(response.usage.total_tokens)

Hurtigsjekk

Test forståelsen din av strømming.

Oppsummering: Chat Completions og strømming

Du har lært å opprette en OpenAI-klient, bygge en messages-liste med rollene system, user og assistant, og kalle chat.completions.create(). Du leser vanlige svar fra choices[0].message.content.

Med stream=True itererer du over chunks og leser delta.content for utdata i sanntid, vedlikeholder historikken ved å legge til svar og følger med på kostnadene via usage-objektet.

Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
53
Leksjoner
225

Ofte stilte spørsmål

Er leksjonen «OpenAI API: chat.completions og strømming» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær AI med Python, inkludert «OpenAI API: chat.completions og strømming», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.

Hva lærer jeg i «OpenAI API: chat.completions og strømming»?

OpenAI-klient, meldingsliste, system-/user-/assistant-roller og strømming med stream=True. Du øver på Lær AI med Python med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Lær AI med Python?

Ingen tidligere erfaring er nødvendig. Lær AI med Python på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «OpenAI API: chat.completions og strømming»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Lær AI med Python-leksjonen?

Ja. Alle Lær AI med Python-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. OpenAI API: chat.completions og strømming
  2. Anthropic Claude API i Python
  3. Funksjonskall og verktøybruk med LLM-er
  4. Promptutvikling for LLM-apper i produksjon
← Tilbake til Lær AI med Python