import{D as e,E as t,On as n,_ as r,b as i,bt as a,ft as o,g as s,k as ee,mt as c,nt as te,o as l,ot as ne,qt as u,tr as d,v as f,vn as p,y as m}from"./runtime-core.esm-bundler-DkysjgTd.js";import{t as re}from"./objectSpread2-BmonrgTA.js";import{n as h}from"./objectWithoutProperties-BjoYlK0I.js";import{t as ie}from"./download-DUHREPuF.js";import{a as ae}from"./store-B2VrBUyT.js";import{t as oe}from"./use-access-ObRBpYsT.js";import{a as se}from"./useConfigInject-z_xeO0pP.js";import{t as ce}from"./table-EWhwMmEC.js";import{t as g}from"./form-CZK1ilUa.js";import{t as le}from"./select-DyNDAEL2.js";import{M as _}from"./console-CQVAqHCG.js";import{a as ue}from"./config-provider-D1kcLCP5.js";import{t as v}from"./alert-CkUknOsQ.js";import{t as y}from"./button-B2y2NpJm.js";import{t as de}from"./card-ZuLu6CvW.js";import{t as fe}from"./batch-dialog-mXmjBwWX.js";import{t as pe}from"./checkbox-DbdxvqS7.js";import{t as b}from"./tag-BFecLZmQ.js";import{t as x}from"./input-DgEff0DC.js";import{t as me}from"./modal-Ju-U4s3Q.js";import{t as S}from"./space-B06wu9Uj.js";import{t as he}from"./progress-Br8rQILc.js";import{r as ge,t as _e}from"./job-wizard-Db2QVhyM.js";import{t as ve}from"./switch-CtSw_Hgg.js";import{t as ye}from"./archive-account-selector-CnQ_KU9I.js";import{t as be}from"./use-archive-load-BINKTMOh.js";import{_ as xe,a as Se,b as Ce,c as we,d as Te,f as Ee,i as De,l as Oe,o as ke,p as Ae,r as je,v as Me,y as Ne}from"./knowledge-roQbw_jw.js";import{t as Pe}from"./batch-xzXgOops.js";import{t as Fe}from"./job-config-pSe-zaQB.js";import{t as Ie}from"./review-all-DOQAMi8J.js";var Le={class:`space-y-4 p-5`},Re={class:`mb-5 rounded-lg border p-4`},ze={class:`mb-0 mt-3 text-gray-500`},Be={class:`mb-5 grid grid-cols-2 gap-3 md:grid-cols-4`},Ve={class:`text-gray-500`},He={class:`mt-2 text-2xl font-semibold`},Ue={key:0,class:`mb-4 space-y-2`},We={class:`text-xs text-gray-500`},Ge={key:0},Ke={class:`max-w-xs text-red-500`},qe={key:2,class:`min-w-[240px]`},Je={key:0},Ye={key:2,class:`text-xs text-gray-500`},Xe={key:3,class:`max-w-xs text-amber-500`},Ze={key:0},Qe={key:4,class:`text-xs text-gray-500`},$e={key:5,class:`text-xs text-gray-500`},et={class:`my-4`},tt={class:`whitespace-pre-wrap`},nt={class:`text-gray-500`},rt={key:0},it={key:1},at={class:`mt-4 grid gap-6 md:grid-cols-2`},ot={class:`mb-1 text-xs text-gray-500`},st={class:`m-0 whitespace-pre-wrap break-words`},ct={class:`mt-5 border-t pt-3`},C=ee({__name:`center`,setup(ee){let{hasAccessByCodes:C}=oe(),lt=e=>e.every(e=>C([e])),w=s(()=>lt([`knowledge:write`,`im:content:read`])),T=s(()=>lt([`knowledge:review`,`im:content:read`])),E=s(()=>lt([`knowledge:publish`,`im:content:read`])),ut=s(()=>C([`knowledge:export`])),dt=s(()=>C([`stats:read`])),D=p(-1),O=s(()=>D.value!==-1),ft=p(`items`),k=p(null),A=p([]),j=p([]),pt=p([]),M=p(!1),mt=p(`new`);function ht(e){mt.value=e,M.value=!0}function gt(e,t){return _t.apply(this,arguments)}function _t(){return _t=h(function*(e,t){M.value=!1,D.value=t,yield Zt(),D.value===t&&(yield Z(e))}),_t.apply(this,arguments)}let vt=p([]),yt=p(0),N=p(1),P=p(``),F=p(``),bt=p(``),I=p(``),L=p(null),R=p(null),xt=p(``),St=e=>JSON.stringify([e.title,e.question,e.answer,e.conditions,e.category,e.kind,e.valid_until]),Ct=s(()=>!!R.value&&St(R.value)!==xt.value),z=p(!1),B=p(!1),V=p(!1),wt=p(null);function Tt(e){wt.value=j.value.find(t=>t.id===e)||null,V.value=!!wt.value}let Et=p(),Dt=!1,H=p([]),U=p(!1),Ot=p(`approve`),kt=p([]),At=s(()=>A.value.filter(e=>H.value.includes(e.id))),jt=s(()=>O.value&&(T.value||E.value||w.value)?{selectedRowKeys:H.value,onChange:e=>{H.value=e.map(String)}}:void 0),Mt=s(()=>{var e,t,n;return O.value?(((e=k.value)==null?void 0:e.counts.published)||0)>0?3:(((t=k.value)==null?void 0:t.counts.draft)||0)+(((n=k.value)==null?void 0:n.counts.approved)||0)>0?2:1:0}),Nt=s(()=>{var e;return O.value?(e=k.value)!=null&&e.source_accounts.length?Mt.value===1?`先预览范围并生成草稿,再逐条核对来源和适用条件。`:Mt.value===2?`草稿补全适用条件后审核,通过后发布;也可以勾选列表中的多条知识集中处理。`:`已发布知识可在检索测试中验证;确认结果后开启客服使用知识。`:`当前账号尚无聊天归档,请先上传归档或更换账号。`:`先选择一个客服账号,系统会预览该账号可整理的聊天范围。`});function Pt(e){return At.value.length>0&&At.value.every(t=>!Pe(t,e))}function W(e){Ot.value=e,kt.value=At.value.map(e=>re({},e)),U.value=!0}function Ft(){H.value=[],X()}function It(){return Lt.apply(this,arguments)}function Lt(){return Lt=h(function*(){if(!O.value){var e;Dt=!0,(e=Et.value)==null||e.open();return}k.value||(yield X()),B.value=!0}),Lt.apply(this,arguments)}function Rt(){ft.value=`jobs`,X()}function zt(){H.value=[],X()}function Bt(e){me.confirm({title:`取消此整理任务?`,content:`已生成的草稿会保留。取消后不再继续处理;已经开始的模型请求可能仍会计费。持续整理开关需要单独关闭。`,okText:`取消任务`,cancelText:`保留任务`,onOk:()=>on(e,`cancel`)})}let G=p(!1),K=p(!1),Vt=be(),{loading:Ht}=Vt,Ut=!0,q,J=0,Y={draft:`待审核`,approved:`待发布`,published:`已发布`,rejected:`已驳回`,disabled:`已停用`,stale:`来源已变化`,queued:`等待处理`,running:`处理中`,paused:`已暂停`,completed:`已完成`,failed:`失败`,cancelled:`已取消`},Wt={draft:`orange`,approved:`blue`,published:`green`,rejected:`red`,stale:`red`,completed:`green`,failed:`red`,running:`blue`},Gt={lexical:`关键词检索`,hybrid:`关键词与语义检索`,lexical_fallback:`语义服务暂不可用,已使用关键词`,unavailable:`检索暂不可用`},Kt=[{value:``,label:`全部状态`},...[`draft`,`approved`,`published`,`rejected`,`disabled`,`stale`].map(e=>({value:e,label:Y[e]}))],qt=[{value:`qa`,label:`标准问答`},{value:`procedure`,label:`业务流程`},{value:`case`,label:`对话案例`}],Jt=s(()=>{var e;return(((e=k.value)==null?void 0:e.source_accounts)||[]).map(e=>({value:e.id,label:e.display_name||e.external_account_id}))});function X(){return Yt.apply(this,arguments)}function Yt(){return Yt=h(function*(){yield Vt.run(function(){var e=h(function*(e){let t=D.value,[n,r,i,a,o]=yield Promise.all([we(t,e),Se(t,P.value,F.value,N.value,e),ke(t,e),dt.value?Te(t,e):Promise.resolve({items:[]}),T.value?Oe(e):Promise.resolve({items:[]})]);return{summary:n,entries:r,tasks:i,logs:a,reviews:o}});return function(t){return e.apply(this,arguments)}}(),e=>{k.value=e.summary,A.value=e.entries.items,yt.value=e.entries.total,j.value=e.tasks.items,pt.value=e.reviews.items,vt.value=e.logs.items}),Xt()}),Yt.apply(this,arguments)}function Xt(){q&&clearTimeout(q),!(!Ut||![...j.value,...pt.value].some(e=>[`queued`,`running`].includes(e.status)))&&(q=setTimeout(()=>{document.visibilityState===`visible`&&!K.value?X():Xt()},5e3))}function Zt(){return Qt.apply(this,arguments)}function Qt(){return Qt=h(function*(){let e=D.value;J++,R.value=null,z.value=!1,B.value=!1,V.value=!1,wt.value=null,A.value=[],j.value=[],vt.value=[],L.value=null,I.value=``,k.value=null,H.value=[],U.value=!1,kt.value=[],N.value=1,yield X(),e===D.value&&(Dt&&O.value?(Dt=!1,B.value=!0):Dt=!1)}),Qt.apply(this,arguments)}function Z(e){return $t.apply(this,arguments)}function $t(){return $t=h(function*(e){if(!O.value){ue.info(`请先选择具体账号,再查看和审核知识`);return}let t=++J,n=yield De(D.value,e);t===J&&(R.value=n,xt.value=St(n),G.value=!1,z.value=!0)}),$t.apply(this,arguments)}function Q(e){return en.apply(this,arguments)}function en(){return en=h(function*(e){if(!K.value){K.value=!0;try{yield e(),yield X()}finally{K.value=!1}}}),en.apply(this,arguments)}function tn(){return nn.apply(this,arguments)}function nn(){return nn=h(function*(){let e=R.value;if(!e)return;let t=D.value,n=J;yield Q(h(function*(){let r=yield xe(t,e);n===J&&(R.value=r,xt.value=St(r),G.value=!1),ue.success(`已保存为草稿,需要重新审核后发布`)}))}),nn.apply(this,arguments)}function $(e){return rn.apply(this,arguments)}function rn(){return rn=h(function*(e,t=0){let n=R.value;if(!n)return;let r=D.value,i=J;yield Q(h(function*(){let a=yield Ee(r,n,e,G.value,t);i===J&&(R.value=a,xt.value=St(a),G.value=!1),ue.success(e===`restore`?`已恢复为草稿,请审核后重新发布`:`操作成功`)}))}),rn.apply(this,arguments)}function an(){if(!R.value)return;let e=re({},R.value),t=D.value,n=J;me.confirm({title:`删除这条已驳回知识?`,content:`将删除知识及其来源快照和版本记录,原始聊天归档保留。删除后无法恢复。`,okText:`确认删除`,okType:`danger`,cancelText:`取消`,onOk:()=>Q(h(function*(){yield Ee(t,e,`delete`,!0),n===J&&(z.value=!1,R.value=null),H.value=H.value.filter(t=>t!==e.id),ue.success(`已删除`)}))})}function on(e,t){return sn.apply(this,arguments)}function sn(){return sn=h(function*(e,t){let n=D.value;yield Q(()=>Ae(n,e,t))}),sn.apply(this,arguments)}function cn(e){return ln.apply(this,arguments)}function ln(){return ln=h(function*(e){let t=D.value;yield Q(()=>Ne(t,e))}),ln.apply(this,arguments)}function un(){return dn.apply(this,arguments)}function dn(){return dn=h(function*(){if(K.value)return;if(L.value=null,I.value=``,!O.value){I.value=`请先选择具体账号`;return}let e=bt.value.trim(),t=Array.from(e).length;if(t<2){I.value=`请输入至少 2 个字符的检索问题`;return}if(t>2e3){I.value=`检索问题不能超过 2000 个字符`;return}bt.value=e;let n=D.value,r=J;K.value=!0;try{let t=yield Me(n,e);r===J&&(L.value=t)}catch(e){r===J&&(I.value=ae(e,`检索失败,请稍后重试`))}finally{K.value=!1}}),dn.apply(this,arguments)}function fn(){return pn.apply(this,arguments)}function pn(){return pn=h(function*(){let e=D.value;yield Q(h(function*(){let t=yield je(e);ie({fileName:`knowledge.jsonl`,source:t})}))}),pn.apply(this,arguments)}function mn(){Ut=!1,J++,Vt.cancel(),q&&clearTimeout(q)}return te(()=>{Ut=!0,Xt()}),ne(mn),o(mn),(o,s)=>{var ee;return c(),i(`div`,Le,[e(n(de),{title:`知识中心`},{extra:u(()=>[e(ye,{ref_key:`accountSelector`,ref:Et,modelValue:D.value,"onUpdate:modelValue":s[0]||(s[0]=e=>D.value=e),disabled:K.value||B.value||U.value||V.value||M.value,onChange:Zt},null,8,[`modelValue`,`disabled`])]),default:u(()=>[s[39]||(s[39]=r(`p`,{class:`mb-4 text-gray-500`},`把历史聊天整理成可追溯的知识,审核发布后供客服回答时参考。`,-1)),r(`div`,Re,[e(n(ge),{size:`small`,current:Mt.value,items:[{title:`选择账号`},{title:`预览并整理聊天`},{title:`审核知识`},{title:`发布并测试使用`}]},null,8,[`current`]),r(`p`,ze,d(Nt.value),1)]),r(`div`,Be,[(c(),i(l,null,a([`draft`,`approved`,`published`,`stale`],e=>{var t;return r(`div`,{key:e,class:`rounded-lg border p-4`},[r(`div`,Ve,d(Y[e]),1),r(`div`,He,d(((t=k.value)==null?void 0:t.counts[e])||0),1)])}),64))]),e(n(S),{wrap:``},{default:u(()=>{var i,a,o;return[e(n(b),null,{default:u(()=>{var e;return[t(d((e=k.value)!=null&&e.semantic_configured?`支持语义与关键词检索`:`关键词检索已就绪`),1)]}),_:1}),s[38]||(s[38]=r(`span`,null,`客服使用知识`,-1)),e(n(ve),{checked:!!((i=k.value)!=null&&(i=i.settings)!=null&&i.enabled),disabled:!O.value||!E.value||K.value||!((a=k.value)!=null&&(a=a.settings)!=null&&a.enabled)&&!((o=k.value)!=null&&o.counts.published),onChange:s[1]||(s[1]=e=>cn(!!e))},null,8,[`checked`,`disabled`]),w.value?(c(),f(n(y),{key:0,type:`primary`,disabled:K.value||n(Ht),onClick:It},{default:u(()=>[t(d(O.value?`从聊天整理知识`:`选择账号开始整理`),1)]),_:1},8,[`disabled`])):m(``,!0),ut.value?(c(),f(n(y),{key:1,disabled:!O.value||K.value,onClick:fn},{default:u(()=>[...s[36]||(s[36]=[t(`导出已发布知识`,-1)])]),_:1},8,[`disabled`])):m(``,!0),e(n(y),{loading:n(Ht),onClick:X},{default:u(()=>[...s[37]||(s[37]=[t(`刷新`,-1)])]),_:1},8,[`loading`])]}),_:1}),O.value?m(``,!0):(c(),f(n(v),{key:0,class:`mt-4`,type:`info`,"show-icon":``,message:`当前汇总全部授权账号,可一键审核全部授权账号的草稿。整理聊天、单条编辑、发布和检索测试需选择具体账号。`}))]),_:1}),e(n(de),null,{default:u(()=>[e(n(_),{"active-key":ft.value,"onUpdate:activeKey":s[17]||(s[17]=e=>ft.value=e)},{default:u(()=>[e(n(_).TabPane,{key:`items`,tab:`知识与审核`},{default:u(()=>[e(n(S),{class:`mb-4`,wrap:``},{default:u(()=>[e(n(le),{value:P.value,"onUpdate:value":s[2]||(s[2]=e=>P.value=e),options:Kt,style:{width:`150px`},onChange:s[3]||(s[3]=()=>{N.value=1,zt()})},null,8,[`value`]),e(n(x).Search,{value:F.value,"onUpdate:value":s[4]||(s[4]=e=>F.value=e),placeholder:`搜索标题或问题`,style:{width:`300px`},onSearch:s[5]||(s[5]=()=>{N.value=1,zt()})},null,8,[`value`])]),_:1}),T.value?(c(),f(n(S),{key:0,class:`mb-4 flex`,wrap:``},{default:u(()=>[e(n(y),{type:`primary`,disabled:K.value,onClick:s[6]||(s[6]=e=>ht(`new`))},{default:u(()=>[t(d(O.value?`一键审核此账号全部草稿`:`一键审核全部授权账号`),1)]),_:1},8,[`disabled`]),e(n(y),{onClick:s[7]||(s[7]=e=>ht(`jobs`))},{default:u(()=>[...s[40]||(s[40]=[t(`审核任务与结果`,-1)])]),_:1}),pt.value.some(e=>[`queued`,`running`].includes(e.status))?(c(),f(n(b),{key:0,color:`blue`},{default:u(()=>[...s[41]||(s[41]=[t(`后台审核进行中`,-1)])]),_:1})):m(``,!0)]),_:1})):m(``,!0),O.value&&(T.value||E.value||w.value)?(c(),f(n(S),{key:1,class:`mb-4 flex`,wrap:``},{default:u(()=>[r(`span`,null,`已选 `+d(H.value.length)+` 条(当前页)`,1),T.value?(c(),f(n(y),{key:0,disabled:!H.value.length||K.value,onClick:s[8]||(s[8]=e=>W(`approve`))},{default:u(()=>[...s[42]||(s[42]=[t(`批量审核`,-1)])]),_:1},8,[`disabled`])):m(``,!0),E.value?(c(),f(n(y),{key:1,type:`primary`,disabled:!Pt(`publish`)||K.value,onClick:s[9]||(s[9]=e=>W(`publish`))},{default:u(()=>[...s[43]||(s[43]=[t(`发布选中`,-1)])]),_:1},8,[`disabled`])):m(``,!0),T.value?(c(),f(n(y),{key:2,disabled:!Pt(`reject`)||K.value,onClick:s[10]||(s[10]=e=>W(`reject`))},{default:u(()=>[...s[44]||(s[44]=[t(`驳回选中`,-1)])]),_:1},8,[`disabled`])):m(``,!0),E.value?(c(),f(n(y),{key:3,danger:``,disabled:!Pt(`disable`)||K.value,onClick:s[11]||(s[11]=e=>W(`disable`))},{default:u(()=>[...s[45]||(s[45]=[t(`停用选中`,-1)])]),_:1},8,[`disabled`])):m(``,!0),w.value?(c(),f(n(y),{key:4,danger:``,disabled:!Pt(`delete`)||K.value,onClick:s[12]||(s[12]=e=>W(`delete`))},{default:u(()=>[...s[46]||(s[46]=[t(`删除已驳回`,-1)])]),_:1},8,[`disabled`])):m(``,!0),H.value.length?(c(),f(n(y),{key:5,type:`link`,onClick:s[13]||(s[13]=e=>H.value=[])},{default:u(()=>[...s[47]||(s[47]=[t(`清空选择`,-1)])]),_:1})):m(``,!0)]),_:1})):m(``,!0),e(n(ce),{"row-selection":jt.value,"data-source":A.value,"row-key":`id`,loading:n(Ht),pagination:{current:N.value,pageSize:30,total:yt.value,showSizeChanger:!1},onChange:s[14]||(s[14]=e=>{N.value=e.current||1,zt()}),columns:[{title:`问题 / 标题`,dataIndex:`title`,key:`title`},{title:`分类`,dataIndex:`category`},{title:`状态`,key:`status`,width:130},{title:`版本`,dataIndex:`revision`,width:75},{title:`更新时间`,dataIndex:`updated_at`,width:230}]},{emptyText:u(()=>[e(n(se),{description:F.value||P.value?`没有符合筛选条件的知识,可调整筛选后重试。`:O.value?`还没有知识,先从该账号的历史聊天生成待审草稿。`:`选择具体账号,开始整理历史聊天。`},{default:u(()=>[w.value&&!F.value&&!P.value?(c(),f(n(y),{key:0,type:`primary`,onClick:It},{default:u(()=>[t(d(O.value?`预览并整理聊天`:`选择账号`),1)]),_:1})):m(``,!0)]),_:1},8,[`description`])]),bodyCell:u(({column:e,record:r})=>[e.key===`title`?(c(),f(n(y),{key:0,type:`link`,class:`!h-auto whitespace-normal text-left`,onClick:e=>Z(r.id)},{default:u(()=>[t(d(r.title),1)]),_:2},1032,[`onClick`])):e.key===`status`?(c(),f(n(b),{key:1,color:Wt[r.status]},{default:u(()=>[t(d(Y[r.status]),1)]),_:2},1032,[`color`])):m(``,!0)]),_:1},8,[`row-selection`,`data-source`,`loading`,`pagination`])]),_:1}),e(n(_).TabPane,{key:`jobs`,tab:`加工任务`},{default:u(()=>{var o;return[e(n(v),{class:`mb-4`,type:`info`,"show-icon":``,message:`任务分批处理,可暂停和继续。只有角色明确的单聊文本会整理为草稿;采样末尾不完整的问答会丢弃。`}),O.value&&(o=k.value)!=null&&o.watches.length?(c(),i(`div`,Ue,[(c(!0),i(l,null,a(k.value.watches,t=>{var a;return c(),i(`div`,{key:t.source_account_id,class:`flex items-center gap-3`},[r(`span`,null,d((a=Jt.value.find(e=>e.value===t.source_account_id))==null?void 0:a.label)+` · 自动整理新增聊天`,1),e(n(ve),{checked:!!t.enabled,disabled:!w.value||K.value,onChange:e=>Q(()=>n(Ce)(D.value,t.source_account_id,!!e))},null,8,[`checked`,`disabled`,`onChange`])])}),128))])):m(``,!0),e(n(ce),{"data-source":j.value,"row-key":`id`,pagination:{pageSize:15},columns:[{title:`客服来源`,key:`source`},{title:`创建时间`,dataIndex:`created_at`},{title:`状态`,key:`status`},{title:`处理结果`,key:`progress`},{title:`模型用量`,key:`usage`},{title:`操作`,key:`actions`}]},{bodyCell:u(({column:a,record:o})=>[a.key===`source`?(c(),i(l,{key:0},[t(d(o.options.source_name||`历史任务`),1),r(`div`,We,[t(d(o.options.engine===`model`?`模型整理`:`规则整理`)+d(o.options.incremental?` · 增量任务`:``),1),o.options.engine===`model`?(c(),i(`span`,Ge,` · `+d(o.options.model_name||o.options.model_provider_id||`系统默认模型`),1)):m(``,!0)])],64)):a.key===`status`?(c(),i(l,{key:1},[e(n(b),{color:Wt[o.status]},{default:u(()=>[t(d(Y[o.status]),1)]),_:2},1032,[`color`]),r(`div`,Ke,d(o.error),1)],64)):a.key===`progress`?(c(),i(`div`,qe,[t(`已读 `+d(o.processed),1),o.total_messages!==null&&o.total_messages!==void 0?(c(),i(`span`,Je,` / `+d(o.total_messages),1)):m(``,!0),s[48]||(s[48]=t(` 条 `,-1)),o.progress_percent!==null&&o.progress_percent!==void 0?(c(),f(n(he),{key:1,percent:o.progress_percent,size:`small`,status:o.status===`failed`?`exception`:o.status===`running`?`active`:void 0},null,8,[`percent`,`status`])):m(``,!0),o.pending_items?(c(),i(`div`,Ye,`待整理问答 `+d(o.pending_items)+` 条(已保存断点)`,1)):m(``,!0),r(`div`,null,`草稿 `+d(o.created_items)+` · 重复 `+d(o.duplicates)+` · 无效消息 `+d(o.skipped),1),o.options.model_format_fallbacks?(c(),i(`div`,Xe,[t(`模型格式异常 `+d(o.options.model_format_fallbacks)+` 条,已保留原文待审。`,1),o.options.model_last_warning?(c(),i(`span`,Ze,`最近原因:`+d(o.options.model_last_warning),1)):m(``,!0)])):m(``,!0),o.completion_reason&&o.status===`completed`?(c(),i(`div`,Qe,d(o.completion_reason===`message_limit`?`达到消息上限;末尾不完整问答已丢弃`:`所选范围已读取完成`),1)):m(``,!0),o.status===`completed`&&!o.created_items?(c(),i(`div`,$e,`未生成新知识:请检查有效文本、完整问答或是否已被其他任务整理。`)):m(``,!0)])):a.key===`usage`?(c(),i(l,{key:3},[t(d(o.model_calls)+` 次调用`,1),s[49]||(s[49]=r(`br`,null,null,-1)),t(`输入 `+d(o.input_chars)+` / 输出 `+d(o.output_chars)+` 字符`,1)],64)):a.key===`actions`&&O.value&&w.value?(c(),i(l,{key:4},[[`queued`,`running`].includes(o.status)?(c(),f(n(y),{key:0,disabled:K.value,onClick:e=>on(o.id,`pause`)},{default:u(()=>[...s[50]||(s[50]=[t(`暂停`,-1)])]),_:1},8,[`disabled`,`onClick`])):m(``,!0),[`paused`,`failed`].includes(o.status)?(c(),f(n(y),{key:1,disabled:K.value,onClick:e=>Tt(o.id)},{default:u(()=>[...s[51]||(s[51]=[t(`配置 / 继续`,-1)])]),_:1},8,[`disabled`,`onClick`])):m(``,!0),[`queued`,`running`,`paused`,`failed`].includes(o.status)?(c(),f(n(y),{key:2,danger:``,type:`link`,disabled:K.value,onClick:e=>Bt(o.id)},{default:u(()=>[...s[52]||(s[52]=[t(`取消任务`,-1)])]),_:1},8,[`disabled`,`onClick`])):m(``,!0)],64)):m(``,!0)]),_:1},8,[`data-source`])]}),_:1}),e(n(_).TabPane,{key:`test`,tab:`检索测试`},{default:u(()=>[s[54]||(s[54]=r(`p`,{class:`text-gray-500`},`测试只检索已发布知识,不发送客服消息。相关度是排序参考,不代表事实正确率。`,-1)),O.value&&k.value&&!k.value.counts.published?(c(),f(n(v),{key:0,class:`mb-3`,type:`info`,"show-icon":``,message:`当前账号暂无已发布知识,请先审核并发布知识后再测试检索。`})):m(``,!0),e(n(x).Search,{value:bt.value,"onUpdate:value":s[15]||(s[15]=e=>bt.value=e),placeholder:`输入一个真实业务问题(2–2000 个字符)`,"enter-button":`检索`,disabled:!O.value,loading:K.value,onSearch:un,onChange:s[16]||(s[16]=e=>I.value=``)},null,8,[`value`,`disabled`,`loading`]),I.value?(c(),f(n(v),{key:1,class:`mt-3`,type:`error`,"show-icon":``,message:I.value},null,8,[`message`])):m(``,!0),L.value?(c(),i(l,{key:2},[r(`p`,et,d(Gt[L.value.mode]||L.value.mode)+` · `+d(L.value.elapsed_ms)+` ms · `+d(L.value.hits.length)+` 条命中`,1),L.value.hits.length?m(``,!0):(c(),f(n(se),{key:0,description:k.value&&!k.value.counts.published?`当前账号没有已发布知识,审核通过后还需发布才能检索。`:`没有可靠命中。请补充问题信息,或发布相应知识。`},null,8,[`description`])),(c(!0),i(l,null,a(L.value.hits,i=>(c(),f(n(de),{key:i.id,class:`mb-3`,title:i.title},{extra:u(()=>[e(n(y),{type:`link`,onClick:e=>Z(i.id)},{default:u(()=>[...s[53]||(s[53]=[t(`查看来源`,-1)])]),_:1},8,[`onClick`])]),default:u(()=>[r(`p`,tt,d(i.answer),1),r(`p`,nt,`适用条件:`+d(i.conditions),1),e(n(b),null,{default:u(()=>[t(`版本 `+d(i.revision),1)]),_:2},1024),e(n(b),null,{default:u(()=>[t(`相关度 `+d(i.score),1)]),_:2},1024)]),_:2},1032,[`title`]))),128))],64)):m(``,!0)]),_:1}),dt.value?(c(),f(n(_).TabPane,{key:`traces`,tab:`引用记录`},{default:u(()=>[e(n(ce),{"data-source":vt.value,"row-key":`id`,pagination:{pageSize:15},columns:[{title:`时间`,dataIndex:`created_at`},{title:`问题`,dataIndex:`query`},{title:`知识来源`,key:`hits`},{title:`检索方式`,key:`mode`},{title:`耗时 ms`,dataIndex:`elapsed_ms`}]},{bodyCell:u(({column:e,record:r})=>[e.key===`hits`?(c(),i(l,{key:0},[r.hits.length?m(``,!0):(c(),i(`span`,rt,`无命中`)),(c(!0),i(l,null,a(r.hits,e=>(c(),f(n(y),{key:e.id,type:`link`,onClick:t=>Z(e.id)},{default:u(()=>[t(d(e.id.slice(0,8))+` · v`+d(e.revision),1)]),_:2},1032,[`onClick`]))),128))],64)):e.key===`mode`?(c(),i(`span`,it,d(Gt[r.mode]||r.mode),1)):m(``,!0)]),_:1},8,[`data-source`])]),_:1})):m(``,!0)]),_:1},8,[`active-key`])]),_:1}),e(_e,{open:B.value,"onUpdate:open":s[18]||(s[18]=e=>B.value=e),"account-id":D.value,sources:((ee=k.value)==null?void 0:ee.source_accounts)||[],onCreated:Rt},null,8,[`open`,`account-id`,`sources`]),e(Fe,{open:V.value,"onUpdate:open":s[19]||(s[19]=e=>V.value=e),"account-id":D.value,job:wt.value,onFinished:X},null,8,[`open`,`account-id`,`job`]),e(Ie,{open:M.value,"onUpdate:open":s[20]||(s[20]=e=>M.value=e),"account-id":D.value,"initial-tab":mt.value,onChanged:X,onInspect:gt},null,8,[`open`,`account-id`,`initial-tab`]),e(fe,{open:U.value,"onUpdate:open":s[21]||(s[21]=e=>U.value=e),"account-id":D.value,entries:kt.value,action:Ot.value,onFinished:Ft,onEdit:s[22]||(s[22]=e=>{U.value=!1,Z(e)})},null,8,[`open`,`account-id`,`entries`,`action`]),e(n(me),{open:z.value,"onUpdate:open":s[35]||(s[35]=e=>z.value=e),title:`知识审核与来源`,width:`1100px`,footer:null,"destroy-on-close":!0},{default:u(()=>{var o;return[R.value?(c(),i(l,{key:0},[e(n(S),{class:`mb-4`},{default:u(()=>[e(n(b),{color:Wt[R.value.status]},{default:u(()=>[t(d(Y[R.value.status]),1)]),_:1},8,[`color`]),e(n(b),null,{default:u(()=>[t(`版本 `+d(R.value.revision),1)]),_:1})]),_:1}),(c(!0),i(l,null,a(R.value.flags,e=>(c(),f(n(v),{key:e,message:e,type:`warning`,class:`mb-2`},null,8,[`message`]))),128)),r(`div`,at,[r(`div`,null,[s[55]||(s[55]=r(`h3`,{class:`mb-3 font-semibold`},`来源对话(已自动脱敏)`,-1)),(o=R.value.sources)!=null&&o.length?m(``,!0):(c(),f(n(se),{key:0,description:`暂无可查看的来源,请检查正文查看权限`})),(c(!0),i(l,null,a(R.value.sources,e=>(c(),i(`div`,{key:e.message_id,class:`mb-3 rounded border p-3`},[r(`div`,ot,d(e.role===`staff`?`客服`:`客户`)+` · `+d(e.sent_at)+` · v`+d(e.version_no),1),r(`p`,st,d(e.content),1)]))),128))]),e(n(g),{layout:`vertical`},{default:u(()=>[e(n(g).Item,{label:`标题`},{default:u(()=>[e(n(x),{value:R.value.title,"onUpdate:value":s[23]||(s[23]=e=>R.value.title=e),maxlength:160,disabled:!w.value},null,8,[`value`,`disabled`])]),_:1}),e(n(S),null,{default:u(()=>[e(n(g).Item,{label:`类型`},{default:u(()=>[e(n(le),{value:R.value.kind,"onUpdate:value":s[24]||(s[24]=e=>R.value.kind=e),options:qt,disabled:!w.value,style:{width:`140px`}},null,8,[`value`,`disabled`])]),_:1}),e(n(g).Item,{label:`分类`},{default:u(()=>[e(n(x),{value:R.value.category,"onUpdate:value":s[25]||(s[25]=e=>R.value.category=e),disabled:!w.value},null,8,[`value`,`disabled`])]),_:1})]),_:1}),e(n(g).Item,{label:`完整问题`},{default:u(()=>[e(n(x).TextArea,{value:R.value.question,"onUpdate:value":s[26]||(s[26]=e=>R.value.question=e),rows:3,maxlength:4e3,disabled:!w.value},null,8,[`value`,`disabled`])]),_:1}),e(n(g).Item,{label:`标准答案 / 步骤`},{default:u(()=>[e(n(x).TextArea,{value:R.value.answer,"onUpdate:value":s[27]||(s[27]=e=>R.value.answer=e),rows:7,maxlength:8e3,disabled:!w.value},null,8,[`value`,`disabled`])]),_:1}),e(n(g).Item,{label:`适用条件(必填)`},{default:u(()=>[e(n(x).TextArea,{value:R.value.conditions,"onUpdate:value":s[28]||(s[28]=e=>R.value.conditions=e),rows:3,maxlength:2e3,disabled:!w.value},null,8,[`value`,`disabled`])]),_:1}),e(n(g).Item,{label:`有效期截止日期(可选)`},{default:u(()=>[e(n(x),{value:R.value.valid_until,"onUpdate:value":s[29]||(s[29]=e=>R.value.valid_until=e),type:`date`,disabled:!w.value},null,8,[`value`,`disabled`])]),_:1})]),_:1})]),Ct.value?(c(),f(n(v),{key:0,class:`my-3`,type:`info`,message:`修改尚未保存。请先保存草稿,再审核或发布。`})):m(``,!0),R.value.status===`draft`&&T.value?(c(),f(n(pe),{key:1,checked:G.value,"onUpdate:checked":s[30]||(s[30]=e=>G.value=e),class:`my-4`},{default:u(()=>[...s[56]||(s[56]=[t(`已核对客服身份、事实、适用条件和脱敏;内容可作为通用经验。涉及医疗内容已完成专业审核。`,-1)])]),_:1},8,[`checked`])):m(``,!0),e(n(S),{wrap:``},{default:u(()=>[w.value?(c(),f(n(y),{key:0,loading:K.value,disabled:R.value.status===`stale`,onClick:tn},{default:u(()=>[...s[57]||(s[57]=[t(`保存草稿`,-1)])]),_:1},8,[`loading`,`disabled`])):m(``,!0),T.value&&R.value.status===`draft`?(c(),f(n(y),{key:1,type:`primary`,disabled:!G.value||K.value||Ct.value||!R.value.conditions.trim(),onClick:s[31]||(s[31]=e=>$(`approve`))},{default:u(()=>[...s[58]||(s[58]=[t(`审核通过`,-1)])]),_:1},8,[`disabled`])):m(``,!0),T.value&&[`draft`,`approved`].includes(R.value.status)?(c(),f(n(y),{key:2,danger:``,disabled:K.value,onClick:s[32]||(s[32]=e=>$(`reject`))},{default:u(()=>[...s[59]||(s[59]=[t(`驳回`,-1)])]),_:1},8,[`disabled`])):m(``,!0),E.value&&R.value.status===`approved`?(c(),f(n(y),{key:3,type:`primary`,loading:K.value,disabled:Ct.value,onClick:s[33]||(s[33]=e=>$(`publish`))},{default:u(()=>[...s[60]||(s[60]=[t(`发布到知识库`,-1)])]),_:1},8,[`loading`,`disabled`])):m(``,!0),w.value&&R.value.status===`rejected`?(c(),f(n(y),{key:4,danger:``,disabled:K.value,onClick:an},{default:u(()=>[...s[61]||(s[61]=[t(`删除已驳回知识`,-1)])]),_:1},8,[`disabled`])):m(``,!0),E.value&&R.value.status===`published`?(c(),f(n(y),{key:5,danger:``,disabled:K.value,onClick:s[34]||(s[34]=e=>$(`disable`))},{default:u(()=>[...s[62]||(s[62]=[t(`停用`,-1)])]),_:1},8,[`disabled`])):m(``,!0)]),_:1}),r(`div`,ct,[s[64]||(s[64]=r(`h3`,{class:`font-semibold`},`版本与操作记录`,-1)),(c(!0),i(l,null,a(R.value.history,(e,a)=>(c(),i(`div`,{key:a,class:`flex items-center justify-between py-1 text-sm`},[r(`span`,null,`v`+d(e.revision)+` · `+d(e.action)+` · `+d(e.created_at),1),w.value&&e.revision$(`restore`,e.revision)},{default:u(()=>[...s[63]||(s[63]=[t(`恢复为草稿`,-1)])]),_:1},8,[`disabled`,`onClick`])):m(``,!0)]))),128))])],64)):m(``,!0)]}),_:1},8,[`open`])])}}});export{C as default};