package openai type AIResponse struct { ID string `json:"id"` Object string `json:"object"` Created int64 `json:"created"` Model string `json:"model"` Choices []Choice `json:"choices"` Usage Usage `json:"usage"` ServiceTier string `json:"service_tier"` } type Choice struct { Index int64 `json:"index"` Message Message `json:"message"` Delta Message `json:"delta"` Logprobs interface{} `json:"logprobs"` FinishReason string `json:"finish_reason"` } type Message struct { Role string `json:"role"` Content string `json:"content"` Refusal interface{} `json:"refusal"` Annotations []interface{} `json:"annotations"` } type Usage struct { PromptTokens int64 `json:"prompt_tokens"` CompletionTokens int64 `json:"completion_tokens"` TotalTokens int64 `json:"total_tokens"` PromptTokensDetails PromptTokensDetails `json:"prompt_tokens_details"` CompletionTokensDetails CompletionTokensDetails `json:"completion_tokens_details"` } type CompletionTokensDetails struct { ReasoningTokens int64 `json:"reasoning_tokens"` AudioTokens int64 `json:"audio_tokens"` AcceptedPredictionTokens int64 `json:"accepted_prediction_tokens"` RejectedPredictionTokens int64 `json:"rejected_prediction_tokens"` } type PromptTokensDetails struct { CachedTokens int64 `json:"cached_tokens"` AudioTokens int64 `json:"audio_tokens"` }