package org.xyzh.api.ai.dto;

import org.xyzh.common.dto.BaseDTO;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

@Data
@Schema(description = "知识库配置")
public class TbKnowledge extends BaseDTO{
    private static final long serialVersionUID = 1L;
    
    @Schema(description = "知识库ID")
    private String knowledgeId;

    @Schema(description = "知识库标题")
    private String title;

    @Schema(description = "知识库头像")
    private String avatar;

    @Schema(description = "知识库描述")
    private String description;

    @Schema(description = "Dify知识库ID（Dataset ID）")
    private String difyDatasetId;

    @Schema(description = "Dify索引方式（high_quality/economy）")
    private String difyIndexingTechnique;

    @Schema(description = "向量模型名称")
    private String embeddingModel;

    @Schema(description = "向量模型提供商")
    private String embeddingModelProvider;

    @Schema(description = "Rerank模型名称")
    private String rerankModel;

    @Schema(description = "Rerank模型提供商")
    private String rerankModelProvider;

    @Schema(description = "是否启用Rerank（false否 true是）")
    private Boolean rerankingEnable;

    @Schema(description = "检索Top K（返回前K个结果）")
    private Integer retrievalTopK;

    @Schema(description = "检索分数阈值（0.00-1.00）")
    private Double retrievalScoreThreshold;

    @Schema(description = "文档数量")
    private Integer documentCount;

    @Schema(description = "总分段数")
    private Integer totalChunks;

    @Schema(description = "所属服务 workcase、bidding")
    private String service;

    @Schema(description = "bidding所属项目ID")
    private String projectId;

    @Schema(description = "所属分类  workcase的内部知识库、外部知识库，其他服务default")
    private String category;


}
