7.7.2. OPENAI-02 — Conversations and Parameters

This tutorial covers multi-turn conversations, the optional request parameters, and reading token usage.

7.7.2.1. Multi-turn conversations

A chat request carries the whole conversation as an ordered array of messages. The model sees every prior turn. Roles are system (instructions), user, assistant (previous model replies), and tool (function results — see OPENAI-04 — Tools and Function Calling):

let req = ChatCompletionRequest(model = "gpt-4o-mini", messages <- [
    ChatMessage(role = "system", content = "You are a terse assistant."),
    ChatMessage(role = "user", content = "Remember the number 7."),
    ChatMessage(role = "assistant", content = "Got it — 7."),
    ChatMessage(role = "user", content = "What number did I ask you to remember?")])
let res = chat(client, req)

7.7.2.2. Optional parameters

ChatCompletionRequest exposes the common knobs as @optional fields. Because options rtti is set, default-valued optionals are omitted from the wire — only the ones you set are sent. Set them with named arguments (use <- for the array-valued stop):

let req = ChatCompletionRequest(model = "gpt-4o-mini",
    messages <- [ChatMessage(role = "user", content = "Write one word.")],
    temperature = 0.2,
    max_tokens = 16,
    seed = 42,
    stop <- ["\n\n"])

Other optionals include top_p, n, max_completion_tokens, frequency_penalty, presence_penalty, user, and tool_choice.

7.7.2.3. Token usage

Most responses include a Usage breakdown — prompt, completion, and total tokens — useful for cost tracking and staying within context limits:

let u = res.response.usage
print("prompt={u.prompt_tokens} completion={u.completion_tokens} total={u.total_tokens}\n")

7.7.2.4. Quick Reference

Field / value

Meaning

messages (array of ChatMessage)

The full conversation, in order

role

system / user / assistant / tool

temperature, top_p

Sampling controls

max_tokens, seed, stop

Length cap, determinism, stop sequences

response.usage

Prompt / completion / total token counts