Skip to content

Chat Completions

De chat methode maakt tekstgeneratie en conversaties mogelijk met de Vondr AI modellen.

Basis gebruik

python
from vondr import VondrClient

client = VondrClient()    
response = client.chat(
    messages=[{"role": "user", "content": "Leg quantumcomputing uit"}],
    model="vondr-fast",
    temperature=0.7,
    max_tokens=4096,
)
print(response.choices[0].message.content)

Parameters

ParameterTypeStandaardBeschrijving
messageslist[dict]verplichtLijst van berichten in de conversatie
modelstrvondr-codeModel om te gebruiken
temperaturefloat0.7Sampling temperatuur (0-2)
max_tokensint4096Maximum aantal tokens
top_pfloat1.0Nucleus sampling parameter
response_formatdictNoneOptioneel response format
thinking_budgetintNone'Thinking' budget voor reasoning modellen
toolslist[dict]NoneLijst van tools die het model kan aanroepen
tool_choicestr of dictNoneBepaalt welke tool wordt aangeroepen

Berichtformaat

Elk bericht in de messages lijst heeft de volgende structuur:

python
{
    "role": "user",      # "system", "user", of "assistant"
    "content": "Tekst"   # De inhoud van het bericht
}

Systeem prompt

Gebruik een system bericht om context of instructies te geven:

python
response = client.chat([
    {"role": "system", "content": "Je bent een behulpzame assistent die in het Nederlands antwoordt."},
    {"role": "user", "content": "Wat is de hoofdstad van Frankrijk?"}
])

Conversatie geschiedenis

Voor een multi-turn conversatie geef je de hele geschiedenis mee:

python
messages = [
    {"role": "user", "content": "Mijn naam is Milan"},
    {"role": "assistant", "content": "Hallo Milan! Leuk je te ontmoeten."},
    {"role": "user", "content": "Wat is mijn naam?"}
]

response = client.chat(messages)
# Antwoord: "Je naam is Milan."

Modellen

vondr-fast

Snel algemeen model voor de meeste taken:

python
response = client.chat(
    messages=[{"role": "user", "content": "Schrijf een haiku over programmeren"}],
    model="vondr-fast"
)

vondr-code

Geoptimaliseerd voor code generatie en uitleg:

python
response = client.chat(
    messages=[{"role": "user", "content": "Schrijf een Python functie die fibonacci berekent"}],
    model="vondr-code"
)

vondr-think

Reasoning model met 'thinking' budget voor complexe taken:

python
response = client.chat(
    messages=[{"role": "user", "content": "Los dit wiskundeprobleem op: ..."}],
    model="vondr-think",
    thinking_budget=10000
)

JSON Response

Vraag om een gestructureerde JSON response:

python
response = client.chat(
    messages=[{"role": "user", "content": "Geef 3 landen met hun hoofdsteden"}],
    response_format={"type": "json_object"}
)

import json
data = json.loads(response.choices[0].message.content)

Response object

De response is een ChatCompletionResponse object:

python
response = client.chat([{"role": "user", "content": "Hallo"}])

# Het gegenereerde antwoord
print(response.choices[0].message.content)

# Finish reason
print(response.choices[0].finish_reason)  # "stop", "length", etc.

# Token gebruik
print(response.usage.prompt_tokens)
print(response.usage.completion_tokens)
print(response.usage.total_tokens)

Tool Calling

Met tool calling kun je het model toegang geven tot externe functies. Het model kan beslissen wanneer een tool aan te roepen en met welke argumenten.

python
response = client.chat(
    messages=[{"role": "user", "content": "Wat is het weer in Amsterdam?"}],
    tools=[{
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Haal het weer op",
            "parameters": {
                "type": "object",
                "properties": {"location": {"type": "string"}},
                "required": ["location"]
            }
        }
    }]
)

if response.choices[0].message.tool_calls:
    # Model wil een tool aanroepen
    tool_call = response.choices[0].message.tool_calls[0]
    print(f"Tool: {tool_call.function.name}")

Voor volledige documentatie over tool calling, zie de Tool Calling pagina.

Asynchrone versie

python
from vondr import AsyncVondrClient

client = AsyncVondrClient()
response = await client.chat([
    {"role": "user", "content": "Hallo!"}
])
print(response.choices[0].message.content)