package org.xyzh.ai.client.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.xyzh.api.ai.dto.DifyFileInfo;

import java.util.List;
import java.util.Map;

/**
 * @description 对话请求
 * @filename ChatRequest.java
 * @author AI Assistant
 * @copyright xyzh
 * @since 2025-11-04
 */
@Data
public class ChatRequest {

    /**
     * 输入变量
     */
    private Map<String, Object> inputs;

    /**
     * 用户问题
     */
    private String query;

    /**
     * 响应模式：streaming（流式）、blocking（阻塞）
     */
    @JsonProperty("response_mode")
    private String responseMode = "streaming";

    /**
     * 对话ID（继续对话时传入）
     */
    @JsonProperty("conversation_id")
    private String conversationId;

    /**
     * 用户标识
     */
    private String user;

    /**
     * 上传的文件列表
     */
    private List<DifyFileInfo> files;

    /**
     * 自动生成标题
     */
    @JsonProperty("auto_generate_name")
    private Boolean autoGenerateName = true;

    /**
     * 指定的数据集ID列表（知识库检索）
     */
    @JsonProperty("dataset_ids")
    private List<String> datasetIds;

    /**
     * 温度参数（0.0-1.0）
     */
    private Double temperature;

    /**
     * 最大token数
     */
    @JsonProperty("max_tokens")
    private Integer maxTokens;

}

