const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/style-CLmeZurA.css","assets/index-jIAhzLiw.js","assets/index-ghV-82DL.js","assets/index-BlLFpInm.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-ghV-82DL.js";import{a as q}from"./el-form-item-HF5jXDP0.js";import{E as z}from"./index-CNb8e1Tv.js";import{E as H,a as Y}from"./el-select-k0e66spJ.js";import{a as J,E as K}from"./el-checkbox-BxOzvSqX.js";import{E as Q,b as W}from"./el-radio-group-DMn61-BH.js";import{E as X}from"./el-input-number-3v9hXM-d.js";import{E as Z}from"./el-slider-CaCh8q2J.js";import{E as $}from"./el-switch-Cy0i8dA4.js";import"./el-popper-DBh7AbzX.js";import"./el-tooltip-l0sNRNKZ.js";/* empty css */import"./el-scrollbar-DoLlxbyx.js";import"./el-tag-Cck2gNTD.js";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-jIAhzLiw.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-c194cd75"]]);export{Ee as D,M as E};