> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ai-stats.phaseo.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Chat completions

> Call /chat/completions with the PHP SDK.

**Methods**: `generateText()`, `createChatCompletion()`

### Example

```php theme={null}
<?php

require 'vendor/autoload.php';

use AIStats\Sdk\AIStats;

$apiKey = getenv('AI_STATS_API_KEY');
$client = new AIStats(apiKey: $apiKey);

$response = $client->createChatCompletion([
    'model' => 'openai/gpt-4o-mini',
    'messages' => [[
        'role' => 'user',
        'content' => 'Write a limerick about lighthouses.',
    ]],
    'temperature' => 0.5
]);
echo $response['choices'][0]['message']['content'];
```

### 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.

```json theme={null}
{
	"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
	}
}
```
