const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/style-CLmeZurA.css","assets/index--cDK8lVp.js","assets/index-BKKvzUDD.js","assets/index-BrKMLqs4.css"])))=>i.map(i=>d[i]);
import{d as R,az as B,D as b,o as m,c as r,M as d,s as t,w as o,ad as f,e as v,g as _,x as w,aa as V,q as E,f as I,aA as L,aC as G,j as U,aD as k,aE as j}from"./index-BKKvzUDD.js";import{a as q}from"./el-form-item-D5kF3B90.js";import{E as z}from"./index-TFUf94PZ.js";import{E as H,a as Y}from"./el-select-Dl-FRZQd.js";import{a as J,E as K}from"./el-checkbox-qGZ2-RM2.js";import{E as Q,b as W}from"./el-radio-group-BkCoTeQL.js";import{E as X}from"./el-input-number-BFR4pu1i.js";import{E as Z}from"./el-slider-DYENF1-i.js";import{E as $}from"./el-switch-DbCDiaMc.js";import"./el-popper-D6_hxRbQ.js";import"./el-tooltip-l0sNRNKZ.js";/* empty css                          */import"./el-scrollbar-ClJnvz-9.js";/* empty css               */import{_ as ee}from"./_plugin-vue_export-helper-DlAUqK2U.js";const M={classification:[{value:"standard",name:"标准匹配",desc:"根据预设标准评估"},{value:"sentiment",name:"情感分析",desc:"识别文本情感倾向"},{value:"custom",name:"自定义评分器",desc:"自定义评估规则"}],metric:[{value:"metric_standard",name:"综合评测",desc:"根据预设标准评分"},{value:"semantic",name:"语义相似度",desc:"计算语义相似程度"},{value:"custom",name:"自定义评分器",desc:"自定义评估规则"}],text_similarity:[{value:"bleu_4",name:"BLEU-4",desc:"N-gram 精确度评估"},{value:"cosine",name:"Cosine",desc:"余弦相似度"},{value:"rouge_1",name:"ROUGE-1",desc:"unigram 重叠评估"},{value:"rouge_2",name:"ROUGE-2",desc:"bigram 重叠评估"},{value:"rouge_4",name:"ROUGE-4",desc:"4-gram 重叠评估"}]},y={standard:`# 角色
你是一位专业的对话评估专家，擅长根据提供的标准对助理在对话中的最终反应进行评估，并确定其是否[[Pass]]或[[Fail]]。

## 技能
### 技能 1: 对话回顾
- 通读整个对话以理解上下文和背景信息。
- 确保全面理解对话的意图和用户的需求。

### 技能 2: 最终回答识别
- 从对话中准确识别出助理给出的最后一个回答。
- 确保关注的是最终的回答，而不是中间的部分。

### 技能 3: 标准应用
- 仔细审查每个评价标准。
- 将助理的最终回答与标准的各个方面进行详细比较。

### 技能 4: 逐步推理
- 记录每个标准以及最终响应如何满足或不满足该标准。
- 提供详细的证据，并解释为什么最终答复满足或不满足期望。

### 技能 5: 结果判定
- 根据逐步推理的结果，判断最终回答是[[Pass]]或[[Fail]]
- 提供明确的结论并解释理由。

## 输出格式
以下列格式提供结果：
- **分步推理：**[详细推理在这里]
- **最终结果：**[[Pass]]或[[Fail]]

## 限制
- 只针对对话中的最终回答进行评估。
- 在评估过程中，确保遵循提供的标准，避免主观判断。`,sentiment:`# 角色
你是一位专业的情感分析专家，擅长识别文本中的情感倾向，并给出[[Positive]]、[[Neutral]]或[[Negative]]的判断。

## 技能
### 技能 1: 文本理解
- 通读输入文本，理解其内容和语境。

### 技能 2: 情感识别
- 识别文本中表达的情感词汇、语气和情感强度。
- 分析上下文中的情感线索。

### 技能 3: 情感判定
- 根据识别到的情感信息，判断整体情感倾向。

## 输出格式
- **情感分析：**[分析过程]
- **最终结果：**[[Positive]]/[[Neutral]]/[[Negative]]`,metric_standard:`# 角色
你是一位专业的模型评估专家，擅长根据预设标准对模型输出进行综合评分（0-5分）。

## 评估标准
请从以下维度对模型输出进行评分：
1. 准确性：回答是否准确无误
2. 完整性：是否完整覆盖了问题的各个方面
3. 连贯性：回答是否逻辑清晰、结构合理
4. 可读性：语言表达是否流畅、易懂

## 输出格式
- **评分理由：**[详细说明]
- **最终评分：**[0-5 的分数]`,semantic:`# 角色
你是一位专业的语义相似度评估专家，擅长计算两段文本之间的语义相似程度。

## 任务
请评估生成文本与参考文本在语义上的相似程度，给出 0-1 之间的分数。

## 输出格式
- **相似度分析：**[分析过程]
- **相似度分数：**[0-1 的分数]`,custom:`# 自定义评估器
请在此编写您的自定义评估 Prompt...`},le={class:"method-desc"},ae={class:"method-desc"},te={style:{width:"100%"}},c=.5,oe=R({__name:"DimensionFormFields",props:L({evalModels:{},showDescription:{type:Boolean,default:!0},showStatusSettings:{type:Boolean,default:!0},allowedTypes:{default:()=>["classification","metric","text_similarity"]}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(p){const P=G(async()=>(await k(()=>Promise.resolve({}),__vite__mapDeps([0])),(await k(()=>import("./index--cDK8lVp.js").then(l=>l.w),__vite__mapDeps([1,2,3]))).MdEditor)),D=p,e=B(p,"modelValue"),N=U(()=>Object.entries(j).filter(([u])=>D.allowedTypes.includes(u)).map(([u,l])=>({value:u,label:l}))),x=U(()=>e.value.type?M[e.value.type]||[]:[]);return b(()=>e.value.type,u=>{var s,i;if(!u)return;const l=((i=(s=M[u])==null?void 0:s[0])==null?void 0:i.value)||"";e.value.eval_method=u==="text_similarity"?[l]:l,u!=="text_similarity"&&y[l]&&(e.value.eval_prompt=y[l])},{flush:"sync"}),b(()=>e.value.eval_method,u=>{if(e.value.type==="text_similarity"||!u)return;const l=Array.isArray(u)?u[0]:u;l&&y[l]&&(e.value.eval_prompt=y[l])},{flush:"sync"}),b(()=>[e.value.type,e.value.score_min,e.value.score_max],([u,l,s])=>{if(u==="metric"){if(s<=l){e.value.score_max=l+c;return}e.value.pass_threshold=Math.min(Math.max(e.value.pass_threshold,l),s)}},{flush:"sync"}),(u,l)=>{const s=Y,i=H,n=q,O=z,S=W,C=Q,T=K,A=J,h=X,F=Z,g=$;return m(),r(d,null,[t(n,{label:"指标类型",prop:"type"},{default:o(()=>[t(i,{modelValue:e.value.type,"onUpdate:modelValue":l[0]||(l[0]=a=>e.value.type=a),placeholder:"请选择指标类型",style:{width:"100%"}},{default:o(()=>[(m(!0),r(d,null,f(N.value,a=>(m(),v(s,{key:a.value,label:a.label,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),p.showDescription?(m(),v(n,{key:0,label:"描述"},{default:o(()=>[t(O,{modelValue:e.value.description,"onUpdate:modelValue":l[1]||(l[1]=a=>e.value.description=a),type:"textarea",rows:2,maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})):_("",!0),e.value.type==="classification"||e.value.type==="metric"?(m(),r(d,{key:1},[t(n,{label:"选择大模型",prop:"eval_model"},{default:o(()=>[t(i,{modelValue:e.value.eval_model,"onUpdate:modelValue":l[2]||(l[2]=a=>e.value.eval_model=a),placeholder:"请选择评测模型",filterable:"",style:{width:"100%"}},{default:o(()=>[(m(!0),r(d,null,f(p.evalModels,a=>(m(),v(s,{key:a.id,label:a.name,value:a.name},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(n,{label:"评估方式",prop:"eval_method"},{default:o(()=>[t(C,{modelValue:e.value.eval_method,"onUpdate:modelValue":l[3]||(l[3]=a=>e.value.eval_method=a)},{default:o(()=>[(m(!0),r(d,null,f(x.value,a=>(m(),v(S,{key:a.value,value:a.value},{default:o(()=>[w(V(a.name)+" ",1),E("span",le,V(a.desc),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(n,{label:"评估 Prompt",prop:"eval_prompt"},{default:o(()=>[t(I(P),{modelValue:e.value.eval_prompt,"onUpdate:modelValue":l[4]||(l[4]=a=>e.value.eval_prompt=a),language:"zh-CN","toolbars-exclude":["github","save"],style:{height:"320px"}},null,8,["modelValue"])]),_:1})],64)):_("",!0),e.value.type==="text_similarity"?(m(),r(d,{key:2},[t(n,{label:"评估方式",prop:"eval_method"},{default:o(()=>[t(A,{modelValue:e.value.eval_method,"onUpdate:modelValue":l[5]||(l[5]=a=>e.value.eval_method=a)},{default:o(()=>[(m(!0),r(d,null,f(x.value,a=>(m(),v(T,{key:a.value,value:a.value},{default:o(()=>[w(V(a.name)+" ",1),E("span",ae,V(a.desc),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(n,{label:"BLEU n-gram"},{default:o(()=>[t(i,{modelValue:e.value.bleu_n,"onUpdate:modelValue":l[6]||(l[6]=a=>e.value.bleu_n=a),style:{width:"160px"}},{default:o(()=>[t(s,{value:1,label:"1-gram"}),t(s,{value:2,label:"2-gram"}),t(s,{value:3,label:"3-gram"}),t(s,{value:4,label:"4-gram"})]),_:1},8,["modelValue"])]),_:1}),t(n,{label:"输出精度"},{default:o(()=>[t(i,{modelValue:e.value.output_precision,"onUpdate:modelValue":l[7]||(l[7]=a=>e.value.output_precision=a),style:{width:"160px"}},{default:o(()=>[t(s,{value:1,label:"1 位小数"}),t(s,{value:2,label:"2 位小数"}),t(s,{value:3,label:"3 位小数"}),t(s,{value:4,label:"4 位小数"})]),_:1},8,["modelValue"])]),_:1})],64)):_("",!0),e.value.type==="metric"?(m(),r(d,{key:3},[t(n,{label:"评分最小值",prop:"score_min"},{default:o(()=>[t(h,{modelValue:e.value.score_min,"onUpdate:modelValue":l[8]||(l[8]=a=>e.value.score_min=a),min:0,max:Math.max(e.value.score_max-c,0),step:c,style:{width:"160px"}},null,8,["modelValue","max"])]),_:1}),t(n,{label:"评分最大值",prop:"score_max"},{default:o(()=>[t(h,{modelValue:e.value.score_max,"onUpdate:modelValue":l[9]||(l[9]=a=>e.value.score_max=a),min:e.value.score_min+c,step:c,style:{width:"160px"}},null,8,["modelValue","min"])]),_:1}),t(n,{label:"通过阈值",prop:"pass_threshold"},{default:o(()=>[E("div",te,[t(F,{modelValue:e.value.pass_threshold,"onUpdate:modelValue":l[10]||(l[10]=a=>e.value.pass_threshold=a),min:e.value.score_min,max:e.value.score_max,step:.5,"show-input":"","show-input-controls":!1},null,8,["modelValue","min","max"])])]),_:1})],64)):_("",!0),p.showStatusSettings?(m(),r(d,{key:4},[t(n,{label:"启用该维度"},{default:o(()=>[t(g,{modelValue:e.value.is_active,"onUpdate:modelValue":l[11]||(l[11]=a=>e.value.is_active=a)},null,8,["modelValue"])]),_:1}),t(n,{label:"设为默认"},{default:o(()=>[t(g,{modelValue:e.value.is_default,"onUpdate:modelValue":l[12]||(l[12]=a=>e.value.is_default=a)},null,8,["modelValue"])]),_:1})],64)):_("",!0)],64)}}}),Ee=ee(oe,[["__scopeId","data-v-c192dba1"]]);export{Ee as D,M as E};
