Skip to content

Commit 3da1e66

Browse files
committed
chore: add fallback values to response token details for OpenRouter compatibility
1 parent 6f5861f commit 3da1e66

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

src/Responses/Chat/CreateResponseUsageCompletionTokensDetails.php

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,34 +8,42 @@ final class CreateResponseUsageCompletionTokensDetails
88
{
99
private function __construct(
1010
public readonly ?int $audioTokens,
11-
public readonly int $reasoningTokens,
12-
public readonly int $acceptedPredictionTokens,
13-
public readonly int $rejectedPredictionTokens
11+
public readonly ?int $reasoningTokens,
12+
public readonly ?int $acceptedPredictionTokens,
13+
public readonly ?int $rejectedPredictionTokens
1414
) {}
1515

1616
/**
17-
* @param array{audio_tokens?:int, reasoning_tokens:int, accepted_prediction_tokens:int, rejected_prediction_tokens:int} $attributes
17+
* @param array{audio_tokens?:int|null, reasoning_tokens?:int|null, accepted_prediction_tokens?:int|null, rejected_prediction_tokens?:int|null} $attributes
1818
*/
1919
public static function from(array $attributes): self
2020
{
2121
return new self(
2222
$attributes['audio_tokens'] ?? null,
23-
$attributes['reasoning_tokens'],
24-
$attributes['accepted_prediction_tokens'],
25-
$attributes['rejected_prediction_tokens'],
23+
$attributes['reasoning_tokens'] ?? null,
24+
$attributes['accepted_prediction_tokens'] ?? null,
25+
$attributes['rejected_prediction_tokens'] ?? null,
2626
);
2727
}
2828

2929
/**
30-
* @return array{audio_tokens?:int, reasoning_tokens:int, accepted_prediction_tokens:int, rejected_prediction_tokens:int}
30+
* @return array{audio_tokens?:int, reasoning_tokens?:int, accepted_prediction_tokens?:int, rejected_prediction_tokens?:int}
3131
*/
3232
public function toArray(): array
3333
{
34-
$result = [
35-
'reasoning_tokens' => $this->reasoningTokens,
36-
'accepted_prediction_tokens' => $this->acceptedPredictionTokens,
37-
'rejected_prediction_tokens' => $this->rejectedPredictionTokens,
38-
];
34+
$result = [];
35+
36+
if (! is_null($this->reasoningTokens)) {
37+
$result['reasoning_tokens'] = $this->reasoningTokens;
38+
}
39+
40+
if (! is_null($this->acceptedPredictionTokens)) {
41+
$result['accepted_prediction_tokens'] = $this->acceptedPredictionTokens;
42+
}
43+
44+
if (! is_null($this->rejectedPredictionTokens)) {
45+
$result['rejected_prediction_tokens'] = $this->rejectedPredictionTokens;
46+
}
3947

4048
if (! is_null($this->audioTokens)) {
4149
$result['audio_tokens'] = $this->audioTokens;

src/Responses/Chat/CreateResponseUsagePromptTokensDetails.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ private function __construct(
1212
) {}
1313

1414
/**
15-
* @param array{audio_tokens?:int, cached_tokens?: int} $attributes
15+
* @param array{audio_tokens?:int|null, cached_tokens?:int} $attributes
1616
*/
1717
public static function from(array $attributes): self
1818
{

0 commit comments

Comments
 (0)