namespace OASystem.API.OAMethodLib.DoubaoAPI { public enum ReasoningEffort { Minimal, Low, Medium, High } public class DouBaoChatMessage { public DouBaoRole Role { get; set; } public string Content { get; set; } } public enum DouBaoRole { system, user, assistant } public class CompleteChatOptions { public thinkingOptions ThinkingOptions { get; set; } = new thinkingOptions() { IsThinking = false, ReasoningEffort = ReasoningEffort.Minimal }; } public class thinkingOptions { public bool IsThinking { get; set; } = false; public ReasoningEffort ReasoningEffort { get; set; } = ReasoningEffort.Minimal; } public class DoubaoResponse { public string id { get; set; } public string @object { get; set; } public long created { get; set; } public string model { get; set; } public string service_tier { get; set; } public List choices { get; set; } public Usage usage { get; set; } } public class Choice { public int index { get; set; } public string finish_reason { get; set; } public object logprobs { get; set; } // 可以是 null 或者详细概率结构 public Message message { get; set; } } public class Message { public string role { get; set; } public string content { get; set; } public string reasoning_content { get; set; } // 豆包特有字段 } public class Usage { public int completion_tokens { get; set; } public int prompt_tokens { get; set; } public int total_tokens { get; set; } public TokenDetails prompt_tokens_details { get; set; } public TokenDetails completion_tokens_details { get; set; } } public class TokenDetails { public int reasoning_tokens { get; set; } } public interface IDoubaoService { Task CompleteChatAsync(List messages, CompleteChatOptions? options = null); } }