2
0

TranslationUsageDTO.php 792 B

123456789101112131415161718192021222324252627
  1. <?php
  2. namespace App\DTO\LLMTranslation;
  3. use App\DTO\BaseDTO;
  4. readonly class TranslationUsageDTO extends BaseDTO
  5. {
  6. public function __construct(
  7. public int $promptTokens,
  8. public int $completionTokens,
  9. public int $totalTokens,
  10. public ?TranslationPromptTokenDetailsDTO $promptTokensDetails = null,
  11. ) {}
  12. public static function fromArray(array $data): self
  13. {
  14. return new self(
  15. promptTokens: $data['prompt_tokens'],
  16. completionTokens: $data['completion_tokens'],
  17. totalTokens: $data['total_tokens'],
  18. promptTokensDetails: isset($data['prompt_tokens_details']) ? TranslationPromptTokenDetailsDTO::fromArray(
  19. $data['prompt_tokens_details']
  20. ) : null,
  21. );
  22. }
  23. }