package com.fs.fastgptApi.param;

import lombok.Data;

import java.util.List;

@Data
public class ChatShareAutFinishParam {
    public String token;
    public List<ResponseData> responseData;

    @Data
    public static class ResponseData {
        /**
        * 模块名
        */
        public String moduleName;
        /**
        * // 模块类型 FlowNodeTypeEnum/datasetSearchNode
        */
        public String moduleType;
        /**
        *  总消耗AI积分
        */
        public double totalPoints;
        /**
        * 用户问题/检索词
        */
        public String query;
        /**
        * 使用到的模型
        */
        public String model;
        /**
        * 上下文总Tokens
        */
        public int tokens;
        /**
        * 最低相关度
        */
        public double similarity;
        /**
        * 引用上限token
        */
        public int limit;
        /**
        *  搜索模式
        */
        public String searchMode;
        /**
        * 是否使用rerank
        */
        public boolean searchUsingReRank;
        /**
        * 问题扩展模型
        */
        public String extensionModel;
        /**
        * 问题扩展结果
        */
        public String extensionResult;
        /**
        * 运行时间
        */
        public double runningTime;
        /**
        * 引用列表
        */
        public List<QuoteList> quoteList;
        /**
        * 上下文预览（历史记录会被裁剪）
        */
        public List<HistoryPreview> historyPreview;
        /**
        * 上下文总长度
        */
        public int contextTotalLen;

        @Data
        public static class QuoteList {
            /**
            * 问题id
            */
            public String id;
            /**
            * 问题内容
            */
            public String q;
            /**
            * 问题回答
            */
            public String a;
            /**
            * 分块下表
            */
            public int chunkIndex;
            /**
            * 知识库id
            */
            public String datasetId;
            /**
            * 集合id
            */
            public String collectionId;
            public String sourceName;
            /**
            * 数据的ID
            */
            public String sourceId;

            /**
            * 距离得分，0-1
            */
            public List<Score> score;

            @Data
            public static class Score {
                public String type;
                public double value;
                public int index;
            }
        }

        @Data
        public static class HistoryPreview {
            public String obj;
            public String value;
        }
    }
}
