using Newtonsoft.Json; namespace Yi.Framework.AiHub.Application.Contracts.Dtos.OpenAi; public class ChatCompletionsOutput { [JsonProperty("id")] public string Id { get; set; } [JsonProperty("object")] public string Object { get; set; } [JsonProperty("created_at")] public long CreatedAt { get; set; } [JsonProperty("status")] public string Status { get; set; } [JsonProperty("error")] public object Error { get; set; } [JsonProperty("incomplete_details")] public object IncompleteDetails { get; set; } [JsonProperty("instructions")] public object Instructions { get; set; } [JsonProperty("max_output_tokens")] public object MaxOutputTokens { get; set; } [JsonProperty("model")] public string Model { get; set; } [JsonProperty("output")] public List Output { get; set; } [JsonProperty("parallel_tool_calls")] public bool ParallelToolCalls { get; set; } [JsonProperty("previous_response_id")] public object PreviousResponseId { get; set; } [JsonProperty("reasoning")] public Reasoning Reasoning { get; set; } [JsonProperty("store")] public bool Store { get; set; } [JsonProperty("temperature")] public double Temperature { get; set; } [JsonProperty("text")] public Text Text { get; set; } [JsonProperty("tool_choice")] public string ToolChoice { get; set; } [JsonProperty("tools")] public List Tools { get; set; } [JsonProperty("top_p")] public double TopP { get; set; } [JsonProperty("truncation")] public string Truncation { get; set; } [JsonProperty("usage")] public Usage Usage { get; set; } [JsonProperty("user")] public object User { get; set; } [JsonProperty("metadata")] public Dictionary Metadata { get; set; } } public class Output { [JsonProperty("type")] public string Type { get; set; } [JsonProperty("id")] public string Id { get; set; } [JsonProperty("status")] public string Status { get; set; } [JsonProperty("role")] public string Role { get; set; } [JsonProperty("content")] public List Content { get; set; } } public class Content { [JsonProperty("type")] public string Type { get; set; } [JsonProperty("text")] public string Text { get; set; } [JsonProperty("annotations")] public List Annotations { get; set; } } public class Reasoning { [JsonProperty("effort")] public object Effort { get; set; } [JsonProperty("summary")] public object Summary { get; set; } } public class Text { [JsonProperty("format")] public Format Format { get; set; } } public class Format { [JsonProperty("type")] public string Type { get; set; } } public class Usage { [JsonProperty("input_tokens")] public int InputTokens { get; set; } [JsonProperty("input_tokens_details")] public InputTokensDetails InputTokensDetails { get; set; } [JsonProperty("output_tokens")] public int OutputTokens { get; set; } [JsonProperty("output_tokens_details")] public OutputTokensDetails OutputTokensDetails { get; set; } [JsonProperty("total_tokens")] public int TotalTokens { get; set; } } public class InputTokensDetails { [JsonProperty("cached_tokens")] public int CachedTokens { get; set; } } public class OutputTokensDetails { [JsonProperty("reasoning_tokens")] public int ReasoningTokens { get; set; } }