Skip to main content

Chat Completions

Generate text responses using chat-based models with the familiar OpenAI-compatible interface.

Prerequisites

pip install apertis

Get your API Key from Apertis

Basic Usage

from apertis import Apertis

def main():
client = Apertis()

response = client.chat.completions.create(
model="gpt-4.1-mini",
messages=[
{"role": "user", "content": "Explain quantum computing in simple terms."}
]
)

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

if __name__ == "__main__":
main()

Multi-Turn Conversations

from apertis import Apertis

def main():
client = Apertis()

messages = [
{"role": "system", "content": "You are a helpful Python tutor."},
{"role": "user", "content": "What is a list comprehension?"},
]

response = client.chat.completions.create(
model="claude-sonnet-4.5",
messages=messages
)

print("Assistant:", response.choices[0].message.content)

# Continue the conversation
messages.append({"role": "assistant", "content": response.choices[0].message.content})
messages.append({"role": "user", "content": "Can you show me an example?"})

response = client.chat.completions.create(
model="claude-sonnet-4.5",
messages=messages
)

print("\nAssistant:", response.choices[0].message.content)

if __name__ == "__main__":
main()

Configuration Options

from apertis import Apertis

def main():
client = Apertis()

response = client.chat.completions.create(
model="gpt-4.1",
messages=[
{"role": "user", "content": "Write a creative story opening."}
],
temperature=0.9, # Higher = more creative (0.0 - 2.0)
max_tokens=500, # Maximum response length
top_p=0.95, # Nucleus sampling
frequency_penalty=0.5, # Reduce repetition
presence_penalty=0.5, # Encourage new topics
)

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

if __name__ == "__main__":
main()

Response Format

from apertis import Apertis

def main():
client = Apertis()

response = client.chat.completions.create(
model="gpt-4.1-mini",
messages=[
{"role": "user", "content": "Hello!"}
]
)

# Access response data
print(f"Model: {response.model}")
print(f"Content: {response.choices[0].message.content}")
print(f"Role: {response.choices[0].message.role}")
print(f"Finish Reason: {response.choices[0].finish_reason}")

# Token usage
print(f"\nPrompt Tokens: {response.usage.prompt_tokens}")
print(f"Completion Tokens: {response.usage.completion_tokens}")
print(f"Total Tokens: {response.usage.total_tokens}")

if __name__ == "__main__":
main()

Supported Models

All chat-capable models are supported, including:

ProviderModels
OpenAIgpt-4.1, gpt-4.1-mini, gpt-4.1, o1, o3-mini
Anthropicclaude-sonnet-4.5, claude-opus-4-5-20251101, claude-haiku-4-5-20250501
Googlegemini-3-pro-preview, gemini-2.5-flash
DeepSeekdeepseek-chat, deepseek-reasoner
xAIgrok-3, grok-3-fast

View all models →

API Reference

ParameterTypeDescription
modelstrModel identifier (required)
messageslistConversation messages (required)
temperaturefloatSampling temperature (0.0 - 2.0)
max_tokensintMaximum tokens to generate
top_pfloatNucleus sampling parameter
frequency_penaltyfloatRepetition penalty (-2.0 - 2.0)
presence_penaltyfloatTopic diversity penalty (-2.0 - 2.0)
stoplist[str]Stop sequences
nintNumber of completions to generate