Method: CompletionsApi#createChatCompletion
Example
<?php
require 'vendor/autoload.php';
use AIStats\Sdk\Api\CompletionsApi;
use AIStats\Sdk\Configuration;
use AIStats\Sdk\Model\ChatCompletionsRequest;
use AIStats\Sdk\Model\ChatMessageUser;
use AIStats\Sdk\Model\MessageContentText;
$apiKey = getenv('AI_STATS_API_KEY');
$config = Configuration::getDefaultConfiguration()
->setHost('https://api.phaseo.app/v1')
->setApiKey('GatewayAuth', 'Bearer ' . $apiKey);
$completionsApi = new CompletionsApi(null, $config);
$message = new ChatMessageUser([
'role' => 'user',
'content' => new MessageContentText(['text' => 'Write a limerick about lighthouses.'])
]);
$request = new ChatCompletionsRequest([
'model' => 'openai/gpt-4o-mini',
'messages' => [$message],
'temperature' => 0.5
]);
$response = $completionsApi->createChatCompletion($request);
echo $response->getChoices()[0]->getMessage()->getContent()->getText();
Key parameters
model (required): Target model id.
messages (required): Ordered messages with roles system|user|assistant|tool; content as MessageContent objects.
- Sampling:
temperature (0–2), top_p (0–1), top_k (>=1), seed (int, optional).
- Length/penalties:
max_output_tokens (int), presence_penalty and frequency_penalty (-2 to 2), stop (string|string[]).
- Tools:
tools (definitions), tool_choice (auto/none/specific tool), max_tool_calls (int), parallel_tool_calls (bool).
- Logprobs:
logprobs (bool), top_logprobs (0–20).
- Output:
response_format (json/text), meta (bool to include meta block), stream (bool), service_tier.
- Gateway extras:
usage (bool to request usage).
Returns
ChatCompletionsResponse JSON object.
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-3.5-turbo-0125",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello there, how may I assist you today?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
Last modified on February 11, 2026