package com.fs.fastGpt.domain;

import com.fs.common.annotation.Excel;
import com.fs.common.core.domain.BaseEntity;
import lombok.Data;

/**
 * 集合对象 fastgpt_collection
 * 
 * @author fs
 * @date 2024-09-30
 */
@Data
public class FastGptCollection extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 集合id */
    private String collectionId;

    /** folder/virtual 空的集合 text 纯文本集合 link链接集合 file 文件集合 */
    private String type;

    /** 知识库的ID */
    @Excel(name = "知识库的ID")
    private String datasetId;

    /** 父级ID，不填则默认为根目录 */
    @Excel(name = "父级ID，不填则默认为根目录")
    private String parentId;

    /** 集合名称 */
    @Excel(name = "集合名称")
    private String name;

    /** folder (文件夹) ,virtual(虚拟集合(手动集合)) */
    @Excel(name = "folder (文件夹) ,virtual(虚拟集合(手动集合))")
    private String collectionType;

    /** 元数据 */
    @Excel(name = "元数据")
    private String metadata;

    /** 原文本 */
    @Excel(name = "原文本")
    private String text;

    /** chunk(按文本长度进行分割),qa(QA拆分) */
    @Excel(name = "chunk(按文本长度进行分割),qa(QA拆分)")
    private String trainingType;

    /** 每个 chunk 的长度（可选）. chunk模式:100~3000; qa模式: 4000~模型最大token（16k模型通常建议不超过10000） */
    @Excel(name = "每个 chunk 的长度", readConverterExp = "可=选")
    private Integer chunkSize;

    /** 自定义最高优先分割符号（可选） */
    @Excel(name = "自定义最高优先分割符号", readConverterExp = "可=选")
    private String chunkSplitter;

    /** qa拆分自定义提示词（可选) */
    @Excel(name = "qa拆分自定义提示词", readConverterExp = "qa拆分自定义提示词（可选)")
    private String qaPrompt;

    /** 网络链接 */
    @Excel(name = "网络链接")
    private String link;

    /** 文件链接 */
    @Excel(name = "文件链接")
    private String fileUrl;

    private String fileName;

    /** 修改集合禁用状态（可选） */
    @Excel(name = "修改集合禁用状态", readConverterExp = "可=选")
    private Long forbid;

    /** 所属企业ID */
    @Excel(name = "所属企业ID")
    private Long companyId;
    /** 数据量 */
    private Integer dataAmount;

}
