Chat completions
client.chat.complete() sends a request and returns the full response as a dict.
Basic usage
response = client.chat.complete(
model="auto",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain quantum computing in one sentence."},
],
)
print(response["choices"][0]["message"]["content"])
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
model | str | Yes | auto for automatic selection, or a specific model identifier, e.g. gpt-4o, claude-sonnet-4-6 |
messages | list[ChatMessage] | Yes | Conversation history |
temperature | float | None | No | Sampling temperature 0–2 |
max_tokens | int | None | No | Maximum tokens in the response |
provider | str | None | No | Force a specific provider, e.g. anthropic |
Targeting a specific provider
response = client.chat.complete(
model="claude-haiku-4-5-20251001",
messages=[{"role": "user", "content": "Hello!"}],
provider="anthropic",
)
Multi-turn conversations
messages = [{"role": "system", "content": "You are a helpful assistant."}]
def chat(user_message: str) -> str:
messages.append({"role": "user", "content": user_message})
response = client.chat.complete(model="auto", messages=messages)
reply = response["choices"][0]["message"]
messages.append(reply)
return reply["content"]
print(chat("What is 2 + 2?"))
print(chat("And multiply that by 10?"))