using System.Text.Json.Serialization; namespace Yi.Framework.AiHub.Domain.Shared.Dtos.OpenAi; /// /// 统计信息模型 /// public record ThorUsageResponse { /// /// 提示中的令牌数。 /// [JsonPropertyName("prompt_tokens")] public int? PromptTokens { get; set; } [JsonPropertyName("input_tokens")] public int? InputTokens { get; set; } [JsonPropertyName("output_tokens")] public int? OutputTokens { get; set; } [JsonPropertyName("input_tokens_details")] public ThorUsageResponseInputTokensDetails? InputTokensDetails { get; set; } /// /// 生成的完成中的令牌数。 /// [JsonPropertyName("completion_tokens")] public long? CompletionTokens { get; set; } /// /// 请求中使用的令牌总数(提示 + 完成)。 /// [JsonPropertyName("total_tokens")] public long? TotalTokens { get; set; } /// /// ThorUsageResponsePromptTokensDetails /// [JsonPropertyName("prompt_tokens_details")] public ThorUsageResponsePromptTokensDetails? PromptTokensDetails { get; set; } /// /// ThorUsageResponseCompletionTokensDetails /// [JsonPropertyName("completion_tokens_details")] public ThorUsageResponseCompletionTokensDetails? CompletionTokensDetails { get; set; } } public class ThorUsageResponseInputTokensDetails { [JsonPropertyName("image_tokens")] public int? ImageTokens { get; set; } [JsonPropertyName("text_tokens")] public int? TextTokens { get; set; } } public record ThorUsageResponsePromptTokensDetails { /// /// 缓存的令牌数。 /// [JsonPropertyName("cached_tokens")] public int? CachedTokens { get; set; } /// /// audio_tokens /// [JsonPropertyName("audio_tokens")] public int? AudioTokens { get; set; } } /// /// completion_tokens_details /// public record ThorUsageResponseCompletionTokensDetails { /// /// 使用 Predicted Outputs 时, Prediction 的 Final。 /// [JsonPropertyName("accepted_prediction_tokens")] public int? AcceptedPredictionTokens { get; set; } /// /// 模型生成的音频输入令牌。 /// [JsonPropertyName("audio_tokens")] public int? AudioTokens { get; set; } /// /// 模型生成的用于推理的 Token。 /// [JsonPropertyName("reasoning_tokens")] public int? ReasoningTokens { get; set; } /// /// 使用 Predicted Outputs 时, 预测,但未出现在 completion 中。但是,与 reasoning 令牌,这些令牌仍然计入总数 用于 Billing、Output 和 Context Window 的完成令牌 限制。 /// [JsonPropertyName("rejected_prediction_tokens")] public int? RejectedPredictionTokens { get; set; } }