package cn.iocoder.yudao.module.llm.framework.backend.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotNull;

@ConfigurationProperties(prefix = "llm.backend")
@Validated
@Data
public class LLMBackendProperties {

    /**
     * 过期时间
     */
    @NotNull(message = "RAG健康检查API")
    private String ragHealth;

    @NotNull(message = "上传并向量化")
    private String ragEmbed;

    @NotNull(message = "获取所有向量id")
    private String ragIds;

    @NotNull(message = "根据id获取文档")
    private String ragDocuments;

    @NotNull(message = "根据id删除文档")
    private String ragDocumentsDel;

    @NotNull(message = "根据file_id检索向量")
    private String ragQuery;

    @NotNull(message = "支持多个文件id查询向量")
    private String ragQueryMultiple;

    @NotNull(message = "训练集列表 GET")
    private String datasetList;

    @NotNull(message = "上传训练集 POST")
    private String datasetCreate;

    @NotNull(message = "删除训练集 DELETE")
    private String datasetDelete;

    @NotNull(message = "训练集标注 GET")
    private String annotationTaskList;

    @NotNull(message = "标注信息 GET")
    private String annotationTask;

    @NotNull(message = "保存标注 POST")
    private String annotationTaskSave;

    @NotNull(message = "大模型列表 GET")
    private String modelsList;

    @NotNull(message = "登录 POST")
    private String login;
    private String account;
    private String loginUsername;
    private String loginPassword;

    @NotNull(message = "基础模型列表 GET")
    private String baseModelList;

    @NotNull(message = "大模型聊天 POST")
    private String modelCompletions;

    @NotNull(message = "创建微调任务 POST")
    private String finetuningCreate;

    private String finetuningLog;

    private String finetuningDetail;

    private String finetuningFileList;
    private String finetuningCancel;

    private String applicationApi;

    private String modelServiceApi;

    private String modelCreate;

    private String modelDeploy;

    private String modelUndeploy;

    private String tableDataQuery;

    private String modelFileList;

    private String modelFileDownload;

    private String optimizePrompt;

    private String aigcModelCompletions;

    private String aigcFileUpload;

    private String autoEvaluation;
    private String textToImage;

    /**
     * 知识库向量嵌入
     */
    private String embed;

    private String embedQuery;

    private String checkFileList;
}
