package com.fs.fastgptApi.param;

import lombok.Data;

import java.util.List;

/**
* 对话接口
*/
@Data
public class ChatParam {

    /**
    * 聊天id
    */
    private String chatId;

    //知识库id
//    private String dataId;
//    private String datasetId;

    /**
    * 是否开启 stream模式 (stream模式下会通过event进行区分/非stream模式结果保存在responseData)
    */
    private Boolean stream;

    /**
    * 是否返回中间值（模块状态，响应的完整结果等）
    */
    private Boolean detail;


    /**
    * 模块变量，一个对象，会替换模块中，输入框内容里的{{key}}
    */
    private Variables variables;

    /**
    * 聊天信息（对话框）
    */
    private List<Message> messages;


    @Data
    public static class Variables {
        //客户的id？
        private String uid;
        /**
        * 客户名称
        */
        private String name;

    }

    @Data
    public static class Message {
        //知识库id
        private String dataId;
//        private String datasetId;

        /**
        *  问题
        */
        private String content;
        /**
        * 用户权限
         * 字段用来定义消息的发送者角色，具体包括三种选择：system、user、和 assistant。
         *
         * system（系统）:通常用于设置聊天的上下文或者提供系统级别的指示和配置信息。
         * user（用户）:代表实际的用户输入，即用户向聊天系统提出的问题或者发起的对话内容。
         * assistant（助手）:代表智能助手的回复或者动作，是模型根据用户输入给出的响应。
        */
        private String role;

    }

}
