TranslationUsageDTO.php 737 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,
  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: TranslationPromptTokenDetailsDTO::fromArray(
  19. $data['prompt_tokens_details']
  20. ),
  21. );
  22. }
  23. }