Files
YG_FT/frontend/dist/assets/DataProcessCreateView-BUfBIY00.js

13 lines
73 KiB
JavaScript
Raw Normal View History

import{E as ye}from"./index-BNsCyG4A.js";import{d as X,o as g,c as w,q as e,s as k,n as J,aa as C,g as D,j as U,x as L,w as M,M as B,ad as Z,e as z,A,y as V,D as te,t as Re,aL as Me,P as Te,z as Ie,ag as _t,aQ as Et,H as Pt,G as Ut,f as ne,aB as Lt,v as Vt}from"./index-Ds9AETjS.js";import{A as Rt}from"./AppConfirmDialog-DssSJ2jv.js";import{E as ze,a as Ne}from"./el-form-item-Bq0n_p5a.js";import{E as de}from"./index-h5FkzAP_.js";import{a as Ae,E as Se}from"./el-checkbox-pV3o_8iy.js";import{E as ke}from"./el-input-number-Bg2C0S8w.js";/* empty css */import{_ as Y}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{E as be,a as we}from"./el-select-BD70by95.js";import{E as Ft}from"./el-slider-mZJHOhL2.js";import{E as Dt}from"./el-switch-DflKYtBf.js";import"./el-popper-D1tByNLb.js";import"./el-tooltip-l0sNRNKZ.js";import"./el-scrollbar-CF42LNzg.js";/* empty css */import{E as Be}from"./el-pagination-C9R_oTJ1.js";import{E as qt}from"./el-upload-9Z6SSyNu.js";import{E as zt}from"./el-progress-Dz5Z3t_E.js";import{u as Nt}from"./models-a1fp9IUS.js";import"./castArray-BWI4UxBy.js";import"./_baseClone-CZxxnGCv.js";import"./raf-zQ00nuMI.js";import"./index-B0if-AHo.js";import"./index-BSbCLbaz.js";import"./omit-BzI1MV_K.js";import"./index-2LOSO4Pw.js";import"./index-sWKLi7bH.js";import"./vnode-CBiWHFw7.js";import"./index-CQlF36Lk.js";import"./index-ByhS8A1d.js";import"./scroll-DVmMv0d9.js";import"./clamp-CyhADbdq.js";import"./toNumber-DrayciwT.js";import"./_baseIteratee-82gB5Yov.js";import"./debounce-D6mJVDYC.js";import"./validator-D1MwuZXj.js";import"./model-cWd9CDtT.js";const At={class:"generation-option-row dataset-split-row"},Bt={class:"dataset-split-config"},jt={class:"dataset-split-grid"},Gt={class:"dataset-split-field"},Qt={class:"dataset-split-input"},Jt={class:"dataset-split-field"},Ht={class:"dataset-split-input"},Kt={class:"dataset-split-field"},Zt={class:"dataset-split-input"},Wt={key:0,role:"alert"},Xt=X({__name:"DatasetSplitEditor",props:{modelValue:{},ariaLabelPrefix:{default:""}},emits:["update:modelValue"],setup(t,{emit:l}){const o=t,n=l,s=U(()=>{const{train:S,validation:u,test:a}=o.modelValue;return S+u+a});function d(S,u){n("update:modelValue",{...o.modelValue,[S]:Math.min(100,Math.max(0,Number(u)||0))})}function r(S){return`${o.ariaLabelPrefix}${S}比例`}return(S,u)=>{const a=ke;return g(),w("div",At,[u[9]||(u[9]=e("div",{class:"generation-option-copy"},[e("strong",null,"数据集划分"),e("small",null,"按比例将生成后的问答对随机划分为训练集、验证集和测试集")],-1)),e("div",Bt,[e("div",jt,[e("label",Gt,[u[4]||(u[4]=e("span",null,"训练集",-1)),e("span",Qt,[k(a,{"model-value":t.modelValue.train,min:0,max:100,step:1,precision:0,"controls-position":"right","aria-label":r("训练集"),"onUpdate:modelValue":u[0]||(u[0]=h=>d("train",h))},null,8,["model-value","aria-label"]),u[3]||(u[3]=e("span",null,"%",-1))])]),e("label",Jt,[u[6]||(u[6]=e("span",null,"验证集",-1)),e("span",Ht,[k(a,{"model-value":t.modelValue.validation,min:0,max:100,step:1,precision:0,"controls-position":"right","aria-label":r("验证集"),"onUpdate:modelValue":u[1]||(u[1]=h=>d("validation",h))},null,8,["model-value","aria-label"]),u[5]||(u[5]=e("span",null,"%",-1))])]),e("label",Kt,[u[8]||(u[8]=e("span",null,"测试集",-1)),e("span",Zt,[k(a,{"model-value":t.modelValue.test,min:0,max:100,step:1,precision:0,"controls-position":"right","aria-label":r("测试集"),"onUpdate:modelValue":u[2]||(u[2]=h=>d("test",h))},null,8,["model-value","aria-label"]),u[7]||(u[7]=e("span",null,"%",-1))])])]),e("div",{class:J(["dataset-split-summary",{"is-invalid":s.value!==100}])},[e("span",null,"总计 "+C(s.value)+"%",1),s.value!==100?(g(),w("span",Wt," 训练集、验证集和测试集比例总和必须为 100% ")):D("",!0)],2)])])}}}),je=Y(Xt,[["__scopeId","data-v-8ab33ca4"]]),Yt={key:0,class:"generation-config-group model-config-group"},en={class:"model-field"},tn={class:"model-option"},nn={class:"model-field"},ln={class:"advanced-settings-grid"},sn={class:"config-field"},on={class:"config-field"},
`);function Ee(t){const l=t.split(`
`);let o=0;return l.map((n,s)=>{const d=o,r=d+n.length;return o=r+(s<l.length-1?1:0),{number:s+1,content:n,start:d,end:r}})}const wl=800,xl=100,$l=100;function ve(t,l,o){return Number.isFinite(t)?Math.max(o,Math.round(t)):l}function Ol(t,l,o){let n=Math.max(0,l),s=Math.min(t.length,o);for(;n<s&&/\s/.test(t[n]);)n+=1;for(;s>n&&/\s/.test(t[s-1]);)s-=1;return{start:n,end:s}}function Cl(t){return(t??"").replace(/\\n/g,`
`).replace(/\\t/g," ")}function Ml(t,l){return t.start<l.end&&t.end>l.start}function fe(t,l){return l.some(o=>Ml(t,o))}function Il(t,l){const o=[];let n=null;for(const s of l){const d=s.content.match(/^\s*(`{3,}|~{3,})/);if(!d)continue;const r=d[1][0];if(!n){n={start:s.start,marker:r,length:d[1].length};continue}r===n.marker&&d[1].length>=n.length&&(o.push({start:n.start,end:s.end,kind:"code"}),n=null)}return n&&o.push({start:n.start,end:t.length,kind:"code"}),o}function Tl(t){const o=t.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(n=>n.trim());return o.length>=2&&o.every(n=>/^:?-{3,}:?$/.test(n))}function _l(t,l){const o=[];for(let n=0;n<t.length-1;n+=1){const s=t[n],d=t[n+1];if(fe(s,l)||fe(d,l)||!s.content.includes("|")||!Tl(d.content))continue;let r=n+1;for(;r+1<t.length&&!fe(t[r+1],l)&&t[r+1].content.trim()&&t[r+1].content.includes("|");)r+=1;o.push({start:s.start,end:t[r].end,kind:"table"}),n=r}return o}function Fe(t){return/^\s*(?:[-+*]|\d+[.)])\s+\S/.test(t)}function El(t){return/^\s{2,}\S/.test(t)}function Pl(t,l){const o=[];for(let n=0;n<t.length;n+=1){if(fe(t[n],l)||!Fe(t[n].content))continue;let s=n,d=1;for(;s+1<t.length&&!fe(t[s+1],l);){const r=t[s+1].content;if(Fe(r)){d+=1,s+=1;continue}if(El(r)){s+=1;continue}break}d>=2&&(o.push({start:t[n].start,end:t[s].end,kind:"list"}),n=s)}return o}function Ul(t){return t.sort((l,o)=>l.start-o.start||l.end-o.end).reduce((l,o)=>{const n=l[l.length-1];return n&&o.start<n.end?(n.end=Math.max(n.end,o.end),l):(l.push({...o}),l)},[])}function Ll(t,l){if(!(l!=null&&l.preserveCodeBlocks)&&!(l!=null&&l.preserveTables)&&!(l!=null&&l.preserveLists))return[];const o=Ee(t),n=Il(t,o),s=_l(o,n),d=Pl(o,[...n,...s]),r=[...l!=null&&l.preserveCodeBlocks?n:[],...l!=null&&l.preserveTables?s:[],...l!=null&&l.preserveLists?d:[]];return Ul(r)}function ge(t,l){return t.find(o=>o.start<l&&l<o.end)}function Vl(t,l,o){let n=Math.max(0,Math.min(l,t.length));const s=ge(o,n);for(s&&(n=s.end);n<t.length&&/\s/.test(t[n]);)n+=1;const d=ge(o,n);return d?l<=d.start?d.start:d.end:n}function Rl(t,l,o,n){const s=ge(n,t);return s?s.start>l&&s.start>=o?s.start:s.end:t}function Fl(t,l,o,n){const s={...t},d=ge(n,s.start);d&&l<=d.start&&(s.start=d.start);const r=ge(n,s.end);return r&&o>=r.end&&(s.end=r.end),s}function Dl(t,l,o){const n=[];return[`
`,`
`,"。","","","",".","!","?",";"].forEach(d=>{const r=t.lastIndexOf(d,l-d.length),S=r===-1?-1:r+d.length;S>=o&&S<=l&&n.push(S)}),n.length?Math.max(...n):null}function ql(t,l,o,n){const s=t.slice(l,o),d=/^(?:#{1,6}\s+|第[一二三四五六七八九十百]+[章节篇部分]|\d+(?:\.\d+)*[、.\s])/gm;let r=null,S;for(;S=d.exec(s);){const u=l+S.index;u>=n&&(r=u)}return r}function zl(t,l,o,n,s){const d=(s==null?void 0:s.chunkMethod)??"semantic";if(d==="fixed")return o;if(d==="custom"){const r=Cl(s==null?void 0:s.customDelimiter);if(!r)return o;const S=t.lastIndexOf(r,o-r.length),u=S===-1?-1:S+r.length;return u>=n?u:o}if(d==="heading"){const r=ql(t,l,o,n);if(r!==null)return r}return Dl(t,o,n)??o}function Nl(t,l){const o=ve(l==null?void 0:l.chunkSize,wl,1)*2,n=Math.min(o,ve(l==null?void 0:l.minChunkSize,$l,1)*2),s=ve(l==null?void 0:l.chunkOverlap,xl,0)*2,d=Ll(t,l),r=[];let S=0;for(;S<t.length;){const u=Vl(t,S,d);if(u>=t.length)break;const a=Math.min(t.length,u+o),h=Math.min(a,u+n);let c=a===t.length?a:zl(t,u,a,h,l);c=Rl(c,u,h,d),c<=u&&(c=Math.min(t.length,u+o));let p=Ol(t,u,c);if(p=Fl(p,u,c,d),c<t.length&&p.end-p.start<n&&(p.end=Math.min(c,p.start+n)),p.end<=p.start){S=Math.max(S+1,c);continue}const i=c>=t.length;if(i&&p.end-p.start<n&&r.length){r[r.length-1].end=p.end;break}if(r.push(p),i)break;const P=Math.max(0,p.end-p.start-n),$=Math.min(s,P),b=p.end-$;S=b>u?b:p.end}return r}function De(t,l){if(!t.length)return null;let o=0,n=t.length-1,s=0;for(;o<=n;){const d=Math.floor((o+n)/2);t[d].start<=l?(s=d,o=d+1):n=d-1}return t[s].number}function Al(t,l,o,n,s){const d=t.slice(o.start,o.end);return{id:`preview-${n}-${s+1}`,sourceFileId:n,originalContent:d,editedContent:d,sourceStart:o.start,sourceEnd:o.end,sourceStartLine:De(l,o.start),sourceEndLine:De(l,Math.max(o.start,o.end-1)),tokenCount:Math.max(1,Math.ceil(d.length/2)),status:"original"}}function Bl(t,l,o="default-source",n){const s=Ee(t);if(l==="unstructured")return Nl(t,n).map((u,a)=>Al(t,s,u,o,a));const d=s.filter(u=>u.content.trim()),r=l==="structured"?1:3,S=[];for(let u=0;u<d.length;u+=r){const a=d.slice(u,u+r);if(!a.length)continue;const h=a[0].start,c=a[a.length-1].end,p=t.slice(h,c);S.push({id:`preview-${o}-${S.length+1}`,sourceFileId:o,originalContent:p,editedContent:p,sourceStart:h,sourceEnd:c,sourceStartLine:a[0].number,sourceEndLine:a[a.length-1].number,tokenCount:Math.max(1,Math.ceil(p.length/2)),status:"original"})}return S}const jl=["请结合实际情况,说明一下:","如果方便的话,请详细解答:","请用通俗易懂的方式说明:","请从实际应用角度说明:","请简洁、自然地说明:"];function Gl(t,l){const o=l&&"qaPairsPerChunk"in l?Math.min(3,ve(l.qaPairsPerChunk,1,1)):Math.min(5,ve(l==null?void 0:l.qaPairsPerRow,1,1)),n=t.flatMap((s,d)=>{if(l!=null&&l.qualityFilterEnabled&&l.filterLowQuality&&(s.status==="invalid"||!s.editedContent.trim()))return[];const[r="",...S]=s.editedContent.split(`
`),u=S.join(`
`).trim()||s.editedContent.trim(),a=r.replace(/^问[:]\s*/,"").trim()||`数据条目 ${d+1}`;return Array.from({length:o},(h,c)=>{const p=l!=null&&l.semanticEnrichment?`${jl[c]}${a}`:c===0?a:`${a}问法 ${c+1}`;return{id:o===1?`result-${d+1}`:`result-${d+1}-${c+1}`,instruction:p,input:"",output:u,originalInstruction:p,originalInput:"",originalOutput:u,status:"valid"}})});return l!=null&&l.qualityFilterEnabled?n.filter(s=>!(l.filterLowQuality&&(!s.instruction.trim()||!s.output.trim())||l.filterShortContent&&s.output.trim().length<l.minOutputLength)):n}const Ql={class:"preview-step"},Jl={class:"preview-file-switcher"},Hl={class:"file-switcher-control"},Kl={class:"file-option"},Zl=["title"],Wl={key:0},Xl={class:"file-switcher-summary"},Yl={class:"preview-workspace"},es={class:"source-pane"},ts={class:"pane-header"},ns=["data-source-start"],ls={class:"line-number"},ss={class:"line-content"},os={class:"preview-pane"},as={class:"pane-header"},is={class:"preview-toolbar"},us={class:"preview-list","aria-label":"预览条目列表"},rs=["onClick","onKeydown"],ds={class:"item-name"},cs={class:"item-source"},ps={class:"item-actions"},ms={key:0,class:"empty-result"},vs={key:1,class:"preview-editor"},fs={class:"editor-heading"},gs={class:"editor-actions"},me=6,ys=X({__name:"PreviewCompareStep",props:{sourceText:{},items:{},selectedId:{},processType:{},fileName:{},files:{},selectedFileId:{}},emits:["update:selectedId","update:selectedFileId","update:item-content","remove:item"],setup(t,{emit:l}){const o=t,n=l,s=V(null),d=V(""),r=V(1),S=V(null),u=V(""),a=U(()=>Ee(o.sourceText)),h=U(()=>o.items.find(m=>m.id===o.selectedId)??o.items[0]),c=U(()=>o.items.find(m=>m.id===S.value)),p=U(()=>o.items.filter((m,I)=>!d.value.trim()||m.editedContent.toLowerCase().includes(d.value.trim().toLowerCase())||String(I+1).includes(d.value.trim()))),i=U(()=>{const m=(r.value-1)*me;return p.value.slice(m,m+me)});function P(m,I){const T=h.value;return!T||T.sourceStart==null||T.sourceEnd==null?!1:I>=T.sourceStart&&m<=T.sourceEnd}function $(m){n("update:selectedId",m)}function b(m){$(m.id),S.value=m.id,u.value=m.editedContent}function x(){S.value=null,u.value=""}function O(){c.value&&(n("update:item-content",c.value.id,u.value),x())}function f(m){$(m.id),n("remove:item",m.id)}function R(){x()}te(d,()=>{r.value=1,x()}),te(()=>o.selectedFileId,x),te(h,async m=>{var j,K;if(!m)return;const I=p.value.findIndex(N=>N.id===m.id);if(I>=0&&(r.value=Math.floor(I/me)+1),m.sourceStart==null)return;await Te();const T=((j=s.value)==null?void 0:j.querySelector(`[data-source-start="${m.sourceStart}"]`))??((K=s.value)==null?void 0:K.querySelector(".source-line.is-highlighted"));T==null||T.scrollIntoView({block:"center",behavior:"smooth"})},{immediate:!0});function F(m){return o.items.findIndex(I=>I.id===m.id)+1}function W(m){return m.sourceStartLine==null||m.sourceEndLine==null?"手动新增,无源文件定位":m.sourceStartLine===m.sourceEndLine?`来源 ${m.sourceStartLine} `:`来源 ${m.sourceStartLine}${m.sourceEndLine} `}return(m,I)=>{const T=we,j=be,K=de,N=ye,ie=Be;return g(),w("section",Ql,[e("div",Jl,[e("div",Hl,[I[4]||(I[4]=e("span",null,"当前文件",-1)),k(j,{"model-value":t.selectedFileId,filterable:"",placeholder:"选择文件","aria-label":"选择当前预览文件","onUpdate:modelValue":I[0]||(I[0]=_=>n("update:selectedFileId",_))},{default:M(()=>[(g(!0),w(B,null,Z(t.files,_=>(g(),z(T,{key:_.id,label:_.name,value:_.id},{default:M(()=>[e("div",Kl,[e("strong",{title:_.name},C(_.name),9,Zl),e("span",null,C(_.count.toLocaleString())+" "+C(t.processType==="unstructured"?"个切片":"条记录"),1),_.modifiedCount?(g(),w("em",Wl,C(_.modifiedCount)+" 处已修改",1)):D("",!0)])]),_:2},1032,["label","value"]))),128))]),_:1},8,["model-value"])]),e("span",Xl,C(t.files.length)+" 个文件 · 当前文件 "+C(t.items.length.toLocaleString())+" "+C(t.processType==="unstructured"?"个切片":"条记录"),1)]),e("div",Yl,[e("div",es,[e("div",ts,[e("div",null,[e("strong",null,"源文件 · "+C(t.fileName),1)])]),e("div",{ref_key:"sourceViewerRef"
`).filter(ee=>ee.trim()).length;b.value.some(ee=>ee.name===v.name&&ee.size===v.size)||b.value.push({uid:y.uid||Date.now()+Math.random(),name:v.name,size:v.size,count:oe,content:Q}),N.value=!0}function pt(){b.value=[{uid:"sample-1",name:"finance_qa.jsonl",size:128*1024*1024,count:pe.split(`
`).filter(y=>y.trim()).length,content:pe}],N.value=!0}function mt(y){Object.assign(x,y),f.value=!1}function vt(){if(!x.url.trim()){A.warning("请先填写数据源地址");return}R&&clearTimeout(R),O.value=!0,R=setTimeout(()=>{R=null,O.value=!1,f.value=!0,A.success("数据源连接测试成功")},1500)}function ft(){if(!x.url.trim()){A.warning("请先填写数据源地址");return}F&&clearTimeout(F),O.value=!0,F=setTimeout(()=>{F=null,O.value=!1,f.value=!0;const y=x.type.toUpperCase(),v=`external-${Date.now()}`;b.value.push({uid:v,name:`${y} 拉取数据 ${new Date().toLocaleString("zh-CN")}`,size:Math.min(x.limit,5e3)*64,count:Math.min(x.limit,pe.split(`
`).filter(E=>E.trim()).length),content:pe}),N.value=!0,A.success(`已成功拉取 ${b.value[b.value.length-1].count.toLocaleString()} 条数据`)},2e3)}function gt(y){const v=b.value.findIndex(E=>E.uid===y);v>-1&&(b.value.splice(v,1),m.value="",I.value=[],j.value=null,le(),N.value=!0)}function yt(){b.value=[],m.value="",I.value=[],T.value=null,j.value=null,K.value={},f.value=!1,le()}async function kt(){var v;await((v=d.value)==null?void 0:v.validate())&&re("model")}async function ht(){var v;await((v=r.value)==null?void 0:v.validate())&&re("upload")}function St(){var v,E;if(b.value.length===0){A.warning(p.value==="external"?"请先拉取至少一个数据源":"请上传至少一个源数据文件");return}const y=rt();y!==m.value&&(I.value=b.value.flatMap(G=>Bl(G.content,p.value,String(G.uid),p.value==="unstructured"?P.value:void 0)),T.value=String(((v=b.value[0])==null?void 0:v.uid)??"")||null,j.value=((E=ce.value[0])==null?void 0:E.id)??null,K.value=j.value&&T.value?{[T.value]:j.value}:{},m.value=y,le()),re("preview")}function bt(y){var v;T.value&&j.value&&(K.value[T.value]=j.value),T.value=y,j.value=K.value[y]||((v=ce.value[0])==null?void 0:v.id)||null}function Ve(y){j.value=y,T.value&&(K.value[T.value]=y)}function wt(y,v){const E=I.value.find(G=>G.id===y);E&&(E.editedContent=v,E.tokenCount=Math.max(1,Math.ceil(v.length/2)),E.status=v===E.originalContent?"original":E.sourceStart==null?"manual":"modified",le(),N.value=!0)}function xt(y){const v=I.value.find(E=>E.id===y);!v||v.sourceStart==null||(v.editedContent=v.originalContent,v.tokenCount=Math.max(1,Math.ceil(v.originalContent.length/2)),v.status="original",le(),N.value=!0)}function $t(){if(!T.value)return;const y=`manual-${Date.now()}`;I.value.push({id:y,sourceFileId:T.value,originalContent:"",editedContent:"",sourceStart:null,sourceEnd:null,sourceStartLine:null,sourceEndLine:null,tokenCount:1,status:"manual"}),Ve(y),le(),N.value=!0}async function Ot(y){var G,q;if(!await((G=S.value)==null?void 0:G.open({title:"删除预览内容?",message:"删除只影响本次处理,不会修改源文件。删除后可重新从源文件生成预览。",confirmText:"删除",cancelText:"取消",tone:"danger"})))return;const E=I.value.findIndex(Q=>Q.id===y);E<0||(I.value.splice(E,1),j.value=((q=ce.value[Math.min(E,ce.value.length-1)])==null?void 0:q.id)??null,T.value&&j.value&&(K.value[T.value]=j.value),le(),N.value=!0)}async function Ct(){if(h.value==="create"){await kt();return}if(h.value==="model"){await ht();return}if(h.value==="upload"){St();return}if(h.value==="preview"){if(!I.value.length){A.warning("当前没有可生成的预览内容");return}re("generate");return}if(h.value==="generate"){H.status==="success"?re("results"):H.status!=="running"&&Pe();return}await It()}function Mt(){if(H.status==="running"){A.warning("请先停止当前生成任务");return}a.value>0&&(a.value-=1)}async function It(){if(!Ze()){A.warning("请先修正校验失败的结果");return}N.value=!1,localStorage.removeItem(he),_=!0,A.success("数据处理任务已保存"),await l.push("/data-process")}async function Tt(){var v;if(!N.value){_=!0,l.back();return}await((v=S.value)==null?void 0:v.open({title:"确认离开当前页面?",message:"当前存在未保存修改,离开后这些修改将不会保留。",confirmText:"放弃修改",cancelText:"继续编辑",tone:"danger"}))&&(_=!0,l.back())}return Et(async()=>{var v;if(_||!N.value)return!0;const y=await((v=S.value)==null?void 0:v.open({title:"确认离开当前页面?",message:"当前存在未保存修改,离开后这些修改将不会保留。",confirmText:"放弃修改",cancelText:"继续编辑",tone:"danger"}));return y&&(_=!0),!!y}),Pt(()=>{He(),R&&clearTimeout(R),F&&clearTimeout(F)}),Ut(()=>{ot(),o.load()}),(y,v)=>{var G;const E=ye;return g(),w(B,null,[e("div",to,[e("main",no,[e("div",lo,[e("div",so,[e("div",oo,[(g(),w(B,null,Z(u,(q,Q)=>(g(),w(B,{key:q.id},[Q!==0?(g(),w("div",{key:0,class:J(["step-connector",{"is-active":a.value>=Q}])},null,2)):D("",!0),e("div",{class:J(["step-item",{"is-active":a.value===Q,"is-completed":a.value>Q