Skip to main content
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