openai-1.0.0: src/OpenAI/V1/Usage.hs
-- | The `Usage` type
module OpenAI.V1.Usage
( -- * Main types
Usage(..)
-- * Other types
, CompletionTokensDetails(..)
, PromptTokensDetails(..)
) where
import OpenAI.Prelude
-- | Breakdown of tokens used in a completion
data CompletionTokensDetails = CompletionTokensDetails
{ accepted_prediction_tokens :: Natural
, audio_tokens :: Natural
, reasoning_tokens :: Natural
, rejected_prediction_tokens :: Natural
} deriving stock (Generic, Show)
deriving anyclass (FromJSON)
-- | Breakdown of tokens used in the prompt
data PromptTokensDetails = PromptTokensDetails
{ audio_tokens :: Natural
, cached_tokens :: Natural
} deriving stock (Generic, Show)
deriving anyclass (FromJSON)
-- | Usage statistics for the completion request
data Usage completionTokensDetails promptTokensDetails = Usage
{ completion_tokens :: Natural
, prompt_tokens :: Natural
, total_tokens :: Natural
, completion_tokens_details :: completionTokensDetails
, prompt_tokens_details :: promptTokensDetails
} deriving stock (Generic, Show)
instance FromJSON (Usage CompletionTokensDetails PromptTokensDetails)
instance FromJSON (Usage (Maybe Void) (Maybe Void))