package com.seer.teach.teacher.service.platform;

import lombok.Data;
import java.util.List;
import java.util.Map;

/**
 * 通用大模型API响应数据结构
 * 适用于文生图和推理模型，适配各个平台
 */
@Data
public class LlmResponse {
    
    /**
     * 响应ID
     */
    private String id;
    
    /**
     * 使用的模型
     */
    private String model;
    
    /**
     * 响应内容列表
     */
    private List<Choice> choices;
    
    /**
     * 使用情况统计
     */
    private Usage usage;
    
    /**
     * 响应选择项
     */
    @Data
    public static class Choice {
        /**
         * 索引
         */
        private Integer index;
        
        /**
         * 消息内容（适用于对话模型）
         */
        private Message message;
        
        /**
         * 图片生成结果（适用于文生图模型）
         */
        private List<ImageResult> imageResults;
        
        /**
         * 完成原因
         */
        private String finishReason;
    }
    
    /**
     * 消息内容
     */
    @Data
    public static class Message {
        /**
         * 角色（system/user/assistant）
         */
        private String role;
        
        /**
         * 内容
         */
        private String content;
    }
    
    /**
     * 图片生成结果
     */
    @Data
    public static class ImageResult {
        /**
         * 图片URL
         */
        private String url;
        
        /**
         * 图片Base64编码数据
         */
        private String b64Json;
        
        /**
         * 修订版本
         */
        private String revisedPrompt;
    }
    
    /**
     * 使用情况统计
     */
    @Data
    public static class Usage {
        /**
         * 提示词token数
         */
        private Integer promptTokens;
        
        /**
         * 完成内容token数
         */
        private Integer completionTokens;
        
        /**
         * 总token数
         */
        private Integer totalTokens;
        
        /**
         * 图片生成数量
         */
        private Integer imageCount;
    }
}