52 lines
3.1 KiB
Go
52 lines
3.1 KiB
Go
package consts
|
|
|
|
// 向量与检索参数
|
|
const (
|
|
DefaultEmbeddingDim = 1024 // embedding 默认维度(未配置时)
|
|
VectorTopK = 20 // 向量检索召回数
|
|
FtsTopK = 20 // 全文检索召回数
|
|
HybridTopK = 5 // 混合检索最终返回数(重排+门槛过滤后)
|
|
RrfK = 60 // RRF 融合常数
|
|
|
|
RerankTopK = 10 // 喂给 LLM 重排器的候选数(RRF 融合后截取;数据集可覆盖)
|
|
RerankKeepRatio = 0.5 // 重排分低于最高分该比例的条目剔除(门槛作用在语义分上,RRF 分因区间过窄无区分度)
|
|
RerankMinScore = 6 // 重排分绝对下限:低于该分的条目直接剔除(重排器对泛化条款会给宽松低分,需绝对下限兜底)
|
|
RerankMaxChars = 500 // 重排候选段截断字数(控制 prompt 长度)
|
|
|
|
// 数据集召回数量配置(vec_top_k/fts_top_k/rerank_top_k/recall_top_k):0=用上方全局默认,-1=尽量多,>0=固定值
|
|
MaxRecallTopK = 50 // 四个配置字段的统一上限
|
|
MaxRecallRawTopK = 100 // 原始召回(向量/全文)"-1=尽量多"的保护上限
|
|
MaxRerankTopK = 60 // 重排候选 "-1=尽量多"的保护上限(重排 prompt 成本护栏)
|
|
MaxRecallChars = 50000 // 最终返回 "-1=不限制数量"时的总字符物理保护(按相关性门槛过滤后仍超预算则按分截断)
|
|
|
|
DefaultChunkSize = 800 // 分块最大字数(数据集默认值)
|
|
DefaultChunkOverlap = 150 // 分块重叠字数(数据集默认值)
|
|
|
|
// 智能体(ReAct)参数
|
|
MaxReactRounds = 10 // ReAct 轮次上限
|
|
ToolResultMaxChars = 1500 // search 工具返回的单条 chunk 截断字数(控制上下文体积)
|
|
|
|
ParsePollIntervalSeconds = 5 // 解析/标注任务轮询间隔
|
|
|
|
EmbedBatchSize = 16 // 单次向量化请求的文本批量
|
|
|
|
// 合同标注参数
|
|
AnnoRecallTopK = 15 // 每数据集向量+FTS 各召回数(标注宁滥毋缺,放宽召回)
|
|
AnnoMaxCandidates = 60 // 多数据集融合后的候选上限(喂给 LLM 判定)
|
|
AnnoMaxClauseChars = 2000 // 合同条款全文上限(超长截断,控制 prompt)
|
|
|
|
// 合同风险识别
|
|
RiskLevelHigh = "high" // 高风险(违反强制性规定、可能导致合同无效/赔偿)
|
|
RiskLevelMid = "mid" // 中风险(约定与法律不符但可补救)
|
|
RiskLevelLow = "low" // 低风险(表述瑕疵/建议性提示)
|
|
RiskMaxPerClause = 3 // 单条款风险点上限(控制 prompt 与展示)
|
|
AnnoCandidateMaxChars = 2000 // 风险判定候选条文内容上限(需覆盖整 chunk,chunk 由多条短条文合并而成,截断会切掉块尾条文)
|
|
|
|
// 协程池默认大小(config.yml pool 段缺失时兜底)
|
|
KgExtractPoolSize = 4 // 知识图谱:逐 chunk LLM 抽取
|
|
AnnotationClausePoolSize = 4 // 合同标注:逐条款 (recall+judge)
|
|
AnnotationDatasetPoolSize = 8 // 条款内:逐 dataset 召回
|
|
ChatPoolSize = 4 // 问答:retrieve 与 GraphEnhance 并行
|
|
ChatRetrievePoolSize = 4 // 检索:vec 与 fts 并行
|
|
)
|