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.ai-stats.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
  }
}