Leer AI met Python · Les

OpenAI API: chat.completions en streaming

OpenAI-client, messages-lijst, de rollen system/user/assistant, streamen met stream=True.

Les 1 van 413 stappen

OpenAI API: chat.completions en streaming is een gratis Leer AI met Python-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer AI met Python. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer AI met Python bevat in totaal 4 lessen.

Kennismaken met de OpenAI Python-SDK

Het Python-pakket openai is de officiële manier om met OpenAI-modellen zoals GPT-4o te communiceren. Installeer het met pip install openai en je krijgt één OpenAI-clientklasse die authenticatie, nieuwe pogingen en het opbouwen van verzoeken voor je afhandelt.

Elke aanroep die je doet verloopt via deze client. Daarom is het de standaardaanpak om hem eenmaal te maken en opnieuw te gebruiken.

pip install openai

from openai import OpenAI

De client maken

Maak de client met OpenAI(). Standaard leest deze je sleutel uit de omgevingsvariabele OPENAI_API_KEY, zodat geheimen niet in je broncode terechtkomen.

Je kunt de sleutel ook expliciet meegeven, maar omgevingsvariabelen zijn de aanbevolen aanpak voor productie-apps.

from openai import OpenAI

# Reads OPENAI_API_KEY from the environment
client = OpenAI()

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

De lijst met berichten

Chatmodellen worden aangestuurd door een lijst met berichten. Elk bericht is een dict met een role en content. De drie belangrijkste rollen zijn system (instructies), user (de mens) en assistant (het model).

Deze lijst bevat de volledige gesprekscontext die het model bij elke aanroep ziet.

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

Je eerste modelantwoord

Roep client.chat.completions.create() aan met een model en je messages. De antwoordtekst staat op response.choices[0].message.content.

De API retourneert een lijst met keuzes, maar normaal gesproken lees je de eerste.

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

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

Uitvoer beheren met parameters

Twee parameters bepalen de vorm van het antwoord: temperature (0 = deterministisch, hoger = creatiever) en max_tokens (beperkt de lengte van het antwoord). Lagere temperaturen zijn geschikt voor feitelijke taken; hogere voor brainstormen.

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

Waarom antwoorden streamen?

Zonder streaming wacht je tot het volledige antwoord klaar is voordat je iets ziet. Met streaming komen tokens binnen zodra ze worden gegenereerd, zodat een gebruikersinterface tekst in realtime kan weergeven, net als ChatGPT.

Je schakelt dit in met stream=True. Daardoor verandert de retourwaarde van één object in een iterator.

Streaming inschakelen

Geef stream=True door aan create(). In plaats van een voltooid antwoord krijg je nu een generator die fragmenten oplevert terwijl het model ze genereert.

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

Over fragmenten itereren

Loop over de stream. Elk fragment bevat een gedeeltelijk stuk tekst in chunk.choices[0].delta.content. In vroege en laatste fragmenten kan daar None staan, dus controleer dat voordat je de tekst afdrukt.

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

Delta versus message begrijpen

In een normaal antwoord lees je message.content (het volledige antwoord). In een stream lees je delta.content (alleen het nieuwe stuk). Het woord delta betekent "de wijziging" sinds het vorige fragment.

Door alle delta's samen te voegen reconstrueer je het volledige bericht.

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

Gesprekken met meerdere beurten

Om een gesprek voort te zetten, voeg je het antwoord van de assistent weer toe aan messages en voeg je daarna het volgende gebruikersbericht toe. Het model is stateless, dus JE beheert de geschiedenis.

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)

Tokengebruik bekijken

Antwoorden zonder streaming bevatten een usage-object met prompt_tokens, completion_tokens en total_tokens. Zo houd je de API-kosten bij en begroot je ze, omdat je per token betaalt.

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

Korte controle

Test je begrip van streaming.

Samenvatting: Chat Completions en streaming

Je hebt geleerd hoe je een OpenAI-client maakt, een messages-lijst met de rollen system/user/assistant opbouwt en chat.completions.create() aanroept. Normale antwoorden lees je uit choices[0].message.content.

Met stream=True itereer je over fragmenten en lees je delta.content voor uitvoer in realtime. Je houdt de geschiedenis bij door antwoorden toe te voegen en houdt de kosten bij via het usage-object.

Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
53
Lessen
225

Veelgestelde vragen

Is de les “OpenAI API: chat.completions en streaming” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “OpenAI API: chat.completions en streaming”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer AI met Python bevat in totaal 4 lessen.

Wat leer ik in “OpenAI API: chat.completions en streaming”?

OpenAI-client, messages-lijst, de rollen system/user/assistant, streamen met stream=True. Je oefent met Leer AI met Python door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Leer AI met Python te beginnen?

Ervaring vooraf is niet nodig. Leer AI met Python op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “OpenAI API: chat.completions en streaming”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Leer AI met Python?

Ja. Elke les over Leer AI met Python bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. OpenAI API: chat.completions en streaming
  2. De Anthropic Claude API in Python
  3. Function calling en toolgebruik met LLM's
  4. Prompt engineering voor productie-LLM-apps
← Terug naar Leer AI met Python