@customize-agent/server 3.0.10 → 3.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +54 -36
- package/.next/prerender-manifest.json +3 -3
- package/.next/routes-manifest.json +6 -0
- package/.next/server/chunks/3445.js +6 -6
- package/.next/server/chunks/5076.js +1 -1
- package/.next/server/chunks/8204.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages/api/documents/chapter/regenerate.js +1 -1
- package/.next/server/pages/api/documents/chapter/regenerate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/export.js +1 -1
- package/.next/server/pages/api/documents/export.js.nft.json +1 -1
- package/.next/server/pages/api/documents/generate.js +1 -1
- package/.next/server/pages/api/documents/generate.js.nft.json +1 -1
- package/.next/server/pages/api/documents/specs.js +1 -0
- package/.next/server/pages/api/documents/specs.js.nft.json +1 -0
- package/.next/server/pages/api/documents/templates.js +1 -1
- package/.next/server/pages/api/documents/templates.js.nft.json +1 -1
- package/.next/server/pages/context/long-term.html +1 -1
- package/.next/server/pages/context/short-term.html +1 -1
- package/.next/server/pages/document-roles.html +1 -1
- package/.next/server/pages/document-specs.html +1 -0
- package/.next/server/pages/document-specs.js.nft.json +1 -0
- package/.next/server/pages/documents.html +1 -1
- package/.next/server/pages/guide.html +1 -1
- package/.next/server/pages/index.html +1 -1
- package/.next/server/pages/knowledge/file-detail.html +1 -1
- package/.next/server/pages/knowledge/files.html +1 -1
- package/.next/server/pages/knowledge/manage.html +1 -1
- package/.next/server/pages/knowledge/search.html +1 -1
- package/.next/server/pages/knowledge.html +1 -1
- package/.next/server/pages/models.html +1 -1
- package/.next/server/pages/overview.html +1 -1
- package/.next/server/pages/prompt.html +1 -1
- package/.next/server/pages/settings.html +1 -1
- package/.next/server/pages-manifest.json +22 -20
- package/.next/static/chunks/{400-ba996d76e74a7368.js → 400-f06f00619f22421e.js} +1 -1
- package/.next/static/chunks/730-727fe4b055c78dc2.js +1 -0
- package/.next/static/chunks/740-2bcba39d841f2b16.js +16 -0
- package/.next/static/chunks/{845-b394c886baabe12f.js → 804-e654a1589d9adc65.js} +3 -3
- package/.next/static/chunks/846-fed995f7c83fc6c3.js +1 -0
- package/.next/static/chunks/958-66e2dcf301fb3c3f.js +1 -0
- package/.next/static/chunks/pages/{_app-15fb8428c7126df0.js → _app-49c11d5b0712c7a5.js} +9 -9
- package/.next/static/chunks/pages/context/{long-term-9685fc1fd8397807.js → long-term-710aaeb12e378258.js} +1 -1
- package/.next/static/chunks/pages/context/{short-term-86f5d204405bb05c.js → short-term-e68f01478e7ed238.js} +1 -1
- package/.next/static/chunks/pages/document-roles-caee7af42da4f792.js +1 -0
- package/.next/static/chunks/pages/document-specs-7085069b6dcdaee6.js +1 -0
- package/.next/static/chunks/pages/documents-b78988e17525927f.js +1 -0
- package/.next/static/chunks/pages/{guide-0aa6938c95fd8152.js → guide-b495954d18d56b33.js} +1 -1
- package/.next/static/chunks/pages/knowledge/{file-detail-21dbc84d04f969ca.js → file-detail-793d12234ccddac1.js} +1 -1
- package/.next/static/chunks/pages/knowledge/{files-369d7ccf6a6e4e43.js → files-a3a4bbc49c980b46.js} +1 -1
- package/.next/static/chunks/pages/knowledge/manage-64ad6cdce068edb1.js +1 -0
- package/.next/static/chunks/pages/knowledge/{search-5a199ff773f7938b.js → search-fe148477dfe05966.js} +1 -1
- package/.next/static/chunks/pages/models-6131bc7596604158.js +1 -0
- package/.next/static/chunks/pages/overview-db5df4f0bec2a77c.js +1 -0
- package/.next/static/yEauW-YU8G-h4UdYFV8_d/_buildManifest.js +1 -0
- package/package.json +4 -4
- package/.next/static/PkdECgLy3eGpkRC2sc90n/_buildManifest.js +0 -1
- package/.next/static/chunks/228-7112f995b33b1fd3.js +0 -1
- package/.next/static/chunks/740-cd38299e151d3ffc.js +0 -16
- package/.next/static/chunks/951-320008e618be7e4f.js +0 -1
- package/.next/static/chunks/958-0793922b6b146891.js +0 -1
- package/.next/static/chunks/pages/document-roles-1449654aa961426e.js +0 -1
- package/.next/static/chunks/pages/documents-dc6582d6886d4fb6.js +0 -1
- package/.next/static/chunks/pages/knowledge/manage-447ce42652c203f4.js +0 -1
- package/.next/static/chunks/pages/models-fc67c4147d2aa3cb.js +0 -1
- package/.next/static/chunks/pages/overview-558db8205a06d058.js +0 -1
- /package/.next/static/{PkdECgLy3eGpkRC2sc90n → yEauW-YU8G-h4UdYFV8_d}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[893],{260:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>N});var o=n(5321),a=n(7109),i=n(3014),r=n(7807),c=n(1702),s=n(5114),l=n(6171),d=n(3442),u=n(4668),p=n(8787),y=n(4849),m=n(9400),h=n(5258),f=n(3455),g=n(9650),x=n(8209),w=n(486),S=n(3374),j=n(8383),T=n(6619),b=n(3998),C=n(6578),v=n(5551);let O={project_fact:"项目知识",user_preference:"用户偏好",feedback:"历史纠偏",pattern:"解决方案"},E={high:"red",medium:"orange",low:"default"};function N(){let e=(0,i.Vr)(),{message:t}=r.A.useApp(),[n,N]=(0,a.useState)(!0),[P,A]=(0,a.useState)([]),[k,R]=(0,a.useState)({count:0,totalBytes:0}),[J,U]=(0,a.useState)(""),[D,I]=(0,a.useState)(!1),[_,L]=(0,a.useState)(null),[z,B]=(0,a.useState)(""),[M,H]=(0,a.useState)(""),[W,F]=(0,a.useState)(!1),V=async n=>{N(!0);try{let[e,t]=await Promise.all([(0,C.hn)("long_term",n),(0,C.p)("long_term")]);A(e),R(t)}catch(n){t.error(e("common.error"))}finally{N(!1)}};(0,a.useEffect)(()=>{V()},[]);let X=async n=>{try{await (0,C.xw)(n),t.success(e("common.success")),await V(J)}catch(n){t.error(e("common.error"))}},q=async()=>{try{await (0,C.PH)("long_term"),t.success(e("common.success")),await V(J)}catch(n){t.error(e("common.error"))}},K=async()=>{try{await (0,C.E)("long_term"),t.success(e("common.success")),await V(J)}catch(n){t.error(e("common.error"))}},Q=async()=>{if(_&&z.trim()){F(!0);try{await (0,C.zo)(_.id,{content:z.trim(),context:M||void 0}),t.success(e("common.success")),I(!1),await V(J)}catch(n){t.error(e("common.error"))}finally{F(!1)}}},Z=[{title:e("models.modelName"),dataIndex:"title",ellipsis:!0,width:180},{title:"类型",dataIndex:"type",width:90,render:e=>(0,o.jsx)(c.A,{children:O[e]||e})},{title:e("context.content"),dataIndex:"content",ellipsis:!0},{title:e("context.importance"),dataIndex:"importance",width:80,render:e=>(0,o.jsx)(c.A,{color:E[e]||"default",children:"high"===e?"高":"medium"===e?"中":"低"})},{title:e("context.source"),dataIndex:"source",width:100,ellipsis:!0},{title:e("context.updatedAt"),dataIndex:"updated_at",width:140,render:e=>e?new Date(e).toLocaleString():"-"},{title:e("common.edit"),width:100,render:(t,n)=>(0,o.jsxs)("span",{style:{display:"flex",gap:4},children:[(0,o.jsx)(s.Ay,{size:"small",type:"text",icon:(0,o.jsx)(g.A,{}),onClick:()=>{L(n),B(n.content),H(""),I(!0)}}),(0,o.jsx)(l.A,{title:e("models.deleteProviderConfirm"),onConfirm:()=>{X(n.id)},children:(0,o.jsx)(s.Ay,{size:"small",type:"text",danger:!0,icon:(0,o.jsx)(x.A,{})})})]})}];return(0,o.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,o.jsxs)("div",{className:"flex items-center justify-between",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("h1",{className:"pageTitle",children:e("nav.longTermContext")}),(0,o.jsx)("p",{className:"pageDesc",children:e("context.longTermDesc")})]}),(0,o.jsxs)(d.A,{wrap:!0,children:[(0,o.jsx)(u.A,{prefix:(0,o.jsx)(w.A,{}),placeholder:e("common.search"),value:J,onChange:e=>U(e.target.value),onPressEnter:()=>{V(J)},allowClear:!0,style:{width:240}}),(0,o.jsx)(s.Ay,{icon:(0,o.jsx)(S.A,{}),onClick:()=>{q()},children:"压缩"}),(0,o.jsx)(l.A,{title:"确定清除长期上下文吗?",onConfirm:()=>{K()},children:(0,o.jsx)(s.Ay,{danger:!0,icon:(0,o.jsx)(j.A,{}),children:"清除"})})]})]}),(0,o.jsx)(p.A,{size:"small",children:(0,o.jsx)(y.A,{title:"总上下文大小",value:(0,v.z3)(k.totalBytes),prefix:(0,o.jsx)(T.A,{}),suffix:" / ".concat(k.count," 条")})}),(0,o.jsxs)(p.A,{size:"small",children:[(0,o.jsxs)("div",{style:{marginBottom:12,color:"var(--colorTextSecondary)",fontSize:13},children:[(0,o.jsx)(b.A,{})," ",e("context.longTermSource")]}),(0,o.jsx)(m.A,{rowKey:"id",columns:Z,dataSource:P,loading:n,size:"small",pagination:{pageSize:15}})]}),(0,o.jsx)(h.A,{title:e("models.editModel"),open:D,onCancel:()=>I(!1),onOk:()=>{Q()},confirmLoading:W,children:(0,o.jsxs)(f.A,{layout:"vertical",size:"middle",children:[(0,o.jsx)(f.A.Item,{label:e("context.content"),children:(0,o.jsx)(u.A.TextArea,{rows:6,value:z,onChange:e=>B(e.target.value)})}),(0,o.jsx)(f.A.Item,{label:e("context.source"),children:(0,o.jsx)(u.A,{value:M,onChange:e=>H(e.target.value),placeholder:e("context.sourceHint")})})]})})]})}},5551:(e,t,n)=>{"use strict";function o(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024)),n=e/Math.pow(1024,t);return"".concat(n.toFixed(+(0!==t))," ").concat(["B","KB","MB","GB","TB"][t])}function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";if(!e||e<=0)return"en-US"===t?"Never":"从未";let n=Math.floor(Math.floor((Date.now()-e)/1e3)/60),o=Math.floor(n/60),a=Math.floor(o/24);return a>30?new Date(e).toLocaleDateString(t):"en-US"===t?a>0?"".concat(a,"d ago"):o>0?"".concat(o,"h ago"):n>0?"".concat(n,"m ago"):"Just now":a>0?"".concat(a," 天前"):o>0?"".concat(o," 小时前"):n>0?"".concat(n," 分钟前"):"刚刚"}n.d(t,{Jm:()=>c,fw:()=>a,z3:()=>o});let i={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},r={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function c(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(t=("en-US"===n?r:i)[e])?t:e}},6382:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/context/long-term",function(){return n(260)}])},6578:(e,t,n)=>{"use strict";async function o(e,t){let n=await fetch(e,t);if(!n.ok){let e=await n.text(),t=e||"HTTP ".concat(n.status);try{let n=JSON.parse(e);t=n.error||n.message||t}catch(e){}throw Error(t)}return n.json()}async function a(e){let t=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return o("/api/kb/stats".concat(t))}async function i(e){var t,n;let a=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&a.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&a.set("category",e.category),(null==e?void 0:e.page)&&a.set("page",String(null!=(t=e.page)?t:1)),(null==e?void 0:e.limit)&&a.set("limit",String(null!=(n=e.limit)?n:50)),o("/api/kb/files?".concat(a))}async function r(e,t){let n=new URLSearchParams({relativePath:e});return t&&n.set("projectRoot",t),o("/api/kb/files/detail?".concat(n))}async function c(e,t){return o("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function s(e,t,n){return o("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:t,projectRoot:n})})}async function l(e){return new Promise((t,n)=>{let o=new FileReader;o.onload=()=>{let e=o.result,n=e.indexOf(",");t(n>=0?e.slice(n+1):e)},o.onerror=n,o.readAsDataURL(e)})}async function d(e,t,n){return o("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:await Promise.all(e.map(async e=>({fileName:e.name,fileData:await l(e),relativePath:e.webkitRelativePath||void 0}))),projectRoot:t,uploadId:n})})}async function u(e){return o("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function p(e){let t=new URLSearchParams({limit:"50"});return e&&t.set("projectRoot",e),o("/api/kb/operations?".concat(t))}async function y(e){let t=new URLSearchParams;return e&&t.set("projectRoot",e),o("/api/kb/operations?".concat(t),{method:"DELETE"})}async function m(e,t){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function h(e,t){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:e,projectRoot:t})})}async function f(e){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({all:!0,projectRoot:e})})}async function g(e){return o("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function x(){return o("/api/kb/features")}async function w(e,t){var n,a,i,r,c;let s=new URLSearchParams({q:e});return(null==t?void 0:t.projectRoot)&&s.set("projectRoot",t.projectRoot),(null==t?void 0:t.category)&&s.set("category",t.category),(null==t?void 0:t.limit)&&s.set("limit",String(null!=(c=t.limit)?c:20)),(null==t||null==(n=t.weights)?void 0:n.keyword)!=null&&s.set("keywordWeight",String(t.weights.keyword)),(null==t||null==(a=t.weights)?void 0:a.vector)!=null&&s.set("vectorWeight",String(t.weights.vector)),(null==t||null==(i=t.weights)?void 0:i.rewrite)!=null&&s.set("rewriteWeight",String(t.weights.rewrite)),(null==t||null==(r=t.weights)?void 0:r.hybridBonus)!=null&&s.set("hybridBonus",String(t.weights.hybridBonus)),o("/api/kb/search?".concat(s))}async function S(){return o("/api/prompt")}async function j(e){return o("/api/documents/roles".concat(e?"?type=".concat(e):""))}async function T(e){return o("/api/documents/roles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function b(e,t){return o("/api/documents/roles?type=".concat(e,"&id=").concat(encodeURIComponent(t)),{method:"DELETE"})}async function C(e){return o("/api/documents/roles?mode=config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function v(e){return o("/api/documents/roles?mode=config&id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function O(){return o("/api/documents/templates")}async function E(e){return o("/api/documents/templates",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function N(e){return o("/api/documents/templates?templateId=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function P(e){return o("/api/documents/templates",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateId:e})})}async function A(e){return o("/api/documents/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function k(e){return o("/api/documents/chapter/regenerate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function R(){return o("/api/documents/drafts")}async function J(e,t){return o("/api/documents/drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({draft:e,id:t})})}async function U(e){let t=await fetch("/api/documents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await t.text());return t.blob()}async function D(){return o("/api/config/providers")}async function I(e,t){return o("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...t})})}async function _(e){return o("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function L(){return o("/api/config/models")}async function z(e){return o("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function B(){return o("/api/config/embedding")}async function M(e){return o("/api/config/embedding",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function H(){return o("/api/config/embedding/healthCheck",{method:"POST"})}async function W(e){return o("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function F(){return o("/api/system/stats")}async function V(e,t){let n=t?"?type=".concat(e,"&search=").concat(encodeURIComponent(t)):"?type=".concat(e);return o("/api/context".concat(n))}async function X(e){return o("/api/context?type=".concat(e,"&stats=1"))}async function q(e){return o("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function K(e){return o("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function Q(e){return o("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function Z(e,t){return o("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...t})})}async function G(e){return o("/api/config/providers/".concat(encodeURIComponent(e)))}n.d(t,{Af:()=>J,Bh:()=>G,Dl:()=>O,E:()=>K,FC:()=>F,FV:()=>b,H1:()=>g,H7:()=>y,HC:()=>c,HT:()=>i,II:()=>B,NR:()=>C,OX:()=>A,PH:()=>q,QT:()=>u,Qx:()=>p,R1:()=>k,SJ:()=>h,UE:()=>U,VW:()=>x,W2:()=>w,X8:()=>f,Z3:()=>D,_m:()=>I,aP:()=>z,bV:()=>P,bZ:()=>W,c1:()=>d,dd:()=>M,dg:()=>T,dw:()=>v,dx:()=>S,h0:()=>N,h1:()=>_,hc:()=>a,hn:()=>V,l2:()=>E,lv:()=>j,p:()=>X,q7:()=>R,tn:()=>s,u6:()=>H,xC:()=>r,xq:()=>m,xw:()=>Q,zo:()=>Z,zr:()=>L})}},e=>{e.O(0,[260,167,382,201,668,227,740,174,492,446,400,455,257,636,593,792],()=>e(e.s=6382)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[893],{260:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>N});var o=n(5321),a=n(7109),i=n(3014),c=n(7807),r=n(1702),s=n(5114),l=n(6171),d=n(3442),u=n(4668),p=n(8787),y=n(4849),m=n(9400),h=n(5258),f=n(3455),g=n(9650),x=n(8209),S=n(486),j=n(3374),w=n(8383),T=n(6619),b=n(3998),C=n(6578),v=n(5551);let E={project_fact:"项目知识",user_preference:"用户偏好",feedback:"历史纠偏",pattern:"解决方案"},O={high:"red",medium:"orange",low:"default"};function N(){let e=(0,i.Vr)(),{message:t}=c.A.useApp(),[n,N]=(0,a.useState)(!0),[P,A]=(0,a.useState)([]),[k,R]=(0,a.useState)({count:0,totalBytes:0}),[J,U]=(0,a.useState)(""),[D,I]=(0,a.useState)(!1),[_,L]=(0,a.useState)(null),[z,B]=(0,a.useState)(""),[M,H]=(0,a.useState)(""),[W,F]=(0,a.useState)(!1),V=async n=>{N(!0);try{let[e,t]=await Promise.all([(0,C.hn)("long_term",n),(0,C.p)("long_term")]);A(e),R(t)}catch(n){t.error(e("common.error"))}finally{N(!1)}};(0,a.useEffect)(()=>{V()},[]);let X=async n=>{try{await (0,C.xw)(n),t.success(e("common.success")),await V(J)}catch(n){t.error(e("common.error"))}},q=async()=>{try{await (0,C.PH)("long_term"),t.success(e("common.success")),await V(J)}catch(n){t.error(e("common.error"))}},K=async()=>{try{await (0,C.E)("long_term"),t.success(e("common.success")),await V(J)}catch(n){t.error(e("common.error"))}},Q=async()=>{if(_&&z.trim()){F(!0);try{await (0,C.zo)(_.id,{content:z.trim(),context:M||void 0}),t.success(e("common.success")),I(!1),await V(J)}catch(n){t.error(e("common.error"))}finally{F(!1)}}},Z=[{title:e("models.modelName"),dataIndex:"title",ellipsis:!0,width:180},{title:"类型",dataIndex:"type",width:90,render:e=>(0,o.jsx)(r.A,{children:E[e]||e})},{title:e("context.content"),dataIndex:"content",ellipsis:!0},{title:e("context.importance"),dataIndex:"importance",width:80,render:e=>(0,o.jsx)(r.A,{color:O[e]||"default",children:"high"===e?"高":"medium"===e?"中":"低"})},{title:e("context.source"),dataIndex:"source",width:100,ellipsis:!0},{title:e("context.updatedAt"),dataIndex:"updated_at",width:140,render:e=>e?new Date(e).toLocaleString():"-"},{title:e("common.edit"),width:100,render:(t,n)=>(0,o.jsxs)("span",{style:{display:"flex",gap:4},children:[(0,o.jsx)(s.Ay,{size:"small",type:"text",icon:(0,o.jsx)(g.A,{}),onClick:()=>{L(n),B(n.content),H(""),I(!0)}}),(0,o.jsx)(l.A,{title:e("models.deleteProviderConfirm"),onConfirm:()=>{X(n.id)},children:(0,o.jsx)(s.Ay,{size:"small",type:"text",danger:!0,icon:(0,o.jsx)(x.A,{})})})]})}];return(0,o.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,o.jsxs)("div",{className:"flex items-center justify-between",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("h1",{className:"pageTitle",children:e("nav.longTermContext")}),(0,o.jsx)("p",{className:"pageDesc",children:e("context.longTermDesc")})]}),(0,o.jsxs)(d.A,{wrap:!0,children:[(0,o.jsx)(u.A,{prefix:(0,o.jsx)(S.A,{}),placeholder:e("common.search"),value:J,onChange:e=>U(e.target.value),onPressEnter:()=>{V(J)},allowClear:!0,style:{width:240}}),(0,o.jsx)(s.Ay,{icon:(0,o.jsx)(j.A,{}),onClick:()=>{q()},children:"压缩"}),(0,o.jsx)(l.A,{title:"确定清除长期上下文吗?",onConfirm:()=>{K()},children:(0,o.jsx)(s.Ay,{danger:!0,icon:(0,o.jsx)(w.A,{}),children:"清除"})})]})]}),(0,o.jsx)(p.A,{size:"small",children:(0,o.jsx)(y.A,{title:"总上下文大小",value:(0,v.z3)(k.totalBytes),prefix:(0,o.jsx)(T.A,{}),suffix:" / ".concat(k.count," 条")})}),(0,o.jsxs)(p.A,{size:"small",children:[(0,o.jsxs)("div",{style:{marginBottom:12,color:"var(--colorTextSecondary)",fontSize:13},children:[(0,o.jsx)(b.A,{})," ",e("context.longTermSource")]}),(0,o.jsx)(m.A,{rowKey:"id",columns:Z,dataSource:P,loading:n,size:"small",pagination:{pageSize:15}})]}),(0,o.jsx)(h.A,{title:e("models.editModel"),open:D,onCancel:()=>I(!1),onOk:()=>{Q()},confirmLoading:W,children:(0,o.jsxs)(f.A,{layout:"vertical",size:"middle",children:[(0,o.jsx)(f.A.Item,{label:e("context.content"),children:(0,o.jsx)(u.A.TextArea,{rows:6,value:z,onChange:e=>B(e.target.value)})}),(0,o.jsx)(f.A.Item,{label:e("context.source"),children:(0,o.jsx)(u.A,{value:M,onChange:e=>H(e.target.value),placeholder:e("context.sourceHint")})})]})})]})}},5551:(e,t,n)=>{"use strict";function o(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024)),n=e/Math.pow(1024,t);return"".concat(n.toFixed(+(0!==t))," ").concat(["B","KB","MB","GB","TB"][t])}function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";if(!e||e<=0)return"en-US"===t?"Never":"从未";let n=Math.floor(Math.floor((Date.now()-e)/1e3)/60),o=Math.floor(n/60),a=Math.floor(o/24);return a>30?new Date(e).toLocaleDateString(t):"en-US"===t?a>0?"".concat(a,"d ago"):o>0?"".concat(o,"h ago"):n>0?"".concat(n,"m ago"):"Just now":a>0?"".concat(a," 天前"):o>0?"".concat(o," 小时前"):n>0?"".concat(n," 分钟前"):"刚刚"}n.d(t,{Jm:()=>r,fw:()=>a,z3:()=>o});let i={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},c={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function r(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(t=("en-US"===n?c:i)[e])?t:e}},6382:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/context/long-term",function(){return n(260)}])},6578:(e,t,n)=>{"use strict";async function o(e,t){let n=await fetch(e,t);if(!n.ok){let e=await n.text(),t=e||"HTTP ".concat(n.status);try{let n=JSON.parse(e);t=n.error||n.message||t}catch(e){}throw Error(t)}return n.json()}async function a(e){let t=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return o("/api/kb/stats".concat(t))}async function i(e){var t,n;let a=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&a.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&a.set("category",e.category),(null==e?void 0:e.page)&&a.set("page",String(null!=(t=e.page)?t:1)),(null==e?void 0:e.limit)&&a.set("limit",String(null!=(n=e.limit)?n:50)),o("/api/kb/files?".concat(a))}async function c(e,t){let n=new URLSearchParams({relativePath:e});return t&&n.set("projectRoot",t),o("/api/kb/files/detail?".concat(n))}async function r(e,t){return o("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function s(e,t,n){return o("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:t,projectRoot:n})})}async function l(e){return new Promise((t,n)=>{let o=new FileReader;o.onload=()=>{let e=o.result,n=e.indexOf(",");t(n>=0?e.slice(n+1):e)},o.onerror=n,o.readAsDataURL(e)})}async function d(e,t,n){return o("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:await Promise.all(e.map(async e=>({fileName:e.name,fileData:await l(e),relativePath:e.webkitRelativePath||void 0}))),projectRoot:t,uploadId:n})})}async function u(e){return o("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function p(e){let t=new URLSearchParams({limit:"50"});return e&&t.set("projectRoot",e),o("/api/kb/operations?".concat(t))}async function y(e){let t=new URLSearchParams;return e&&t.set("projectRoot",e),o("/api/kb/operations?".concat(t),{method:"DELETE"})}async function m(e,t){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function h(e,t){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:e,projectRoot:t})})}async function f(e){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({all:!0,projectRoot:e})})}async function g(e){return o("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function x(){return o("/api/kb/features")}async function S(e,t){var n,a,i,c,r;let s=new URLSearchParams({q:e});return(null==t?void 0:t.projectRoot)&&s.set("projectRoot",t.projectRoot),(null==t?void 0:t.category)&&s.set("category",t.category),(null==t?void 0:t.limit)&&s.set("limit",String(null!=(r=t.limit)?r:20)),(null==t||null==(n=t.weights)?void 0:n.keyword)!=null&&s.set("keywordWeight",String(t.weights.keyword)),(null==t||null==(a=t.weights)?void 0:a.vector)!=null&&s.set("vectorWeight",String(t.weights.vector)),(null==t||null==(i=t.weights)?void 0:i.rewrite)!=null&&s.set("rewriteWeight",String(t.weights.rewrite)),(null==t||null==(c=t.weights)?void 0:c.hybridBonus)!=null&&s.set("hybridBonus",String(t.weights.hybridBonus)),o("/api/kb/search?".concat(s))}async function j(){return o("/api/prompt")}async function w(e){return o("/api/documents/roles".concat(e?"?type=".concat(e):""))}async function T(e){return o("/api/documents/roles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function b(e,t){return o("/api/documents/roles?type=".concat(e,"&id=").concat(encodeURIComponent(t)),{method:"DELETE"})}async function C(e){return o("/api/documents/roles?mode=config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function v(e){return o("/api/documents/roles?mode=config&id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function E(){return o("/api/documents/specs")}async function O(e){return o("/api/documents/specs",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function N(e){return o("/api/documents/specs?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function P(){return o("/api/documents/templates")}async function A(e){return o("/api/documents/templates",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function k(e){return o("/api/documents/templates?templateId=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function R(e){return o("/api/documents/templates",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateId:e})})}async function J(e){return o("/api/documents/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function U(e){return o("/api/documents/chapter/regenerate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function D(){return o("/api/documents/drafts")}async function I(e,t){return o("/api/documents/drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({draft:e,id:t})})}async function _(e){let t=await fetch("/api/documents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await t.text());return t.blob()}async function L(){return o("/api/config/providers")}async function z(e,t){return o("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...t})})}async function B(e){return o("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function M(){return o("/api/config/models")}async function H(e){return o("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function W(){return o("/api/config/embedding")}async function F(e){return o("/api/config/embedding",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function V(){return o("/api/config/embedding/healthCheck",{method:"POST"})}async function X(e){return o("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function q(){return o("/api/system/stats")}async function K(e,t){let n=t?"?type=".concat(e,"&search=").concat(encodeURIComponent(t)):"?type=".concat(e);return o("/api/context".concat(n))}async function Q(e){return o("/api/context?type=".concat(e,"&stats=1"))}async function Z(e){return o("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function G(e){return o("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function Y(e){return o("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function $(e,t){return o("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...t})})}async function ee(e){return o("/api/config/providers/".concat(encodeURIComponent(e)))}n.d(t,{Af:()=>I,Bh:()=>ee,Dl:()=>P,E:()=>G,EK:()=>O,ER:()=>N,FC:()=>q,FV:()=>b,H1:()=>g,H7:()=>y,HC:()=>r,HT:()=>i,II:()=>W,NR:()=>C,OX:()=>J,PH:()=>Z,QT:()=>u,Qx:()=>p,R1:()=>U,SJ:()=>h,UE:()=>_,VW:()=>x,W2:()=>S,X8:()=>f,Z3:()=>L,_m:()=>z,aP:()=>H,bV:()=>R,bZ:()=>X,c1:()=>d,dd:()=>F,dg:()=>T,dw:()=>v,dx:()=>j,h0:()=>k,h1:()=>B,hc:()=>a,hn:()=>K,l2:()=>A,lv:()=>w,mx:()=>E,p:()=>Q,q7:()=>D,tn:()=>s,u6:()=>V,xC:()=>c,xq:()=>m,xw:()=>Y,zo:()=>$,zr:()=>M})}},e=>{e.O(0,[260,167,382,201,668,227,740,174,492,455,446,400,257,636,593,792],()=>e(e.s=6382)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[409],{1162:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>E});var o=n(5321),a=n(7109),i=n(3014),r=n(7807),c=n(1702),s=n(5114),l=n(6171),d=n(3442),u=n(4668),p=n(8787),h=n(4849),y=n(9400),m=n(5258),f=n(3455),g=n(9650),x=n(8209),S=n(486),w=n(3374),j=n(8383),T=n(6619),b=n(3998),C=n(6578),v=n(5551);let O={high:"red",medium:"orange",low:"default"};function E(){let e=(0,i.Vr)(),{message:t}=r.A.useApp(),[n,E]=(0,a.useState)(!0),[N,P]=(0,a.useState)([]),[A,k]=(0,a.useState)({count:0,totalBytes:0}),[R,J]=(0,a.useState)(""),[U,D]=(0,a.useState)(!1),[I,L]=(0,a.useState)(null),[_,z]=(0,a.useState)(""),[B,M]=(0,a.useState)(""),[H,W]=(0,a.useState)(!1),F=async n=>{E(!0);try{let[e,t]=await Promise.all([(0,C.hn)("short_term",n),(0,C.p)("short_term")]);P(e),k(t)}catch(n){t.error(e("common.error"))}finally{E(!1)}};(0,a.useEffect)(()=>{F()},[]);let V=async n=>{try{await (0,C.xw)(n),t.success(e("common.success")),await F(R)}catch(n){t.error(e("common.error"))}},X=async()=>{try{await (0,C.PH)("short_term"),t.success(e("common.success")),await F(R)}catch(n){t.error(e("common.error"))}},q=async()=>{try{await (0,C.E)("short_term"),t.success(e("common.success")),await F(R)}catch(n){t.error(e("common.error"))}},K=async()=>{if(I&&_.trim()){W(!0);try{await (0,C.zo)(I.id,{content:_.trim(),context:B||void 0}),t.success(e("common.success")),D(!1),await F(R)}catch(n){t.error(e("common.error"))}finally{W(!1)}}},Q=[{title:e("models.modelName"),dataIndex:"title",ellipsis:!0,width:180},{title:e("context.importance"),dataIndex:"importance",width:80,render:e=>(0,o.jsx)(c.A,{color:O[e]||"default",children:"high"===e?"高":"medium"===e?"中":"低"})},{title:e("context.content"),dataIndex:"content",ellipsis:!0},{title:e("context.source"),dataIndex:"source",width:120,ellipsis:!0},{title:e("context.updatedAt"),dataIndex:"updated_at",width:140,render:e=>e?new Date(e).toLocaleString():"-"},{title:e("common.edit"),width:100,render:(t,n)=>(0,o.jsxs)("span",{style:{display:"flex",gap:4},children:[(0,o.jsx)(s.Ay,{size:"small",type:"text",icon:(0,o.jsx)(g.A,{}),onClick:()=>{L(n),z(n.content),M(""),D(!0)}}),(0,o.jsx)(l.A,{title:e("models.deleteProviderConfirm"),onConfirm:()=>{V(n.id)},children:(0,o.jsx)(s.Ay,{size:"small",type:"text",danger:!0,icon:(0,o.jsx)(x.A,{})})})]})}];return(0,o.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,o.jsxs)("div",{className:"flex items-center justify-between",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("h1",{className:"pageTitle",children:e("nav.shortTermContext")}),(0,o.jsx)("p",{className:"pageDesc",children:e("context.shortTermDesc")})]}),(0,o.jsxs)(d.A,{wrap:!0,children:[(0,o.jsx)(u.A,{prefix:(0,o.jsx)(S.A,{}),placeholder:e("common.search"),value:R,onChange:e=>J(e.target.value),onPressEnter:()=>{F(R)},allowClear:!0,style:{width:240}}),(0,o.jsx)(s.Ay,{icon:(0,o.jsx)(w.A,{}),onClick:()=>{X()},children:"压缩"}),(0,o.jsx)(l.A,{title:"确定清除短期上下文吗?",onConfirm:()=>{q()},children:(0,o.jsx)(s.Ay,{danger:!0,icon:(0,o.jsx)(j.A,{}),children:"清除"})})]})]}),(0,o.jsx)(p.A,{size:"small",children:(0,o.jsx)(h.A,{title:"总上下文大小",value:(0,v.z3)(A.totalBytes),prefix:(0,o.jsx)(T.A,{}),suffix:" / ".concat(A.count," 条")})}),(0,o.jsxs)(p.A,{size:"small",children:[(0,o.jsxs)("div",{style:{marginBottom:12,color:"var(--colorTextSecondary)",fontSize:13},children:[(0,o.jsx)(b.A,{})," ",e("context.shortTermSource")]}),(0,o.jsx)(y.A,{rowKey:"id",columns:Q,dataSource:N,loading:n,size:"small",pagination:{pageSize:15}})]}),(0,o.jsx)(m.A,{title:e("models.editModel"),open:U,onCancel:()=>D(!1),onOk:()=>{K()},confirmLoading:H,children:(0,o.jsxs)(f.A,{layout:"vertical",size:"middle",children:[(0,o.jsx)(f.A.Item,{label:e("context.content"),children:(0,o.jsx)(u.A.TextArea,{rows:6,value:_,onChange:e=>z(e.target.value)})}),(0,o.jsx)(f.A.Item,{label:e("context.source"),children:(0,o.jsx)(u.A,{value:B,onChange:e=>M(e.target.value),placeholder:e("context.sourceHint")})})]})})]})}},5551:(e,t,n)=>{"use strict";function o(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024)),n=e/Math.pow(1024,t);return"".concat(n.toFixed(+(0!==t))," ").concat(["B","KB","MB","GB","TB"][t])}function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";if(!e||e<=0)return"en-US"===t?"Never":"从未";let n=Math.floor(Math.floor((Date.now()-e)/1e3)/60),o=Math.floor(n/60),a=Math.floor(o/24);return a>30?new Date(e).toLocaleDateString(t):"en-US"===t?a>0?"".concat(a,"d ago"):o>0?"".concat(o,"h ago"):n>0?"".concat(n,"m ago"):"Just now":a>0?"".concat(a," 天前"):o>0?"".concat(o," 小时前"):n>0?"".concat(n," 分钟前"):"刚刚"}n.d(t,{Jm:()=>c,fw:()=>a,z3:()=>o});let i={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},r={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function c(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(t=("en-US"===n?r:i)[e])?t:e}},6578:(e,t,n)=>{"use strict";async function o(e,t){let n=await fetch(e,t);if(!n.ok){let e=await n.text(),t=e||"HTTP ".concat(n.status);try{let n=JSON.parse(e);t=n.error||n.message||t}catch(e){}throw Error(t)}return n.json()}async function a(e){let t=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return o("/api/kb/stats".concat(t))}async function i(e){var t,n;let a=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&a.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&a.set("category",e.category),(null==e?void 0:e.page)&&a.set("page",String(null!=(t=e.page)?t:1)),(null==e?void 0:e.limit)&&a.set("limit",String(null!=(n=e.limit)?n:50)),o("/api/kb/files?".concat(a))}async function r(e,t){let n=new URLSearchParams({relativePath:e});return t&&n.set("projectRoot",t),o("/api/kb/files/detail?".concat(n))}async function c(e,t){return o("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function s(e,t,n){return o("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:t,projectRoot:n})})}async function l(e){return new Promise((t,n)=>{let o=new FileReader;o.onload=()=>{let e=o.result,n=e.indexOf(",");t(n>=0?e.slice(n+1):e)},o.onerror=n,o.readAsDataURL(e)})}async function d(e,t,n){return o("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:await Promise.all(e.map(async e=>({fileName:e.name,fileData:await l(e),relativePath:e.webkitRelativePath||void 0}))),projectRoot:t,uploadId:n})})}async function u(e){return o("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function p(e){let t=new URLSearchParams({limit:"50"});return e&&t.set("projectRoot",e),o("/api/kb/operations?".concat(t))}async function h(e){let t=new URLSearchParams;return e&&t.set("projectRoot",e),o("/api/kb/operations?".concat(t),{method:"DELETE"})}async function y(e,t){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function m(e,t){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:e,projectRoot:t})})}async function f(e){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({all:!0,projectRoot:e})})}async function g(e){return o("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function x(){return o("/api/kb/features")}async function S(e,t){var n,a,i,r,c;let s=new URLSearchParams({q:e});return(null==t?void 0:t.projectRoot)&&s.set("projectRoot",t.projectRoot),(null==t?void 0:t.category)&&s.set("category",t.category),(null==t?void 0:t.limit)&&s.set("limit",String(null!=(c=t.limit)?c:20)),(null==t||null==(n=t.weights)?void 0:n.keyword)!=null&&s.set("keywordWeight",String(t.weights.keyword)),(null==t||null==(a=t.weights)?void 0:a.vector)!=null&&s.set("vectorWeight",String(t.weights.vector)),(null==t||null==(i=t.weights)?void 0:i.rewrite)!=null&&s.set("rewriteWeight",String(t.weights.rewrite)),(null==t||null==(r=t.weights)?void 0:r.hybridBonus)!=null&&s.set("hybridBonus",String(t.weights.hybridBonus)),o("/api/kb/search?".concat(s))}async function w(){return o("/api/prompt")}async function j(e){return o("/api/documents/roles".concat(e?"?type=".concat(e):""))}async function T(e){return o("/api/documents/roles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function b(e,t){return o("/api/documents/roles?type=".concat(e,"&id=").concat(encodeURIComponent(t)),{method:"DELETE"})}async function C(e){return o("/api/documents/roles?mode=config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function v(e){return o("/api/documents/roles?mode=config&id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function O(){return o("/api/documents/templates")}async function E(e){return o("/api/documents/templates",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function N(e){return o("/api/documents/templates?templateId=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function P(e){return o("/api/documents/templates",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateId:e})})}async function A(e){return o("/api/documents/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function k(e){return o("/api/documents/chapter/regenerate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function R(){return o("/api/documents/drafts")}async function J(e,t){return o("/api/documents/drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({draft:e,id:t})})}async function U(e){let t=await fetch("/api/documents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await t.text());return t.blob()}async function D(){return o("/api/config/providers")}async function I(e,t){return o("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...t})})}async function L(e){return o("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function _(){return o("/api/config/models")}async function z(e){return o("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function B(){return o("/api/config/embedding")}async function M(e){return o("/api/config/embedding",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function H(){return o("/api/config/embedding/healthCheck",{method:"POST"})}async function W(e){return o("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function F(){return o("/api/system/stats")}async function V(e,t){let n=t?"?type=".concat(e,"&search=").concat(encodeURIComponent(t)):"?type=".concat(e);return o("/api/context".concat(n))}async function X(e){return o("/api/context?type=".concat(e,"&stats=1"))}async function q(e){return o("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function K(e){return o("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function Q(e){return o("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function Z(e,t){return o("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...t})})}async function G(e){return o("/api/config/providers/".concat(encodeURIComponent(e)))}n.d(t,{Af:()=>J,Bh:()=>G,Dl:()=>O,E:()=>K,FC:()=>F,FV:()=>b,H1:()=>g,H7:()=>h,HC:()=>c,HT:()=>i,II:()=>B,NR:()=>C,OX:()=>A,PH:()=>q,QT:()=>u,Qx:()=>p,R1:()=>k,SJ:()=>m,UE:()=>U,VW:()=>x,W2:()=>S,X8:()=>f,Z3:()=>D,_m:()=>I,aP:()=>z,bV:()=>P,bZ:()=>W,c1:()=>d,dd:()=>M,dg:()=>T,dw:()=>v,dx:()=>w,h0:()=>N,h1:()=>L,hc:()=>a,hn:()=>V,l2:()=>E,lv:()=>j,p:()=>X,q7:()=>R,tn:()=>s,u6:()=>H,xC:()=>r,xq:()=>y,xw:()=>Q,zo:()=>Z,zr:()=>_})},9164:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/context/short-term",function(){return n(1162)}])}},e=>{e.O(0,[260,167,382,201,668,227,740,174,492,446,400,455,257,636,593,792],()=>e(e.s=9164)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[409],{1162:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>O});var o=n(5321),a=n(7109),i=n(3014),r=n(7807),c=n(1702),s=n(5114),d=n(6171),l=n(3442),u=n(4668),p=n(8787),h=n(4849),m=n(9400),y=n(5258),f=n(3455),g=n(9650),x=n(8209),S=n(486),w=n(3374),j=n(8383),T=n(6619),b=n(3998),C=n(6578),v=n(5551);let E={high:"red",medium:"orange",low:"default"};function O(){let e=(0,i.Vr)(),{message:t}=r.A.useApp(),[n,O]=(0,a.useState)(!0),[N,P]=(0,a.useState)([]),[A,R]=(0,a.useState)({count:0,totalBytes:0}),[k,J]=(0,a.useState)(""),[U,D]=(0,a.useState)(!1),[I,L]=(0,a.useState)(null),[_,z]=(0,a.useState)(""),[B,M]=(0,a.useState)(""),[H,W]=(0,a.useState)(!1),F=async n=>{O(!0);try{let[e,t]=await Promise.all([(0,C.hn)("short_term",n),(0,C.p)("short_term")]);P(e),R(t)}catch(n){t.error(e("common.error"))}finally{O(!1)}};(0,a.useEffect)(()=>{F()},[]);let V=async n=>{try{await (0,C.xw)(n),t.success(e("common.success")),await F(k)}catch(n){t.error(e("common.error"))}},X=async()=>{try{await (0,C.PH)("short_term"),t.success(e("common.success")),await F(k)}catch(n){t.error(e("common.error"))}},q=async()=>{try{await (0,C.E)("short_term"),t.success(e("common.success")),await F(k)}catch(n){t.error(e("common.error"))}},K=async()=>{if(I&&_.trim()){W(!0);try{await (0,C.zo)(I.id,{content:_.trim(),context:B||void 0}),t.success(e("common.success")),D(!1),await F(k)}catch(n){t.error(e("common.error"))}finally{W(!1)}}},Q=[{title:e("models.modelName"),dataIndex:"title",ellipsis:!0,width:180},{title:e("context.importance"),dataIndex:"importance",width:80,render:e=>(0,o.jsx)(c.A,{color:E[e]||"default",children:"high"===e?"高":"medium"===e?"中":"低"})},{title:e("context.content"),dataIndex:"content",ellipsis:!0},{title:e("context.source"),dataIndex:"source",width:120,ellipsis:!0},{title:e("context.updatedAt"),dataIndex:"updated_at",width:140,render:e=>e?new Date(e).toLocaleString():"-"},{title:e("common.edit"),width:100,render:(t,n)=>(0,o.jsxs)("span",{style:{display:"flex",gap:4},children:[(0,o.jsx)(s.Ay,{size:"small",type:"text",icon:(0,o.jsx)(g.A,{}),onClick:()=>{L(n),z(n.content),M(""),D(!0)}}),(0,o.jsx)(d.A,{title:e("models.deleteProviderConfirm"),onConfirm:()=>{V(n.id)},children:(0,o.jsx)(s.Ay,{size:"small",type:"text",danger:!0,icon:(0,o.jsx)(x.A,{})})})]})}];return(0,o.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,o.jsxs)("div",{className:"flex items-center justify-between",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("h1",{className:"pageTitle",children:e("nav.shortTermContext")}),(0,o.jsx)("p",{className:"pageDesc",children:e("context.shortTermDesc")})]}),(0,o.jsxs)(l.A,{wrap:!0,children:[(0,o.jsx)(u.A,{prefix:(0,o.jsx)(S.A,{}),placeholder:e("common.search"),value:k,onChange:e=>J(e.target.value),onPressEnter:()=>{F(k)},allowClear:!0,style:{width:240}}),(0,o.jsx)(s.Ay,{icon:(0,o.jsx)(w.A,{}),onClick:()=>{X()},children:"压缩"}),(0,o.jsx)(d.A,{title:"确定清除短期上下文吗?",onConfirm:()=>{q()},children:(0,o.jsx)(s.Ay,{danger:!0,icon:(0,o.jsx)(j.A,{}),children:"清除"})})]})]}),(0,o.jsx)(p.A,{size:"small",children:(0,o.jsx)(h.A,{title:"总上下文大小",value:(0,v.z3)(A.totalBytes),prefix:(0,o.jsx)(T.A,{}),suffix:" / ".concat(A.count," 条")})}),(0,o.jsxs)(p.A,{size:"small",children:[(0,o.jsxs)("div",{style:{marginBottom:12,color:"var(--colorTextSecondary)",fontSize:13},children:[(0,o.jsx)(b.A,{})," ",e("context.shortTermSource")]}),(0,o.jsx)(m.A,{rowKey:"id",columns:Q,dataSource:N,loading:n,size:"small",pagination:{pageSize:15}})]}),(0,o.jsx)(y.A,{title:e("models.editModel"),open:U,onCancel:()=>D(!1),onOk:()=>{K()},confirmLoading:H,children:(0,o.jsxs)(f.A,{layout:"vertical",size:"middle",children:[(0,o.jsx)(f.A.Item,{label:e("context.content"),children:(0,o.jsx)(u.A.TextArea,{rows:6,value:_,onChange:e=>z(e.target.value)})}),(0,o.jsx)(f.A.Item,{label:e("context.source"),children:(0,o.jsx)(u.A,{value:B,onChange:e=>M(e.target.value),placeholder:e("context.sourceHint")})})]})})]})}},5551:(e,t,n)=>{"use strict";function o(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024)),n=e/Math.pow(1024,t);return"".concat(n.toFixed(+(0!==t))," ").concat(["B","KB","MB","GB","TB"][t])}function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";if(!e||e<=0)return"en-US"===t?"Never":"从未";let n=Math.floor(Math.floor((Date.now()-e)/1e3)/60),o=Math.floor(n/60),a=Math.floor(o/24);return a>30?new Date(e).toLocaleDateString(t):"en-US"===t?a>0?"".concat(a,"d ago"):o>0?"".concat(o,"h ago"):n>0?"".concat(n,"m ago"):"Just now":a>0?"".concat(a," 天前"):o>0?"".concat(o," 小时前"):n>0?"".concat(n," 分钟前"):"刚刚"}n.d(t,{Jm:()=>c,fw:()=>a,z3:()=>o});let i={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},r={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function c(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(t=("en-US"===n?r:i)[e])?t:e}},6578:(e,t,n)=>{"use strict";async function o(e,t){let n=await fetch(e,t);if(!n.ok){let e=await n.text(),t=e||"HTTP ".concat(n.status);try{let n=JSON.parse(e);t=n.error||n.message||t}catch(e){}throw Error(t)}return n.json()}async function a(e){let t=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return o("/api/kb/stats".concat(t))}async function i(e){var t,n;let a=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&a.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&a.set("category",e.category),(null==e?void 0:e.page)&&a.set("page",String(null!=(t=e.page)?t:1)),(null==e?void 0:e.limit)&&a.set("limit",String(null!=(n=e.limit)?n:50)),o("/api/kb/files?".concat(a))}async function r(e,t){let n=new URLSearchParams({relativePath:e});return t&&n.set("projectRoot",t),o("/api/kb/files/detail?".concat(n))}async function c(e,t){return o("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function s(e,t,n){return o("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:t,projectRoot:n})})}async function d(e){return new Promise((t,n)=>{let o=new FileReader;o.onload=()=>{let e=o.result,n=e.indexOf(",");t(n>=0?e.slice(n+1):e)},o.onerror=n,o.readAsDataURL(e)})}async function l(e,t,n){return o("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:await Promise.all(e.map(async e=>({fileName:e.name,fileData:await d(e),relativePath:e.webkitRelativePath||void 0}))),projectRoot:t,uploadId:n})})}async function u(e){return o("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function p(e){let t=new URLSearchParams({limit:"50"});return e&&t.set("projectRoot",e),o("/api/kb/operations?".concat(t))}async function h(e){let t=new URLSearchParams;return e&&t.set("projectRoot",e),o("/api/kb/operations?".concat(t),{method:"DELETE"})}async function m(e,t){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function y(e,t){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:e,projectRoot:t})})}async function f(e){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({all:!0,projectRoot:e})})}async function g(e){return o("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function x(){return o("/api/kb/features")}async function S(e,t){var n,a,i,r,c;let s=new URLSearchParams({q:e});return(null==t?void 0:t.projectRoot)&&s.set("projectRoot",t.projectRoot),(null==t?void 0:t.category)&&s.set("category",t.category),(null==t?void 0:t.limit)&&s.set("limit",String(null!=(c=t.limit)?c:20)),(null==t||null==(n=t.weights)?void 0:n.keyword)!=null&&s.set("keywordWeight",String(t.weights.keyword)),(null==t||null==(a=t.weights)?void 0:a.vector)!=null&&s.set("vectorWeight",String(t.weights.vector)),(null==t||null==(i=t.weights)?void 0:i.rewrite)!=null&&s.set("rewriteWeight",String(t.weights.rewrite)),(null==t||null==(r=t.weights)?void 0:r.hybridBonus)!=null&&s.set("hybridBonus",String(t.weights.hybridBonus)),o("/api/kb/search?".concat(s))}async function w(){return o("/api/prompt")}async function j(e){return o("/api/documents/roles".concat(e?"?type=".concat(e):""))}async function T(e){return o("/api/documents/roles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function b(e,t){return o("/api/documents/roles?type=".concat(e,"&id=").concat(encodeURIComponent(t)),{method:"DELETE"})}async function C(e){return o("/api/documents/roles?mode=config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function v(e){return o("/api/documents/roles?mode=config&id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function E(){return o("/api/documents/specs")}async function O(e){return o("/api/documents/specs",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function N(e){return o("/api/documents/specs?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function P(){return o("/api/documents/templates")}async function A(e){return o("/api/documents/templates",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function R(e){return o("/api/documents/templates?templateId=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function k(e){return o("/api/documents/templates",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateId:e})})}async function J(e){return o("/api/documents/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function U(e){return o("/api/documents/chapter/regenerate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function D(){return o("/api/documents/drafts")}async function I(e,t){return o("/api/documents/drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({draft:e,id:t})})}async function L(e){let t=await fetch("/api/documents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await t.text());return t.blob()}async function _(){return o("/api/config/providers")}async function z(e,t){return o("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...t})})}async function B(e){return o("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function M(){return o("/api/config/models")}async function H(e){return o("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function W(){return o("/api/config/embedding")}async function F(e){return o("/api/config/embedding",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function V(){return o("/api/config/embedding/healthCheck",{method:"POST"})}async function X(e){return o("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function q(){return o("/api/system/stats")}async function K(e,t){let n=t?"?type=".concat(e,"&search=").concat(encodeURIComponent(t)):"?type=".concat(e);return o("/api/context".concat(n))}async function Q(e){return o("/api/context?type=".concat(e,"&stats=1"))}async function Z(e){return o("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function G(e){return o("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function Y(e){return o("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function $(e,t){return o("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...t})})}async function ee(e){return o("/api/config/providers/".concat(encodeURIComponent(e)))}n.d(t,{Af:()=>I,Bh:()=>ee,Dl:()=>P,E:()=>G,EK:()=>O,ER:()=>N,FC:()=>q,FV:()=>b,H1:()=>g,H7:()=>h,HC:()=>c,HT:()=>i,II:()=>W,NR:()=>C,OX:()=>J,PH:()=>Z,QT:()=>u,Qx:()=>p,R1:()=>U,SJ:()=>y,UE:()=>L,VW:()=>x,W2:()=>S,X8:()=>f,Z3:()=>_,_m:()=>z,aP:()=>H,bV:()=>k,bZ:()=>X,c1:()=>l,dd:()=>F,dg:()=>T,dw:()=>v,dx:()=>w,h0:()=>R,h1:()=>B,hc:()=>a,hn:()=>K,l2:()=>A,lv:()=>j,mx:()=>E,p:()=>Q,q7:()=>D,tn:()=>s,u6:()=>V,xC:()=>r,xq:()=>m,xw:()=>Y,zo:()=>$,zr:()=>M})},9164:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/context/short-term",function(){return n(1162)}])}},e=>{e.O(0,[260,167,382,201,668,227,740,174,492,455,446,400,257,636,593,792],()=>e(e.s=9164)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[623],{3507:(e,n,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/document-roles",function(){return t(9889)}])},6578:(e,n,t)=>{"use strict";async function o(e,n){let t=await fetch(e,n);if(!t.ok){let e=await t.text(),n=e||"HTTP ".concat(t.status);try{let t=JSON.parse(e);n=t.error||t.message||n}catch(e){}throw Error(n)}return t.json()}async function i(e){let n=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return o("/api/kb/stats".concat(n))}async function r(e){var n,t;let i=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&i.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&i.set("category",e.category),(null==e?void 0:e.page)&&i.set("page",String(null!=(n=e.page)?n:1)),(null==e?void 0:e.limit)&&i.set("limit",String(null!=(t=e.limit)?t:50)),o("/api/kb/files?".concat(i))}async function s(e,n){let t=new URLSearchParams({relativePath:e});return n&&t.set("projectRoot",n),o("/api/kb/files/detail?".concat(t))}async function a(e,n){return o("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:n})})}async function l(e,n,t){return o("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:n,projectRoot:t})})}async function c(e){return new Promise((n,t)=>{let o=new FileReader;o.onload=()=>{let e=o.result,t=e.indexOf(",");n(t>=0?e.slice(t+1):e)},o.onerror=t,o.readAsDataURL(e)})}async function d(e,n,t){return o("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:await Promise.all(e.map(async e=>({fileName:e.name,fileData:await c(e),relativePath:e.webkitRelativePath||void 0}))),projectRoot:n,uploadId:t})})}async function p(e){return o("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function u(e){let n=new URLSearchParams({limit:"50"});return e&&n.set("projectRoot",e),o("/api/kb/operations?".concat(n))}async function m(e){let n=new URLSearchParams;return e&&n.set("projectRoot",e),o("/api/kb/operations?".concat(n),{method:"DELETE"})}async function y(e,n){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:n})})}async function h(e,n){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:e,projectRoot:n})})}async function f(e){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({all:!0,projectRoot:e})})}async function x(e){return o("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function j(){return o("/api/kb/features")}async function g(e,n){var t,i,r,s,a;let l=new URLSearchParams({q:e});return(null==n?void 0:n.projectRoot)&&l.set("projectRoot",n.projectRoot),(null==n?void 0:n.category)&&l.set("category",n.category),(null==n?void 0:n.limit)&&l.set("limit",String(null!=(a=n.limit)?a:20)),(null==n||null==(t=n.weights)?void 0:t.keyword)!=null&&l.set("keywordWeight",String(n.weights.keyword)),(null==n||null==(i=n.weights)?void 0:i.vector)!=null&&l.set("vectorWeight",String(n.weights.vector)),(null==n||null==(r=n.weights)?void 0:r.rewrite)!=null&&l.set("rewriteWeight",String(n.weights.rewrite)),(null==n||null==(s=n.weights)?void 0:s.hybridBonus)!=null&&l.set("hybridBonus",String(n.weights.hybridBonus)),o("/api/kb/search?".concat(l))}async function A(){return o("/api/prompt")}async function b(e){return o("/api/documents/roles".concat(e?"?type=".concat(e):""))}async function T(e){return o("/api/documents/roles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function v(e,n){return o("/api/documents/roles?type=".concat(e,"&id=").concat(encodeURIComponent(n)),{method:"DELETE"})}async function S(e){return o("/api/documents/roles?mode=config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function w(e){return o("/api/documents/roles?mode=config&id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function C(){return o("/api/documents/specs")}async function R(e){return o("/api/documents/specs",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function E(e){return o("/api/documents/specs?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function I(){return o("/api/documents/templates")}async function k(e){return o("/api/documents/templates",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function N(e){return o("/api/documents/templates?templateId=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function O(e){return o("/api/documents/templates",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateId:e})})}async function P(e){return o("/api/documents/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function J(e){return o("/api/documents/chapter/regenerate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function U(){return o("/api/documents/drafts")}async function D(e,n){return o("/api/documents/drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({draft:e,id:n})})}async function F(e){let n=await fetch("/api/documents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!n.ok)throw Error(await n.text());return n.blob()}async function L(){return o("/api/config/providers")}async function _(e,n){return o("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...n})})}async function q(e){return o("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function V(){return o("/api/config/models")}async function H(e){return o("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function W(){return o("/api/config/embedding")}async function B(e){return o("/api/config/embedding",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function X(){return o("/api/config/embedding/healthCheck",{method:"POST"})}async function z(e){return o("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function G(){return o("/api/system/stats")}async function M(e,n){let t=n?"?type=".concat(e,"&search=").concat(encodeURIComponent(n)):"?type=".concat(e);return o("/api/context".concat(t))}async function Q(e){return o("/api/context?type=".concat(e,"&stats=1"))}async function Z(e){return o("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function K(e){return o("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function Y(e){return o("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function $(e,n){return o("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...n})})}async function ee(e){return o("/api/config/providers/".concat(encodeURIComponent(e)))}t.d(n,{Af:()=>D,Bh:()=>ee,Dl:()=>I,E:()=>K,EK:()=>R,ER:()=>E,FC:()=>G,FV:()=>v,H1:()=>x,H7:()=>m,HC:()=>a,HT:()=>r,II:()=>W,NR:()=>S,OX:()=>P,PH:()=>Z,QT:()=>p,Qx:()=>u,R1:()=>J,SJ:()=>h,UE:()=>F,VW:()=>j,W2:()=>g,X8:()=>f,Z3:()=>L,_m:()=>_,aP:()=>H,bV:()=>O,bZ:()=>z,c1:()=>d,dd:()=>B,dg:()=>T,dw:()=>w,dx:()=>A,h0:()=>N,h1:()=>q,hc:()=>i,hn:()=>M,l2:()=>k,lv:()=>b,mx:()=>C,p:()=>Q,q7:()=>U,tn:()=>l,u6:()=>X,xC:()=>s,xq:()=>y,xw:()=>Y,zo:()=>$,zr:()=>V})},9889:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>w});var o=t(5321),i=t(7109),r=t(7807),s=t(3455),a=t(8332),l=t(4253),c=t(5114),d=t(6171),p=t(3442),u=t(1702),m=t(8787),y=t(2256),h=t(8770),f=t(5258),x=t(7271),j=t(4668),g=t(8569),A=t(9650),b=t(8209),T=t(4746),v=t(6578),S=t(3014);function w(){let e=(0,S.Vr)(),{message:n}=r.A.useApp(),[t]=s.A.useForm(),[w]=s.A.useForm(),[C,R]=(0,i.useState)([]),[E,I]=(0,i.useState)([]),[k,N]=(0,i.useState)([]),[O,P]=(0,i.useState)([]),[J,U]=(0,i.useState)(!1),[D,F]=(0,i.useState)(!1),L=async()=>{let[e,n,t]=await Promise.all([(0,v.lv)(),(0,v.HT)(),(0,v.dx)()]);R(e.roles),I(e.configs),N(n.files),P(t)};(0,i.useEffect)(()=>{L().catch(()=>n.error(e("common.error")))},[n,e]);let _=C.filter(e=>"file"===e.type),q=C.filter(e=>"prompt"===e.type),V=async()=>{try{let o=await t.validateFields(),i=await (0,v.dg)(o);R(i.roles),I(i.configs),U(!1),n.success(e("common.success"))}catch(t){n.error(e("common.error"))}},H=async()=>{try{let t=await w.validateFields(),o=e=>(null!=e?e:[]).map((e,n)=>{var t;return{roleId:e.roleId,order:Number(null!=(t=e.order)?t:n)}}),i=await (0,v.NR)({...t,fileRoles:o(t.fileRoles),promptRoles:o(t.promptRoles)});R(i.roles),I(i.configs),F(!1),n.success(e("common.success"))}catch(t){n.error(e("common.error"))}},W=async e=>{let n=await (0,v.FV)(e.type,e.id);R(n.roles),I(n.configs)},B=async e=>{let n=await (0,v.dw)(e);R(n.roles),I(n.configs)},X=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"file";t.setFieldsValue(null!=e?e:{id:"role-".concat(Date.now()),name:"",description:"",type:n,executionType:"prompt"===n?"reference":void 0,processingType:"file"===n?"reference":void 0}),U(!0)},z=e=>{w.setFieldsValue(null!=e?e:{id:"config-".concat(Date.now()),name:"",description:"",fileRoles:[],promptRoles:[]}),F(!0)},G=n=>(0,o.jsx)(a.A,{dataSource:C.filter(e=>e.type===n),locale:{emptyText:(0,o.jsx)(l.A,{description:e("common.noData")})},renderItem:n=>(0,o.jsx)(a.A.Item,{actions:[(0,o.jsx)(c.Ay,{type:"text",icon:(0,o.jsx)(A.A,{}),onClick:()=>X(n)},"edit"),(0,o.jsx)(d.A,{title:e("common.confirm"),onConfirm:()=>{W(n)},children:(0,o.jsx)(c.Ay,{type:"text",danger:!0,icon:(0,o.jsx)(b.A,{})})},"delete")],children:(0,o.jsx)(a.A.Item.Meta,{title:(0,o.jsxs)(p.A,{children:[n.name,(0,o.jsx)(u.A,{children:n.id})]}),description:(0,o.jsxs)(p.A,{direction:"vertical",children:[(0,o.jsx)("span",{children:n.description}),(0,o.jsx)("span",{children:"prompt"===n.type?n.executionType:n.processingType}),(0,o.jsx)("span",{children:n.resourceId||"-"})]})})})});return(0,o.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,o.jsx)(m.A,{className:"cardGlass",styles:{body:{padding:24}},children:(0,o.jsxs)("div",{className:"flex items-center justify-between gap-4 flex-wrap",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("h1",{className:"pageTitle mb-1",children:e("roles.title")}),(0,o.jsx)("p",{className:"pageDesc mb-0",children:e("roles.description")})]}),(0,o.jsxs)(p.A,{children:[(0,o.jsx)(c.Ay,{icon:(0,o.jsx)(T.A,{}),onClick:()=>X(void 0,"file"),children:e("roles.newFileRole")}),(0,o.jsx)(c.Ay,{icon:(0,o.jsx)(T.A,{}),onClick:()=>X(void 0,"prompt"),children:e("roles.newPromptRole")}),(0,o.jsx)(c.Ay,{type:"primary",icon:(0,o.jsx)(T.A,{}),onClick:()=>z(),children:e("roles.newConfig")})]})]})}),(0,o.jsxs)(y.A,{gutter:[16,16],children:[(0,o.jsx)(h.A,{xs:24,lg:12,children:(0,o.jsx)(m.A,{title:e("roles.fileRoles"),children:G("file")})}),(0,o.jsx)(h.A,{xs:24,lg:12,children:(0,o.jsx)(m.A,{title:e("roles.promptRoles"),children:G("prompt")})}),(0,o.jsx)(h.A,{xs:24,children:(0,o.jsx)(m.A,{title:e("roles.configs"),children:(0,o.jsx)(a.A,{dataSource:E,locale:{emptyText:(0,o.jsx)(l.A,{description:e("common.noData")})},renderItem:n=>(0,o.jsx)(a.A.Item,{actions:[(0,o.jsx)(c.Ay,{type:"text",icon:(0,o.jsx)(A.A,{}),onClick:()=>z(n)},"edit"),(0,o.jsx)(d.A,{title:e("common.confirm"),onConfirm:()=>{B(n.id)},children:(0,o.jsx)(c.Ay,{type:"text",danger:!0,icon:(0,o.jsx)(b.A,{})})},"delete")],children:(0,o.jsx)(a.A.Item.Meta,{title:(0,o.jsxs)(p.A,{children:[n.name,(0,o.jsx)(u.A,{children:n.id})]}),description:"".concat(e("roles.fileRoles"),": ").concat(n.fileRoles.length," \xb7 ").concat(e("roles.promptRoles"),": ").concat(n.promptRoles.length)})})})})})]}),(0,o.jsx)(f.A,{title:e("roles.roleEditor"),open:J,onOk:()=>{V()},onCancel:()=>U(!1),centered:!0,okText:e("common.save"),children:(0,o.jsxs)(s.A,{form:t,layout:"vertical",children:[(0,o.jsx)(s.A.Item,{name:"type",label:e("roles.roleType"),rules:[{required:!0}],children:(0,o.jsx)(x.A,{options:[{label:e("roles.fileRole"),value:"file"},{label:e("roles.promptRole"),value:"prompt"}]})}),(0,o.jsx)(s.A.Item,{name:"id",label:"ID",rules:[{required:!0}],children:(0,o.jsx)(j.A,{disabled:!0})}),(0,o.jsx)(s.A.Item,{name:"name",label:e("roles.roleName"),rules:[{required:!0}],children:(0,o.jsx)(j.A,{})}),(0,o.jsx)(s.A.Item,{name:"description",label:e("roles.roleDescription"),children:(0,o.jsx)(j.A,{})}),(0,o.jsx)(s.A.Item,{noStyle:!0,shouldUpdate:(e,n)=>e.type!==n.type,children:n=>{let{getFieldValue:t}=n;return"prompt"===t("type")?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.A.Item,{name:"executionType",label:e("roles.executionType"),rules:[{required:!0}],children:(0,o.jsx)(x.A,{options:[{label:e("roles.factExtraction"),value:"fact_extraction"},{label:e("roles.chapterGeneration"),value:"chapter_generation"},{label:e("roles.validation"),value:"validation"},{label:e("roles.formatting"),value:"formatting"},{label:e("roles.reference"),value:"reference"}]})}),(0,o.jsx)(s.A.Item,{name:"resourceId",label:e("roles.bindPrompt"),children:(0,o.jsx)(x.A,{showSearch:!0,options:O.filter(e=>e.hasFile).map(e=>({label:e.projectName,value:e.id}))})})]}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.A.Item,{name:"processingType",label:e("roles.processingType"),rules:[{required:!0}],children:(0,o.jsx)(x.A,{options:[{label:e("roles.ruleFile"),value:"rule"},{label:e("roles.projectFactFile"),value:"project_fact"},{label:e("roles.tableFile"),value:"table"},{label:e("roles.drawingFile"),value:"drawing"},{label:e("roles.specificationFile"),value:"specification"},{label:e("roles.reference"),value:"reference"}]})}),(0,o.jsx)(s.A.Item,{name:"resourceId",label:e("roles.bindFile"),children:(0,o.jsx)(x.A,{showSearch:!0,options:k.map(e=>({label:e.relativePath,value:e.relativePath}))})})]})}})]})}),(0,o.jsx)(f.A,{title:e("roles.configEditor"),open:D,onOk:()=>{H()},onCancel:()=>F(!1),width:820,centered:!0,okText:e("common.save"),children:(0,o.jsxs)(s.A,{form:w,layout:"vertical",children:[(0,o.jsxs)(y.A,{gutter:12,children:[(0,o.jsx)(h.A,{span:8,children:(0,o.jsx)(s.A.Item,{name:"id",label:"ID",rules:[{required:!0}],children:(0,o.jsx)(j.A,{disabled:!0})})}),(0,o.jsx)(h.A,{span:8,children:(0,o.jsx)(s.A.Item,{name:"name",label:e("roles.configName"),rules:[{required:!0}],children:(0,o.jsx)(j.A,{})})}),(0,o.jsx)(h.A,{span:8,children:(0,o.jsx)(s.A.Item,{name:"description",label:e("roles.configDescription"),children:(0,o.jsx)(j.A,{})})})]}),(0,o.jsx)(g.A,{items:[{key:"file",label:e("roles.fileRoles"),children:(0,o.jsx)(s.A.List,{name:"fileRoles",children:(n,t)=>{let{add:i,remove:r}=t;return(0,o.jsxs)(p.A,{direction:"vertical",className:"w-full",children:[n.map((e,n)=>(0,o.jsxs)(y.A,{gutter:8,children:[(0,o.jsx)(h.A,{span:16,children:(0,o.jsx)(s.A.Item,{name:[e.name,"roleId"],rules:[{required:!0}],children:(0,o.jsx)(x.A,{options:_.map(e=>({label:e.name,value:e.id}))})})}),(0,o.jsx)(h.A,{span:6,children:(0,o.jsx)(s.A.Item,{name:[e.name,"order"],initialValue:n,children:(0,o.jsx)(j.A,{type:"number"})})}),(0,o.jsx)(h.A,{span:2,children:(0,o.jsx)(c.Ay,{danger:!0,onClick:()=>r(e.name),children:"-"})})]},e.key)),(0,o.jsx)(c.Ay,{onClick:()=>i({order:n.length}),children:e("roles.addRole")})]})}})},{key:"prompt",label:e("roles.promptRoles"),children:(0,o.jsx)(s.A.List,{name:"promptRoles",children:(n,t)=>{let{add:i,remove:r}=t;return(0,o.jsxs)(p.A,{direction:"vertical",className:"w-full",children:[n.map((e,n)=>(0,o.jsxs)(y.A,{gutter:8,children:[(0,o.jsx)(h.A,{span:16,children:(0,o.jsx)(s.A.Item,{name:[e.name,"roleId"],rules:[{required:!0}],children:(0,o.jsx)(x.A,{options:q.map(e=>({label:e.name,value:e.id}))})})}),(0,o.jsx)(h.A,{span:6,children:(0,o.jsx)(s.A.Item,{name:[e.name,"order"],initialValue:n,children:(0,o.jsx)(j.A,{type:"number"})})}),(0,o.jsx)(h.A,{span:2,children:(0,o.jsx)(c.Ay,{danger:!0,onClick:()=>r(e.name),children:"-"})})]},e.key)),(0,o.jsx)(c.Ay,{onClick:()=>i({order:n.length}),children:e("roles.addRole")})]})}})}]})]})})]})}}},e=>{e.O(0,[260,167,382,201,668,227,740,174,492,455,846,636,593,792],()=>e(e.s=3507)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[580],{1533:(e,n,t)=>{"use strict";t.r(n),t.d(n,{default:()=>K});var i=t(5321),a=t(7109),r=t(7807),c=t(3455),s=t(8787),o=t(5114),l=t(8332),d=t(4253),p=t(6171),u=t(3442),m=t(1702),h=t(5258),y=t(2256),g=t(8770),f=t(4668),x=t(8569),j=t(7271),A=t(3914),b=t(3638),S=t(2565),I=t(9452);function w(){return(w=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])}return e}).apply(this,arguments)}let $=a.forwardRef(({prefixCls:e="rc-switch",className:n,checked:t,defaultChecked:i,disabled:r,loadingIcon:c,checkedChildren:s,unCheckedChildren:o,onClick:l,onChange:d,onKeyDown:p,styles:u,classNames:m,...h},y)=>{let[g,f]=(0,S.A)(i??!1,t);function x(e,n){let t=g;return r||(f(t=e),d?.(t,n)),t}let j=(0,b.$)(e,n,{[`${e}-checked`]:g,[`${e}-disabled`]:r});return a.createElement("button",w({},h,{type:"button",role:"switch","aria-checked":g,disabled:r,className:j,ref:y,onKeyDown:function(e){e.which===I.A.LEFT?x(!1,e):e.which===I.A.RIGHT&&x(!0,e),p?.(e)},onClick:function(e){let n=x(!g,e);l?.(n,e)}}),c,a.createElement("span",{className:`${e}-inner`},a.createElement("span",{className:(0,b.$)(`${e}-inner-checked`,m?.content),style:u?.content},s),a.createElement("span",{className:(0,b.$)(`${e}-inner-unchecked`,m?.content),style:u?.content},o)))});$.displayName="Switch";var k=t(2644),T=t(2162),v=t(8862),E=t(4567),C=t(6831),N=t(7273),R=t(5561),O=t(7252),q=t(7961),P=t(6666),D=t(540),_=t(8403);let L=(0,D.OF)("Switch",e=>{let n=(0,_.oX)(e,{switchDuration:e.motionDurationMid,switchColor:e.colorPrimary,switchDisabledOpacity:e.opacityLoading,switchLoadingIconSize:e.calc(e.fontSizeIcon).mul(.75).equal(),switchLoadingIconColor:`rgba(0, 0, 0, ${e.opacityLoading})`,switchHandleActiveInset:"-30%"});return[(e=>{let{componentCls:n,trackHeight:t,trackMinWidth:i}=e;return{[n]:{...(0,q.dF)(e),position:"relative",display:"inline-block",boxSizing:"border-box",minWidth:i,height:t,lineHeight:(0,R.zA)(t),verticalAlign:"middle",background:e.colorTextQuaternary,border:"0",borderRadius:100,cursor:"pointer",transition:`all ${e.motionDurationMid}`,userSelect:"none",...(0,P.V)(),[`&:hover:not(${n}-disabled)`]:{background:e.colorTextTertiary},...(0,q.K8)(e),[`&${n}-checked`]:{background:e.switchColor,[`&:hover:not(${n}-disabled)`]:{background:e.colorPrimaryHover}},[`&${n}-loading, &${n}-disabled`]:{cursor:"not-allowed",opacity:e.switchDisabledOpacity,"*":{boxShadow:"none",cursor:"not-allowed"}},[`&${n}-rtl`]:{direction:"rtl"}}}})(n),(e=>{let{componentCls:n,trackHeight:t,trackPadding:i,innerMinMargin:a,innerMaxMargin:r,handleSize:c,switchDuration:s,calc:o}=e,l=`${n}-inner`,d=(0,R.zA)(o(c).add(o(i).mul(2)).equal()),p=(0,R.zA)(o(r).mul(2).equal());return{[n]:{[l]:{display:"block",overflow:"hidden",borderRadius:100,height:"100%",paddingInlineStart:r,paddingInlineEnd:a,transition:["padding-inline-start","padding-inline-end"].map(e=>`${e} ${s} ease-in-out`).join(", "),...(0,P.V)(),[`${l}-checked, ${l}-unchecked`]:{display:"block",color:e.colorTextLightSolid,fontSize:e.fontSizeSM,pointerEvents:"none",minHeight:t,transition:["margin-inline-start","margin-inline-end"].map(e=>`${e} ${s} ease-in-out`).join(", "),...(0,P.V)()},[`${l}-checked`]:{marginInlineStart:`calc(-100% + ${d} - ${p})`,marginInlineEnd:`calc(100% - ${d} + ${p})`},[`${l}-unchecked`]:{marginTop:o(t).mul(-1).equal(),marginInlineStart:0,marginInlineEnd:0}},[`&${n}-checked ${l}`]:{paddingInlineStart:a,paddingInlineEnd:r,[`${l}-checked`]:{marginInlineStart:0,marginInlineEnd:0},[`${l}-unchecked`]:{marginInlineStart:`calc(100% - ${d} + ${p})`,marginInlineEnd:`calc(-100% + ${d} - ${p})`}},[`&:not(${n}-disabled):active`]:{[`&:not(${n}-checked) ${l}`]:{[`${l}-unchecked`]:{marginInlineStart:o(i).mul(2).equal(),marginInlineEnd:o(i).mul(-1).mul(2).equal()}},[`&${n}-checked ${l}`]:{[`${l}-checked`]:{marginInlineStart:o(i).mul(-1).mul(2).equal(),marginInlineEnd:o(i).mul(2).equal()}}}}}})(n),(e=>{let{componentCls:n,trackPadding:t,handleBg:i,handleShadow:a,handleSize:r,calc:c}=e,s=`${n}-handle`;return{[n]:{[s]:{position:"absolute",top:t,insetInlineStart:t,width:r,height:r,transition:`all ${e.switchDuration} ease-in-out`,...(0,P.V)(),"&::before":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,backgroundColor:i,borderRadius:c(r).div(2).equal(),boxShadow:a,transition:`all ${e.switchDuration} ease-in-out`,content:'""',...(0,P.V)()}},[`&${n}-checked ${s}`]:{insetInlineStart:`calc(100% - ${(0,R.zA)(c(r).add(t).equal())})`},[`&:not(${n}-disabled):active`]:{[`${s}::before`]:{insetInlineEnd:e.switchHandleActiveInset,insetInlineStart:0},[`&${n}-checked ${s}::before`]:{insetInlineEnd:0,insetInlineStart:e.switchHandleActiveInset}}}}})(n),(e=>{let{componentCls:n,handleSize:t,calc:i}=e;return{[n]:{[`${n}-loading-icon${e.iconCls}`]:{position:"relative",top:i(i(t).sub(e.fontSize)).div(2).equal(),color:e.switchLoadingIconColor,verticalAlign:"top"},[`&${n}-checked ${n}-loading-icon`]:{color:e.switchColor}}}})(n),(e=>{let{componentCls:n,trackHeightSM:t,trackPadding:i,trackMinWidthSM:a,innerMinMarginSM:r,innerMaxMarginSM:c,handleSizeSM:s,calc:o}=e,l=`${n}-inner`,d=(0,R.zA)(o(s).add(o(i).mul(2)).equal()),p=(0,R.zA)(o(c).mul(2).equal());return{[n]:{[`&${n}-small`]:{minWidth:a,height:t,lineHeight:(0,R.zA)(t),[`${n}-inner`]:{paddingInlineStart:c,paddingInlineEnd:r,[`${l}-checked, ${l}-unchecked`]:{minHeight:t},[`${l}-checked`]:{marginInlineStart:`calc(-100% + ${d} - ${p})`,marginInlineEnd:`calc(100% - ${d} + ${p})`},[`${l}-unchecked`]:{marginTop:o(t).mul(-1).equal(),marginInlineStart:0,marginInlineEnd:0}},[`${n}-handle`]:{width:s,height:s},[`${n}-loading-icon`]:{top:o(o(s).sub(e.switchLoadingIconSize)).div(2).equal(),fontSize:e.switchLoadingIconSize},[`&${n}-checked`]:{[`${n}-inner`]:{paddingInlineStart:r,paddingInlineEnd:c,[`${l}-checked`]:{marginInlineStart:0,marginInlineEnd:0},[`${l}-unchecked`]:{marginInlineStart:`calc(100% - ${d} + ${p})`,marginInlineEnd:`calc(-100% + ${d} - ${p})`}},[`${n}-handle`]:{insetInlineStart:`calc(100% - ${(0,R.zA)(o(s).add(i).equal())})`}},[`&:not(${n}-disabled):active`]:{[`&:not(${n}-checked) ${l}`]:{[`${l}-unchecked`]:{marginInlineStart:o(e.marginXXS).div(2).equal(),marginInlineEnd:o(e.marginXXS).mul(-1).div(2).equal()}},[`&${n}-checked ${l}`]:{[`${l}-checked`]:{marginInlineStart:o(e.marginXXS).mul(-1).div(2).equal(),marginInlineEnd:o(e.marginXXS).div(2).equal()}}}}}}})(n)]},e=>{let{fontSize:n,lineHeight:t,controlHeight:i,colorWhite:a}=e,r=n*t,c=i/2,s=r-4,o=c-4;return{trackHeight:r,trackHeightSM:c,trackMinWidth:2*s+8,trackMinWidthSM:2*o+4,trackPadding:2,handleBg:a,handleSize:s,handleSizeSM:o,handleShadow:`0 2px 4px 0 ${new O.Y("#00230b").setA(.2).toRgbString()}`,innerMinMargin:s/2,innerMaxMargin:s+2+4,innerMinMarginSM:o/2,innerMaxMarginSM:o+2+4}}),H=a.forwardRef((e,n)=>{let{prefixCls:t,size:i,disabled:r,loading:c,className:s,rootClassName:o,style:l,checked:d,value:p,defaultChecked:u,defaultValue:m,onChange:h,styles:y,classNames:g,...f}=e,[x,j]=(0,k.PW)(u??m??!1,d??p),{getPrefixCls:S,direction:I,className:w,style:R,classNames:O,styles:q}=(0,E.TP)("switch"),P=a.useContext(C.A),D=(r??P)||c,_=S("switch",t),[H,J]=L(_),U=(0,N.A)(i),z={...e,size:U,disabled:D},F=(0,T.XT)(R),M=(0,T.XT)(l),[V,X]=(0,T.AV)([O,g],[q,F,y,M],{props:z}),W=a.createElement("div",{className:(0,b.$)(`${_}-handle`,V.indicator),style:X.indicator},c&&a.createElement(A.A,{className:`${_}-loading-icon`})),B=(0,b.$)(w,{[`${_}-small`]:"small"===U,[`${_}-loading`]:c,[`${_}-rtl`]:"rtl"===I},s,o,V.root,H,J);return a.createElement(v.A,{component:"Switch",disabled:D},a.createElement($,{...f,classNames:V,styles:X,checked:x,onChange:(...e)=>{j(e[0]),h?.(...e)},prefixCls:_,className:B,style:X.root,disabled:D,ref:n,loadingIcon:W}))});H.__ANT_SWITCH=!0;var J=t(4992),U=t(4746),z=t(9650),F=t(8209),M=t(6578),V=t(3014);let X=["text","number","date","table","list"].map(e=>({label:e,value:e})),W=["required_fact","required_chapter","required_file_role","required_prompt_role","source_required","forbidden_text","min_chapter_length","table_required"].map(e=>({label:e,value:e})),B=["error","warning","info"].map(e=>({label:e,value:e}));function K(){var e,n;let t=(0,V.Vr)(),{message:A}=r.A.useApp(),[b]=c.A.useForm(),[S,I]=(0,a.useState)([]),[w,$]=(0,a.useState)([]),[k,T]=(0,a.useState)(!1),v=async()=>{let[e,n]=await Promise.all([(0,M.mx)(),(0,M.lv)()]);I(e.specs),$(n.roles)};(0,a.useEffect)(()=>{v().catch(()=>A.error(t("common.error")))},[A,t]);let E=w.filter(e=>"file"===e.type).map(e=>({label:e.name,value:e.id})),C=w.filter(e=>"prompt"===e.type).map(e=>({label:e.name,value:e.id})),N=null!=(n=null==(e=c.A.useWatch("factFields",b))?void 0:e.map(e=>({label:e.name||e.id,value:e.id})))?n:[],R=e=>{b.setFieldsValue(null!=e?e:{id:"spec-".concat(Date.now()),name:"",description:"",factFields:[],chapterRules:[],gateRules:[]}),T(!0)},O=async()=>{try{let e=await b.validateFields(),n=await (0,M.EK)(e);I(n.specs),T(!1),A.success(t("common.success"))}catch(e){e instanceof Error&&A.error(e.message)}},q=async e=>{I((await (0,M.ER)(e)).specs)};return(0,i.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,i.jsx)(s.A,{className:"cardGlass",styles:{body:{padding:24}},children:(0,i.jsxs)("div",{className:"flex items-center justify-between gap-4 flex-wrap",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h1",{className:"pageTitle mb-1",children:t("specs.title")}),(0,i.jsx)("p",{className:"pageDesc mb-0",children:t("specs.description")})]}),(0,i.jsx)(o.Ay,{type:"primary",icon:(0,i.jsx)(U.A,{}),onClick:()=>R(),children:t("specs.newSpec")})]})}),(0,i.jsx)(s.A,{title:t("specs.list"),children:(0,i.jsx)(l.A,{dataSource:S,locale:{emptyText:(0,i.jsx)(d.A,{description:t("common.noData")})},renderItem:e=>(0,i.jsx)(l.A.Item,{actions:[(0,i.jsx)(o.Ay,{type:"text",icon:(0,i.jsx)(z.A,{}),onClick:()=>R(e)},"edit"),(0,i.jsx)(p.A,{title:t("common.confirm"),onConfirm:()=>{q(e.id)},children:(0,i.jsx)(o.Ay,{type:"text",danger:!0,icon:(0,i.jsx)(F.A,{})})},"delete")],children:(0,i.jsx)(l.A.Item.Meta,{title:(0,i.jsxs)(u.A,{children:[e.name,(0,i.jsx)(m.A,{children:e.id})]}),description:"".concat(e.description||"-"," \xb7 ").concat(t("specs.facts"),": ").concat(e.factFields.length," \xb7 ").concat(t("specs.chapters"),": ").concat(e.chapterRules.length," \xb7 ").concat(t("specs.gates"),": ").concat(e.gateRules.length)})})})}),(0,i.jsx)(h.A,{title:t("specs.editor"),open:k,onOk:()=>{O()},onCancel:()=>T(!1),width:980,centered:!0,okText:t("common.save"),children:(0,i.jsxs)(c.A,{form:b,layout:"vertical",children:[(0,i.jsxs)(y.A,{gutter:12,children:[(0,i.jsx)(g.A,{span:8,children:(0,i.jsx)(c.A.Item,{name:"id",label:"ID",rules:[{required:!0}],children:(0,i.jsx)(f.A,{disabled:!0})})}),(0,i.jsx)(g.A,{span:8,children:(0,i.jsx)(c.A.Item,{name:"name",label:t("specs.name"),rules:[{required:!0}],children:(0,i.jsx)(f.A,{})})}),(0,i.jsx)(g.A,{span:8,children:(0,i.jsx)(c.A.Item,{name:"wordTemplatePath",label:t("specs.wordTemplatePath"),children:(0,i.jsx)(f.A,{placeholder:"/path/to/template.docx"})})})]}),(0,i.jsx)(c.A.Item,{name:"description",label:t("specs.specDescription"),children:(0,i.jsx)(f.A,{})}),(0,i.jsx)(x.A,{items:[{key:"facts",label:t("specs.facts"),children:(0,i.jsx)(c.A.List,{name:"factFields",children:(e,n)=>{let{add:a,remove:r}=n;return(0,i.jsxs)(u.A,{direction:"vertical",className:"w-full",children:[e.map(e=>(0,i.jsxs)(s.A,{size:"small",children:[(0,i.jsxs)(y.A,{gutter:8,children:[(0,i.jsx)(g.A,{span:5,children:(0,i.jsx)(c.A.Item,{name:[e.name,"id"],label:"ID",initialValue:"fact-".concat(Date.now()),children:(0,i.jsx)(f.A,{disabled:!0})})}),(0,i.jsx)(g.A,{span:5,children:(0,i.jsx)(c.A.Item,{name:[e.name,"name"],label:t("specs.factName"),rules:[{required:!0}],children:(0,i.jsx)(f.A,{})})}),(0,i.jsx)(g.A,{span:4,children:(0,i.jsx)(c.A.Item,{name:[e.name,"type"],label:t("specs.factType"),initialValue:"text",children:(0,i.jsx)(j.A,{options:X})})}),(0,i.jsx)(g.A,{span:4,children:(0,i.jsx)(c.A.Item,{name:[e.name,"required"],label:t("specs.required"),valuePropName:"checked",children:(0,i.jsx)(H,{})})}),(0,i.jsx)(g.A,{span:5,children:(0,i.jsx)(c.A.Item,{name:[e.name,"sourceRoleIds"],label:t("specs.sourceRoles"),children:(0,i.jsx)(j.A,{mode:"multiple",options:E})})}),(0,i.jsx)(g.A,{span:1,children:(0,i.jsx)(o.Ay,{danger:!0,onClick:()=>r(e.name),children:"-"})})]}),(0,i.jsx)(c.A.Item,{name:[e.name,"extractionHint"],label:t("specs.extractionHint"),children:(0,i.jsx)(f.A,{})}),(0,i.jsx)(c.A.Item,{name:[e.name,"validationHint"],label:t("specs.validationHint"),children:(0,i.jsx)(f.A,{})})]},e.key)),(0,i.jsx)(o.Ay,{onClick:()=>a({id:"fact-".concat(Date.now()),type:"text",required:!0}),children:t("specs.addFact")})]})}})},{key:"chapters",label:t("specs.chapters"),children:(0,i.jsx)(c.A.List,{name:"chapterRules",children:(e,n)=>{let{add:a,remove:r}=n;return(0,i.jsxs)(u.A,{direction:"vertical",className:"w-full",children:[e.map((e,n)=>(0,i.jsxs)(s.A,{size:"small",children:[(0,i.jsxs)(y.A,{gutter:8,children:[(0,i.jsx)(g.A,{span:4,children:(0,i.jsx)(c.A.Item,{name:[e.name,"id"],label:"ID",initialValue:"chapter-".concat(Date.now()),children:(0,i.jsx)(f.A,{disabled:!0})})}),(0,i.jsx)(g.A,{span:5,children:(0,i.jsx)(c.A.Item,{name:[e.name,"title"],label:t("specs.chapterTitle"),rules:[{required:!0}],children:(0,i.jsx)(f.A,{})})}),(0,i.jsx)(g.A,{span:3,children:(0,i.jsx)(c.A.Item,{name:[e.name,"order"],label:t("specs.order"),initialValue:n,children:(0,i.jsx)(J.A,{className:"w-full"})})}),(0,i.jsx)(g.A,{span:3,children:(0,i.jsx)(c.A.Item,{name:[e.name,"minWords"],label:t("specs.minWords"),children:(0,i.jsx)(J.A,{className:"w-full"})})}),(0,i.jsx)(g.A,{span:3,children:(0,i.jsx)(c.A.Item,{name:[e.name,"required"],label:t("specs.required"),valuePropName:"checked",children:(0,i.jsx)(H,{})})}),(0,i.jsx)(g.A,{span:5,children:(0,i.jsx)(c.A.Item,{name:[e.name,"requiredFactIds"],label:t("specs.requiredFacts"),children:(0,i.jsx)(j.A,{mode:"multiple",options:N})})}),(0,i.jsx)(g.A,{span:1,children:(0,i.jsx)(o.Ay,{danger:!0,onClick:()=>r(e.name),children:"-"})})]}),(0,i.jsxs)(y.A,{gutter:8,children:[(0,i.jsx)(g.A,{span:12,children:(0,i.jsx)(c.A.Item,{name:[e.name,"requiredFileRoleIds"],label:t("specs.requiredFileRoles"),children:(0,i.jsx)(j.A,{mode:"multiple",options:E})})}),(0,i.jsx)(g.A,{span:12,children:(0,i.jsx)(c.A.Item,{name:[e.name,"requiredPromptRoleIds"],label:t("specs.requiredPromptRoles"),children:(0,i.jsx)(j.A,{mode:"multiple",options:C})})})]}),(0,i.jsx)(c.A.Item,{name:[e.name,"generationHint"],label:t("specs.generationHint"),children:(0,i.jsx)(f.A,{})})]},e.key)),(0,i.jsx)(o.Ay,{onClick:()=>a({id:"chapter-".concat(Date.now()),order:e.length,required:!0}),children:t("specs.addChapter")})]})}})},{key:"gates",label:t("specs.gates"),children:(0,i.jsx)(c.A.List,{name:"gateRules",children:(e,n)=>{let{add:a,remove:r}=n;return(0,i.jsxs)(u.A,{direction:"vertical",className:"w-full",children:[e.map(e=>(0,i.jsxs)(y.A,{gutter:8,children:[(0,i.jsx)(g.A,{span:4,children:(0,i.jsx)(c.A.Item,{name:[e.name,"id"],initialValue:"gate-".concat(Date.now()),children:(0,i.jsx)(f.A,{disabled:!0})})}),(0,i.jsx)(g.A,{span:5,children:(0,i.jsx)(c.A.Item,{name:[e.name,"name"],rules:[{required:!0}],children:(0,i.jsx)(f.A,{placeholder:t("specs.gateName")})})}),(0,i.jsx)(g.A,{span:5,children:(0,i.jsx)(c.A.Item,{name:[e.name,"type"],initialValue:"required_fact",children:(0,i.jsx)(j.A,{options:W})})}),(0,i.jsx)(g.A,{span:4,children:(0,i.jsx)(c.A.Item,{name:[e.name,"level"],initialValue:"error",children:(0,i.jsx)(j.A,{options:B})})}),(0,i.jsx)(g.A,{span:3,children:(0,i.jsx)(c.A.Item,{name:[e.name,"target"],children:(0,i.jsx)(f.A,{placeholder:"target"})})}),(0,i.jsx)(g.A,{span:2,children:(0,i.jsx)(c.A.Item,{name:[e.name,"value"],children:(0,i.jsx)(f.A,{placeholder:"value"})})}),(0,i.jsx)(g.A,{span:1,children:(0,i.jsx)(o.Ay,{danger:!0,onClick:()=>r(e.name),children:"-"})})]},e.key)),(0,i.jsx)(o.Ay,{onClick:()=>a({id:"gate-".concat(Date.now()),type:"required_fact",level:"error"}),children:t("specs.addGate")})]})}})}]})]})})]})}},4773:(e,n,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/document-specs",function(){return t(1533)}])},6578:(e,n,t)=>{"use strict";async function i(e,n){let t=await fetch(e,n);if(!t.ok){let e=await t.text(),n=e||"HTTP ".concat(t.status);try{let t=JSON.parse(e);n=t.error||t.message||n}catch(e){}throw Error(n)}return t.json()}async function a(e){let n=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return i("/api/kb/stats".concat(n))}async function r(e){var n,t;let a=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&a.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&a.set("category",e.category),(null==e?void 0:e.page)&&a.set("page",String(null!=(n=e.page)?n:1)),(null==e?void 0:e.limit)&&a.set("limit",String(null!=(t=e.limit)?t:50)),i("/api/kb/files?".concat(a))}async function c(e,n){let t=new URLSearchParams({relativePath:e});return n&&t.set("projectRoot",n),i("/api/kb/files/detail?".concat(t))}async function s(e,n){return i("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:n})})}async function o(e,n,t){return i("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:n,projectRoot:t})})}async function l(e){return new Promise((n,t)=>{let i=new FileReader;i.onload=()=>{let e=i.result,t=e.indexOf(",");n(t>=0?e.slice(t+1):e)},i.onerror=t,i.readAsDataURL(e)})}async function d(e,n,t){return i("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:await Promise.all(e.map(async e=>({fileName:e.name,fileData:await l(e),relativePath:e.webkitRelativePath||void 0}))),projectRoot:n,uploadId:t})})}async function p(e){return i("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function u(e){let n=new URLSearchParams({limit:"50"});return e&&n.set("projectRoot",e),i("/api/kb/operations?".concat(n))}async function m(e){let n=new URLSearchParams;return e&&n.set("projectRoot",e),i("/api/kb/operations?".concat(n),{method:"DELETE"})}async function h(e,n){return i("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:n})})}async function y(e,n){return i("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:e,projectRoot:n})})}async function g(e){return i("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({all:!0,projectRoot:e})})}async function f(e){return i("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function x(){return i("/api/kb/features")}async function j(e,n){var t,a,r,c,s;let o=new URLSearchParams({q:e});return(null==n?void 0:n.projectRoot)&&o.set("projectRoot",n.projectRoot),(null==n?void 0:n.category)&&o.set("category",n.category),(null==n?void 0:n.limit)&&o.set("limit",String(null!=(s=n.limit)?s:20)),(null==n||null==(t=n.weights)?void 0:t.keyword)!=null&&o.set("keywordWeight",String(n.weights.keyword)),(null==n||null==(a=n.weights)?void 0:a.vector)!=null&&o.set("vectorWeight",String(n.weights.vector)),(null==n||null==(r=n.weights)?void 0:r.rewrite)!=null&&o.set("rewriteWeight",String(n.weights.rewrite)),(null==n||null==(c=n.weights)?void 0:c.hybridBonus)!=null&&o.set("hybridBonus",String(n.weights.hybridBonus)),i("/api/kb/search?".concat(o))}async function A(){return i("/api/prompt")}async function b(e){return i("/api/documents/roles".concat(e?"?type=".concat(e):""))}async function S(e){return i("/api/documents/roles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function I(e,n){return i("/api/documents/roles?type=".concat(e,"&id=").concat(encodeURIComponent(n)),{method:"DELETE"})}async function w(e){return i("/api/documents/roles?mode=config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function $(e){return i("/api/documents/roles?mode=config&id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function k(){return i("/api/documents/specs")}async function T(e){return i("/api/documents/specs",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function v(e){return i("/api/documents/specs?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function E(){return i("/api/documents/templates")}async function C(e){return i("/api/documents/templates",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function N(e){return i("/api/documents/templates?templateId=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function R(e){return i("/api/documents/templates",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateId:e})})}async function O(e){return i("/api/documents/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function q(e){return i("/api/documents/chapter/regenerate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function P(){return i("/api/documents/drafts")}async function D(e,n){return i("/api/documents/drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({draft:e,id:n})})}async function _(e){let n=await fetch("/api/documents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!n.ok)throw Error(await n.text());return n.blob()}async function L(){return i("/api/config/providers")}async function H(e,n){return i("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...n})})}async function J(e){return i("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function U(){return i("/api/config/models")}async function z(e){return i("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function F(){return i("/api/config/embedding")}async function M(e){return i("/api/config/embedding",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function V(){return i("/api/config/embedding/healthCheck",{method:"POST"})}async function X(e){return i("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function W(){return i("/api/system/stats")}async function B(e,n){let t=n?"?type=".concat(e,"&search=").concat(encodeURIComponent(n)):"?type=".concat(e);return i("/api/context".concat(t))}async function K(e){return i("/api/context?type=".concat(e,"&stats=1"))}async function G(e){return i("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function Q(e){return i("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function Z(e){return i("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function Y(e,n){return i("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...n})})}async function ee(e){return i("/api/config/providers/".concat(encodeURIComponent(e)))}t.d(n,{Af:()=>D,Bh:()=>ee,Dl:()=>E,E:()=>Q,EK:()=>T,ER:()=>v,FC:()=>W,FV:()=>I,H1:()=>f,H7:()=>m,HC:()=>s,HT:()=>r,II:()=>F,NR:()=>w,OX:()=>O,PH:()=>G,QT:()=>p,Qx:()=>u,R1:()=>q,SJ:()=>y,UE:()=>_,VW:()=>x,W2:()=>j,X8:()=>g,Z3:()=>L,_m:()=>H,aP:()=>z,bV:()=>R,bZ:()=>X,c1:()=>d,dd:()=>M,dg:()=>S,dw:()=>$,dx:()=>A,h0:()=>N,h1:()=>J,hc:()=>a,hn:()=>B,l2:()=>C,lv:()=>b,mx:()=>k,p:()=>K,q7:()=>P,tn:()=>o,u6:()=>V,xC:()=>c,xq:()=>h,xw:()=>Z,zo:()=>Y,zr:()=>U})}},e=>{e.O(0,[260,167,382,201,668,227,740,174,492,455,992,846,636,593,792],()=>e(e.s=4773)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298],{1307:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z"}}]},name:"save",theme:"outlined"}},1699:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>M});var o=n(5321),s=n(7109),c=n(4668),i=n(5292),a=n(7807),r=n(3455),l=n(8787),d=n(5114),u=n(2256),p=n(8770),m=n(8332),h=n(4253),f=n(6171),y=n(3442),g=n(1702),x=n(7271),j=n(9730),A=n(8569),w=n(5258),v=n(4746),b=n(3051),S=n(9650),C=n(8209),k=n(6631),I=n(9071),T=n(1307),O=n(8483);function E(){return(E=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}let R=s.forwardRef((e,t)=>s.createElement(O.A,E({},e,{ref:t,icon:T.A})));var P=n(6398);function N(){return(N=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}let z=s.forwardRef((e,t)=>s.createElement(O.A,N({},e,{ref:t,icon:P.A})));var D=n(9811),L=n(6578),U=n(3014);let{TextArea:J}=c.A,{Paragraph:H}=i.A;function M(){var e,t,n;let i=(0,U.Vr)(),{message:T}=a.A.useApp(),[O]=r.A.useForm(),[E,P]=(0,s.useState)([]),[N,M]=(0,s.useState)("construction-organization-design"),[V,F]=(0,s.useState)([]),[_,G]=(0,s.useState)([]),[q,B]=(0,s.useState)([]),[W,X]=(0,s.useState)(!1),[Q,Z]=(0,s.useState)(null),[K,Y]=(0,s.useState)(""),[$,ee]=(0,s.useState)([]),[et,en]=(0,s.useState)(!1),[eo,es]=(0,s.useState)(null),[ec,ei]=(0,s.useState)(!1),[ea,er]=(0,s.useState)([]),[el,ed]=(0,s.useState)(null),eu=async()=>{try{ee((await (0,L.q7)()).drafts)}catch(e){ee([])}};(0,s.useEffect)(()=>{(0,L.Dl)().then(e=>{var t,n;P(e.templates),M(null!=(n=null==(t=e.templates[0])?void 0:t.id)?n:"construction-organization-design")}).catch(()=>T.error(i("common.error"))),(0,L.lv)().then(e=>{F(e.roles),G(e.configs)}).catch(()=>{F([]),G([])}),(0,L.mx)().then(e=>B(e.specs)).catch(()=>B([])),eu()},[T,i]);let ep=(0,s.useMemo)(()=>E.find(e=>e.id===N),[E,N]),em=_.map(e=>({label:e.name,value:e.id})),eh=q.map(e=>({label:e.name,value:e.id})),ef=Math.max(0,ea.findIndex(e=>e.key===el)),ey=(e,t,n)=>{ed(e),er(o=>o.map(o=>o.key===e?{...o,status:t,description:n||o.description}:o))},eg=e=>{er(t=>{let n=t.findIndex(t=>t.key===e);return t.map((e,t)=>t<n&&"error"!==e.status?{...e,status:"finish"}:e)})},ex=e=>{O.setFieldsValue(null!=e?e:{id:"custom-template-".concat(Date.now()),name:"",description:"",category:"自定义",outputTitle:"",projectRoleConfigId:void 0,documentSpecId:void 0,chapters:[]}),ei(!0)},ej=async()=>{try{let e=await O.validateFields(),t=await (0,L.l2)(e);P(t.templates),M(t.template.id),ei(!1),T.success(i("common.success"))}catch(e){e instanceof Error&&T.error(e.message)}},eA=async e=>{try{let t=await (0,L.bV)(e);P(t.templates),M(t.template.id),T.success(i("common.success"))}catch(e){T.error(i("common.error"))}},ew=async e=>{try{var t,n;let o=await (0,L.h0)(e);P(o.templates),M(null!=(n=null==(t=o.templates[0])?void 0:t.id)?n:""),T.success(i("common.success"))}catch(e){T.error(i("common.error"))}},ev=async()=>{if(!N)return;X(!0),er([{key:"prepare",title:i("documents.flowPrepare"),description:i("documents.flowPrepareDesc"),status:"process"},{key:"fact_extraction",title:i("documents.flowFactExtraction"),description:i("documents.flowFactExtractionDesc"),status:"wait"},{key:"chapter_generation",title:i("documents.flowChapterGeneration"),description:i("documents.flowChapterGenerationDesc"),status:"wait"},{key:"validation",title:i("documents.flowValidation"),description:i("documents.flowValidationDesc"),status:"wait"},{key:"formatting",title:i("documents.flowFormatting"),description:i("documents.flowFormattingDesc"),status:"wait"},{key:"done",title:i("documents.flowDone"),description:i("documents.flowDoneDesc"),status:"wait"}]),ed("prepare");let e=[window.setTimeout(()=>{eg("fact_extraction"),ey("fact_extraction","process")},600),window.setTimeout(()=>{eg("chapter_generation"),ey("chapter_generation","process")},1800),window.setTimeout(()=>{eg("validation"),ey("validation","process")},3200),window.setTimeout(()=>{eg("formatting"),ey("formatting","process")},4600)];try{let e=await (0,L.OX)({templateId:N});Z(e.draft),Y(e.draft.markdown),er(t=>t.map(t=>{let n=e.draft.executionStages.find(e=>e.type===t.key);return"prepare"===t.key?{...t,status:"finish",description:i("documents.flowPrepareDone")}:"done"===t.key?{...t,status:e.draft.exportGate.passed?"finish":"error",description:e.draft.exportGate.passed?i("documents.flowDoneDesc"):i("documents.flowGateFailed")}:n?{...t,status:"failed"===n.status?"error":"finish",description:n.message||t.description}:"process"===t.status?{...t,status:"finish"}:t})),ed("done"),T.success(i("common.success"))}catch(e){er(t=>t.map(t=>"process"===t.status?{...t,status:"error",description:e instanceof Error?e.message:i("common.error")}:t)),T.error(e instanceof Error?e.message:i("common.error"))}finally{e.forEach(e=>window.clearTimeout(e)),X(!1)}},eb=async e=>{if(Q){en(!0);try{let s=null==(t=q.find(e=>e.id===(null==ep?void 0:ep.documentSpecId)))?void 0:t.wordTemplatePath;var t,n=await (0,L.UE)({title:Q.title,markdown:K,format:e,enforceGate:"pdf"===e||"docx"===e,exportGate:Q.exportGate,wordTemplatePath:s}),o="".concat(Q.title,".").concat("markdown"===e?"md":e);let c=URL.createObjectURL(n),i=document.createElement("a");i.href=c,i.download=o,i.click(),URL.revokeObjectURL(c)}catch(e){T.error(i("common.error"))}finally{en(!1)}}},eS=async()=>{if(Q)try{let e=await (0,L.Af)({...Q,markdown:K});Z(e.draft),await eu(),T.success(i("common.success"))}catch(e){T.error(i("common.error"))}},eC=async e=>{if(Q){es(e.id);try{var t;let n=await (0,L.R1)({templateId:Q.templateId,chapterId:e.id}),o=Q.chapters.map(t=>t.id===e.id?n.chapter:t);Z({...Q,chapters:o}),t=n.chapter,Y(n=>n.includes(e.content)?n.replace(e.content,t.content):"".concat(n,"\n\n").concat(t.content)),T.success(i("common.success"))}catch(e){T.error(i("common.error"))}finally{es(null)}}};return(0,o.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,o.jsx)(l.A,{className:"cardGlass",styles:{body:{padding:24}},children:(0,o.jsxs)("div",{className:"flex items-center justify-between gap-4 flex-wrap",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("h1",{className:"pageTitle mb-1",children:i("documents.title")}),(0,o.jsx)("p",{className:"pageDesc mb-0",children:i("documents.description")})]}),(0,o.jsx)(d.Ay,{type:"primary",size:"large",icon:(0,o.jsx)(v.A,{}),onClick:()=>ex(),children:i("documents.newTemplate")})]})}),(0,o.jsxs)(u.A,{gutter:[16,16],align:"top",children:[(0,o.jsxs)(p.A,{xs:24,lg:8,children:[(0,o.jsx)(l.A,{size:"small",title:i("documents.templateLibrary"),children:(0,o.jsx)(m.A,{dataSource:E,locale:{emptyText:(0,o.jsx)(h.A,{description:i("common.noData")})},renderItem:e=>(0,o.jsx)(m.A.Item,{onClick:()=>M(e.id),className:"cursor-pointer",actions:[(0,o.jsx)(d.Ay,{size:"small",type:"text",icon:(0,o.jsx)(b.A,{}),onClick:t=>{t.stopPropagation(),eA(e.id)}},"copy"),(0,o.jsx)(d.Ay,{size:"small",type:"text",icon:(0,o.jsx)(S.A,{}),disabled:e.builtIn,onClick:t=>{t.stopPropagation(),ex(e)}},"edit"),(0,o.jsx)(f.A,{title:i("documents.deleteTemplateConfirm"),disabled:e.builtIn,onConfirm:t=>{null==t||t.stopPropagation(),ew(e.id)},children:(0,o.jsx)(d.Ay,{size:"small",type:"text",danger:!0,icon:(0,o.jsx)(C.A,{}),disabled:e.builtIn,onClick:e=>e.stopPropagation()})},"delete")],children:(0,o.jsx)(m.A.Item.Meta,{avatar:(0,o.jsx)(k.A,{}),title:(0,o.jsxs)(y.A,{children:[(0,o.jsx)("span",{children:e.name}),e.builtIn&&(0,o.jsx)(g.A,{children:i("documents.builtIn")}),N===e.id&&(0,o.jsx)(g.A,{color:"blue",children:i("documents.selected")})]}),description:(0,o.jsxs)(y.A,{direction:"vertical",size:2,children:[(0,o.jsx)("span",{children:e.description}),(0,o.jsx)(g.A,{children:e.category})]})})})})}),(0,o.jsx)(l.A,{className:"mt-4",size:"small",title:i("documents.draftHistory"),children:(0,o.jsx)(m.A,{size:"small",dataSource:$.slice(0,8),locale:{emptyText:(0,o.jsx)(h.A,{description:i("common.noData")})},renderItem:e=>(0,o.jsx)(m.A.Item,{onClick:()=>{Z(e),Y(e.markdown),M(e.templateId)},className:"cursor-pointer",children:(0,o.jsx)(m.A.Item.Meta,{title:e.title,description:new Date(e.updatedAt).toLocaleString()})})})})]}),(0,o.jsx)(p.A,{xs:24,lg:16,children:(0,o.jsx)(l.A,{size:"small",title:i("documents.workflow"),children:(0,o.jsxs)(y.A,{direction:"vertical",className:"w-full",size:"middle",children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("span",{className:"block mb-1",children:i("documents.template")}),(0,o.jsx)(x.A,{className:"w-full",value:N,onChange:M,options:E.map(e=>({label:e.name,value:e.id}))})]}),ep&&(0,o.jsxs)(l.A,{size:"small",type:"inner",title:ep.outputTitle,children:[(0,o.jsx)(H,{children:ep.description}),(0,o.jsxs)(y.A,{wrap:!0,children:[ep.projectRoleConfigId?(0,o.jsx)(g.A,{color:"geekblue",children:(null==(e=_.find(e=>e.id===ep.projectRoleConfigId))?void 0:e.name)||ep.projectRoleConfigId}):(0,o.jsx)(g.A,{color:"warning",children:i("documents.noRoleConfig")}),ep.documentSpecId?(0,o.jsx)(g.A,{color:"cyan",children:(null==(t=q.find(e=>e.id===ep.documentSpecId))?void 0:t.name)||ep.documentSpecId}):null]})]}),ep&&(0,o.jsx)(y.A,{direction:"vertical",size:4,children:(0,o.jsxs)("span",{children:[i("documents.projectRoleConfig"),": ",(null==(n=_.find(e=>e.id===ep.projectRoleConfigId))?void 0:n.name)||i("documents.noRoleConfig")]})}),(0,o.jsx)(d.Ay,{type:"primary",size:"large",block:!0,icon:(0,o.jsx)(I.A,{}),loading:W,disabled:!(null==ep?void 0:ep.projectRoleConfigId),onClick:()=>{ev()},children:i("documents.generate")}),ea.length>0&&(0,o.jsx)(l.A,{size:"small",type:"inner",title:i("documents.executionStatus"),children:(0,o.jsx)(j.A,{direction:"vertical",size:"small",current:ef,items:ea.map(e=>({title:e.title,description:e.description,status:e.status}))})})]})})})]}),(0,o.jsx)(l.A,{size:"small",title:i("documents.editor"),extra:(0,o.jsx)(y.A,{wrap:!0,children:Q&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(d.Ay,{icon:(0,o.jsx)(R,{}),onClick:()=>{eS()},children:i("documents.saveDraft")}),(0,o.jsx)(d.Ay,{icon:(0,o.jsx)(z,{}),loading:et,onClick:()=>{eb("markdown")},children:i("documents.downloadMarkdown")}),(0,o.jsx)(d.Ay,{loading:et,onClick:()=>{eb("html")},children:i("documents.exportHtml")}),(0,o.jsx)(d.Ay,{loading:et,onClick:()=>{eb("docx")},children:i("documents.exportDocx")}),(0,o.jsx)(d.Ay,{type:"primary",loading:et,onClick:()=>{eb("pdf")},children:i("documents.exportPdf")})]})}),children:Q?(0,o.jsx)(A.A,{items:[{key:"edit",label:i("documents.edit"),children:(0,o.jsx)(J,{rows:26,value:K,onChange:e=>Y(e.target.value)})},{key:"chapters",label:i("documents.chapters"),children:(0,o.jsx)(m.A,{dataSource:Q.chapters,renderItem:e=>(0,o.jsx)(m.A.Item,{actions:[(0,o.jsx)(d.Ay,{size:"small",icon:(0,o.jsx)(D.A,{}),loading:eo===e.id,onClick:()=>{eC(e)},children:i("documents.regenerateChapter")},"regen")],children:(0,o.jsx)(m.A.Item.Meta,{title:e.title,description:(0,o.jsxs)(y.A,{direction:"vertical",children:[(0,o.jsxs)("span",{children:[i("documents.evidenceCount"),": ",e.evidence.length]}),(0,o.jsxs)("span",{children:[i("documents.missingCount"),": ",e.missingFacts.length]})]})})})})},{key:"facts",label:i("documents.structuredFacts"),children:(0,o.jsx)(m.A,{dataSource:Q.structuredFacts,renderItem:e=>{var t;return(0,o.jsxs)(m.A.Item,{children:[(0,o.jsx)(m.A.Item.Meta,{title:"".concat(e.key,": ").concat(e.value),description:"".concat(e.sourceFile," \xb7 ").concat((null==(t=V.find(t=>t.id===e.roleId))?void 0:t.name)||e.roleId)}),(0,o.jsx)(g.A,{children:e.confidence.toFixed(2)})]})}})},{key:"sources",label:i("documents.sources"),children:(0,o.jsx)(m.A,{dataSource:Q.sources,renderItem:e=>(0,o.jsxs)(m.A.Item,{children:[(0,o.jsx)("span",{children:e.filePath}),(0,o.jsx)(g.A,{children:e.count})]})})},{key:"missing",label:i("documents.missingItems"),children:0===Q.missingItems.length?(0,o.jsx)(h.A,{description:i("common.noData")}):(0,o.jsx)(m.A,{dataSource:Q.missingItems,renderItem:e=>(0,o.jsx)(m.A.Item,{children:e})})},{key:"validation",label:i("documents.validation"),children:(0,o.jsx)(y.A,{direction:"vertical",className:"w-full",children:Q.validationIssues.map(e=>(0,o.jsxs)(g.A,{color:"error"===e.level?"error":"warning"===e.level?"warning":"blue",children:[e.message,e.suggestion?":".concat(e.suggestion):""]},e.message))})},{key:"gate",label:i("documents.exportGate"),children:(0,o.jsx)(m.A,{dataSource:Q.exportGate.checklist,renderItem:e=>(0,o.jsxs)(m.A.Item,{children:[(0,o.jsx)("span",{children:e.label}),(0,o.jsx)(g.A,{color:e.passed?"success":"error",children:e.passed?"PASS":"FAIL"})]})})},{key:"stages",label:i("documents.executionStages"),children:(0,o.jsx)(m.A,{dataSource:Q.executionStages,renderItem:e=>(0,o.jsxs)(m.A.Item,{children:[(0,o.jsx)(m.A.Item.Meta,{title:"".concat(e.type," \xb7 ").concat(e.roleId),description:e.message}),(0,o.jsx)(g.A,{color:"success"===e.status?"success":"failed"===e.status?"error":"warning",children:e.status})]})})}]}):(0,o.jsx)(h.A,{description:i("documents.noDraft")})}),(0,o.jsx)(w.A,{title:i("documents.templateEditor"),open:ec,onOk:()=>{ej()},onCancel:()=>ei(!1),width:760,centered:!0,okText:i("common.save"),children:(0,o.jsxs)(r.A,{form:O,layout:"vertical",requiredMark:"optional",children:[(0,o.jsxs)(u.A,{gutter:12,children:[(0,o.jsx)(p.A,{xs:24,md:8,children:(0,o.jsx)(r.A.Item,{name:"id",label:"ID",rules:[{required:!0}],children:(0,o.jsx)(c.A,{disabled:!0})})}),(0,o.jsx)(p.A,{xs:24,md:8,children:(0,o.jsx)(r.A.Item,{name:"name",label:i("documents.templateName"),rules:[{required:!0}],children:(0,o.jsx)(c.A,{})})}),(0,o.jsx)(p.A,{xs:24,md:8,children:(0,o.jsx)(r.A.Item,{name:"category",label:i("documents.templateCategory"),children:(0,o.jsx)(c.A,{})})}),(0,o.jsx)(p.A,{xs:24,md:12,children:(0,o.jsx)(r.A.Item,{name:"outputTitle",label:i("documents.outputTitle"),children:(0,o.jsx)(c.A,{})})}),(0,o.jsx)(p.A,{xs:24,md:12,children:(0,o.jsx)(r.A.Item,{name:"description",label:i("documents.templateDescription"),children:(0,o.jsx)(c.A,{})})})]}),(0,o.jsx)(r.A.Item,{name:"projectRoleConfigId",label:i("documents.projectRoleConfig"),rules:[{required:!0,message:i("documents.projectRoleConfigRequired")}],children:(0,o.jsx)(x.A,{showSearch:!0,placeholder:i("documents.projectRoleConfigRequired"),options:em})}),(0,o.jsx)(r.A.Item,{name:"documentSpecId",label:i("documents.documentSpec"),children:(0,o.jsx)(x.A,{allowClear:!0,showSearch:!0,placeholder:i("documents.documentSpecPlaceholder"),options:eh})})]})})]})}},2887:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z"}}]},name:"file-text",theme:"outlined"}},4995:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z"}}]},name:"reload",theme:"outlined"}},6398:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"}}]},name:"download",theme:"outlined"}},6403:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/documents",function(){return n(1699)}])},6578:(e,t,n)=>{"use strict";async function o(e,t){let n=await fetch(e,t);if(!n.ok){let e=await n.text(),t=e||"HTTP ".concat(n.status);try{let n=JSON.parse(e);t=n.error||n.message||t}catch(e){}throw Error(t)}return n.json()}async function s(e){let t=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return o("/api/kb/stats".concat(t))}async function c(e){var t,n;let s=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&s.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&s.set("category",e.category),(null==e?void 0:e.page)&&s.set("page",String(null!=(t=e.page)?t:1)),(null==e?void 0:e.limit)&&s.set("limit",String(null!=(n=e.limit)?n:50)),o("/api/kb/files?".concat(s))}async function i(e,t){let n=new URLSearchParams({relativePath:e});return t&&n.set("projectRoot",t),o("/api/kb/files/detail?".concat(n))}async function a(e,t){return o("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function r(e,t,n){return o("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:t,projectRoot:n})})}async function l(e){return new Promise((t,n)=>{let o=new FileReader;o.onload=()=>{let e=o.result,n=e.indexOf(",");t(n>=0?e.slice(n+1):e)},o.onerror=n,o.readAsDataURL(e)})}async function d(e,t,n){return o("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:await Promise.all(e.map(async e=>({fileName:e.name,fileData:await l(e),relativePath:e.webkitRelativePath||void 0}))),projectRoot:t,uploadId:n})})}async function u(e){return o("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function p(e){let t=new URLSearchParams({limit:"50"});return e&&t.set("projectRoot",e),o("/api/kb/operations?".concat(t))}async function m(e){let t=new URLSearchParams;return e&&t.set("projectRoot",e),o("/api/kb/operations?".concat(t),{method:"DELETE"})}async function h(e,t){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function f(e,t){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:e,projectRoot:t})})}async function y(e){return o("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({all:!0,projectRoot:e})})}async function g(e){return o("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function x(){return o("/api/kb/features")}async function j(e,t){var n,s,c,i,a;let r=new URLSearchParams({q:e});return(null==t?void 0:t.projectRoot)&&r.set("projectRoot",t.projectRoot),(null==t?void 0:t.category)&&r.set("category",t.category),(null==t?void 0:t.limit)&&r.set("limit",String(null!=(a=t.limit)?a:20)),(null==t||null==(n=t.weights)?void 0:n.keyword)!=null&&r.set("keywordWeight",String(t.weights.keyword)),(null==t||null==(s=t.weights)?void 0:s.vector)!=null&&r.set("vectorWeight",String(t.weights.vector)),(null==t||null==(c=t.weights)?void 0:c.rewrite)!=null&&r.set("rewriteWeight",String(t.weights.rewrite)),(null==t||null==(i=t.weights)?void 0:i.hybridBonus)!=null&&r.set("hybridBonus",String(t.weights.hybridBonus)),o("/api/kb/search?".concat(r))}async function A(){return o("/api/prompt")}async function w(e){return o("/api/documents/roles".concat(e?"?type=".concat(e):""))}async function v(e){return o("/api/documents/roles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function b(e,t){return o("/api/documents/roles?type=".concat(e,"&id=").concat(encodeURIComponent(t)),{method:"DELETE"})}async function S(e){return o("/api/documents/roles?mode=config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function C(e){return o("/api/documents/roles?mode=config&id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function k(){return o("/api/documents/specs")}async function I(e){return o("/api/documents/specs",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function T(e){return o("/api/documents/specs?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function O(){return o("/api/documents/templates")}async function E(e){return o("/api/documents/templates",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function R(e){return o("/api/documents/templates?templateId=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function P(e){return o("/api/documents/templates",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateId:e})})}async function N(e){return o("/api/documents/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function z(e){return o("/api/documents/chapter/regenerate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function D(){return o("/api/documents/drafts")}async function L(e,t){return o("/api/documents/drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({draft:e,id:t})})}async function U(e){let t=await fetch("/api/documents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await t.text());return t.blob()}async function J(){return o("/api/config/providers")}async function H(e,t){return o("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...t})})}async function M(e){return o("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function V(){return o("/api/config/models")}async function F(e){return o("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function _(){return o("/api/config/embedding")}async function G(e){return o("/api/config/embedding",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function q(){return o("/api/config/embedding/healthCheck",{method:"POST"})}async function B(e){return o("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function W(){return o("/api/system/stats")}async function X(e,t){let n=t?"?type=".concat(e,"&search=").concat(encodeURIComponent(t)):"?type=".concat(e);return o("/api/context".concat(n))}async function Q(e){return o("/api/context?type=".concat(e,"&stats=1"))}async function Z(e){return o("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function K(e){return o("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function Y(e){return o("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function $(e,t){return o("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...t})})}async function ee(e){return o("/api/config/providers/".concat(encodeURIComponent(e)))}n.d(t,{Af:()=>L,Bh:()=>ee,Dl:()=>O,E:()=>K,EK:()=>I,ER:()=>T,FC:()=>W,FV:()=>b,H1:()=>g,H7:()=>m,HC:()=>a,HT:()=>c,II:()=>_,NR:()=>S,OX:()=>N,PH:()=>Z,QT:()=>u,Qx:()=>p,R1:()=>z,SJ:()=>f,UE:()=>U,VW:()=>x,W2:()=>j,X8:()=>y,Z3:()=>J,_m:()=>H,aP:()=>F,bV:()=>P,bZ:()=>B,c1:()=>d,dd:()=>G,dg:()=>v,dw:()=>C,dx:()=>A,h0:()=>R,h1:()=>M,hc:()=>s,hn:()=>X,l2:()=>E,lv:()=>w,mx:()=>k,p:()=>Q,q7:()=>D,tn:()=>r,u6:()=>q,xC:()=>i,xq:()=>h,xw:()=>Y,zo:()=>$,zr:()=>V})},6631:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var o=n(7109),s=n(2887),c=n(8483);function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}let a=o.forwardRef((e,t)=>o.createElement(c.A,i({},e,{ref:t,icon:s.A})))},8847:(e,t)=>{"use strict";t.A={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M848 359.3H627.7L825.8 109c4.1-5.3.4-13-6.3-13H436c-2.8 0-5.5 1.5-6.9 4L170 547.5c-3.1 5.3.7 12 6.9 12h174.4l-89.4 357.6c-1.9 7.8 7.5 13.3 13.3 7.7L853.5 373c5.2-4.9 1.7-13.7-5.5-13.7zM378.2 732.5l60.3-241H281.1l189.6-327.4h224.6L487 427.4h211L378.2 732.5z"}}]},name:"thunderbolt",theme:"outlined"}},9071:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var o=n(7109),s=n(8847),c=n(8483);function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}let a=o.forwardRef((e,t)=>o.createElement(c.A,i({},e,{ref:t,icon:s.A})))},9811:(e,t,n)=>{"use strict";n.d(t,{A:()=>a});var o=n(7109),s=n(4995),c=n(8483);function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}let a=o.forwardRef((e,t)=>o.createElement(c.A,i({},e,{ref:t,icon:s.A})))}},e=>{e.O(0,[260,167,382,201,668,227,740,174,492,455,292,846,730,636,593,792],()=>e(e.s=6403)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[920],{2548:(e,s,l)=>{"use strict";l.r(s),l.d(s,{default:()=>y});var i=l(5321),t=l(5292),c=l(8787),r=l(2256),n=l(8770),d=l(1702),a=l(9730),h=l(3399),x=l(9884),o=l(3241),j=l(1330),p=l(8579),g=l(6926),m=l(7851),u=l(4742),A=l(3014);let{Paragraph:N,Title:k,Text:f}=t.A,v=[{icon:(0,i.jsx)(j.A,{}),title:"准备阶段",color:"blue",items:["配置模型","上传知识库资料","创建提示词"]},{icon:(0,i.jsx)(p.A,{}),title:"编排阶段",color:"purple",items:["创建文件角色","创建提示词角色","创建项目角色配置并排序"]},{icon:(0,i.jsx)(g.A,{}),title:"生成阶段",color:"geekblue",items:["创建模板","执行生成","查看执行状态"]},{icon:(0,i.jsx)(m.A,{}),title:"交付阶段",color:"green",items:["审查事实和来源","检查导出门禁","导出正式文件"]}],b=[{title:"第一步:配置模型",goal:"让系统具备 LLM JSON 事实抽取、章节生成和校验能力。",path:"左侧菜单 → 模型配置",steps:["点击新增供应商,选择 OpenAI、DeepSeek、OpenRouter、Ollama 或其他兼容 OpenAI 协议的服务。","填写 Base URL、API Key、供应商名称并保存。","添加模型名称,建议至少准备一个用于生成和推理的模型。","把模型设置为当前启用模型。","执行健康检查,确认模型可调用。"],checks:["模型健康检查通过","至少有一个启用模型","API Key 和 Base URL 正确"],tips:"如果模型不可用,系统会回退到本地确定性抽取,但事实抽取质量会下降。"},{title:"第二步:上传知识库资料",goal:"把项目资料放入系统,让后续文件角色可以绑定。",path:"左侧菜单 → 知识库 → 文件管理 / 管理",steps:["上传招标文件、工程概况、合同条件、技术要求等项目事实资料。","上传工程量清单、劳动力计划、机械设备计划、材料计划等表格资料。","上传图纸目录、图纸说明、设计说明等图纸类资料。","上传规范、规程、企业标准、评分办法、编制要求等规则类资料。","等待索引完成,并在知识库文件列表中确认文件可见。"],checks:["文件上传成功","索引完成","文件能在文件角色绑定下拉框中看到"],tips:"表格资料最好有清晰表头;图纸资料最好附带目录或文字说明。"},{title:"第三步:创建提示词",goal:"定义每个执行阶段的模型行为。",path:"左侧菜单 → 提示词管理",steps:["创建事实抽取提示词:要求只抽取资料中明确出现的事实,返回结构化 JSON,不允许编造。","创建章节生成提示词:定义文档类型、专业语气、章节风格、引用事实和禁止事项。","创建校验提示词:检查工程名称、工期、质量目标、数字、表格引用、章节完整性。","创建格式化提示词:定义封面、目录、编号、表格、分页和正式输出样式。","保存后确认提示词能在提示词角色绑定下拉框中看到。"],checks:["事实抽取提示词已创建","章节生成提示词已创建","校验或格式化提示词已创建"],tips:"提示词越明确,生成结果越稳定。建议明确写上“没有来源的数据不要写”。"},{title:"第四步:创建文件角色",goal:"告诉系统每个文件在生成流程中的用途。",path:"左侧菜单 → 角色配置 → 新建文件角色",steps:["填写角色名称,例如“招标文件事实源”“工程量清单表格”“图纸说明文件”。","选择处理类型:规则文件、项目事实文件、表格数据、图纸文件、规范文件或参考资料。","绑定对应知识库文件。","保存角色。","按文件用途创建多个文件角色,不建议把不同用途资料混在一个角色里。"],checks:["文件角色有名称","已选择处理类型","已绑定知识库文件"],tips:"处理类型很重要:系统会根据它决定是否进行表格解析、事实抽取、规则引用或来源追踪。"},{title:"第五步:创建提示词角色",goal:"告诉系统每条提示词在哪个执行阶段使用。",path:"左侧菜单 → 角色配置 → 新建提示词角色",steps:["填写角色名称,例如“施工组织设计事实抽取”“章节生成规则”“导出前校验规则”。","选择执行类型:事实抽取、章节生成、校验、格式化或参考。","绑定对应提示词。","保存角色。","一个执行阶段可以有多个提示词角色,后续在项目角色配置中排序。"],checks:["提示词角色有名称","已选择执行类型","已绑定提示词"],tips:"角色名称可以完全自定义,但执行类型必须选对。系统依赖执行类型驱动多阶段流程。"},{title:"第六步:创建项目角色配置并排序",goal:"把文件角色和提示词角色组合成一个可复用的项目生成方案。",path:"左侧菜单 → 角色配置 → 新建项目配置",steps:["填写配置名称,例如“某项目施工组织设计配置”。","添加文件角色,并设置顺序。推荐:规则文件 → 项目事实文件 → 表格数据 → 图纸文件 → 规范文件 → 参考资料。","添加提示词角色,并设置顺序。推荐:事实抽取 → 章节生成 → 校验 → 格式化 → 参考。","保存项目角色配置。","后续模板只绑定项目角色配置,不再重复绑定文件和提示词。"],checks:["至少包含一个文件角色","至少包含一个提示词角色","顺序符合业务流程"],tips:"排序决定系统读取资料和应用提示词的优先级,是生产级生成稳定性的关键。"},{title:"第七步:创建模板并绑定项目配置",goal:"定义要生成哪种文档,以及使用哪套项目角色配置。",path:"左侧菜单 → 生成编辑 → 新建模板",steps:["填写模板 ID。ID 由系统生成或保持唯一,不建议手动频繁修改。","填写模板名称,例如“施工组织设计”“技术标文件”“专项施工方案”。","填写分类、输出标题和模板说明。","选择第六步创建的项目角色配置。","保存模板。"],checks:["模板名称清晰","输出标题正确","已绑定项目角色配置"],tips:"模板负责文档入口;项目角色配置负责资料、提示词和顺序。两者分离后更容易复用。"},{title:"第八步:执行生成并查看状态",goal:"让用户明确知道生成流程进行到哪一步。",path:"左侧菜单 → 生成编辑 → 选择模板 → 点击生成",steps:["点击生成按钮后,页面会出现“执行状态”卡片。","执行状态按顺序展示:准备配置、事实抽取、章节生成、严格校验、正式排版、生成完成。","当前执行节点会高亮显示。","生成完成后,系统会用后端真实 executionStages 回填最终状态。","如果导出门禁未通过,生成完成节点会提示需要检查校验结果。"],checks:["执行状态 Card 出现","当前节点有高亮","生成完成后有执行阶段结果"],tips:"如果长时间停留在某一步,优先检查模型配置、知识库索引和文件角色绑定。"},{title:"第九步:审查结果并导出",goal:"确保文档可追溯、可校验、可交付。",path:"生成编辑 → 编辑器下方 Tabs → 导出按钮",steps:["查看“结构化事实”,确认工程名称、工期、质量目标、施工范围等是否正确。","查看“来源”,确认事实来自绑定资料。","查看“缺失项”,补齐缺失资料或调整角色配置。","查看“严格校验”,处理 error 级问题。","查看“导出门禁”,全部通过后再导出 PDF。","可以先导出 HTML 预览排版,再导出 PDF。"],checks:["无阻断错误","关键事实有来源","章节有证据","导出门禁通过"],tips:"PDF 导出会强制门禁。门禁未通过时,系统会阻止导出,避免问题文档流出。"}];function y(){let e=(0,A.Vr)();return(0,i.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,i.jsxs)(c.A,{className:"cardGlass",styles:{body:{padding:24}},children:[(0,i.jsx)(k,{level:2,className:"mb-2",children:e("guide.title")}),(0,i.jsx)(N,{className:"pageDesc mb-0",children:e("guide.description")})]}),(0,i.jsx)(r.A,{gutter:[16,16],children:v.map(e=>(0,i.jsx)(n.A,{xs:24,md:12,xl:6,children:(0,i.jsx)(c.A,{className:"h-full",title:(0,i.jsxs)("span",{className:"flex items-center gap-2",children:[e.icon,e.title]}),children:(0,i.jsx)("div",{className:"space-y-2",children:e.items.map(s=>(0,i.jsx)("div",{children:(0,i.jsx)(d.A,{color:e.color,children:s})},s))})})},e.title))}),(0,i.jsx)(c.A,{title:e("guide.fullFlow"),children:(0,i.jsx)(a.A,{direction:"vertical",items:b.map(e=>({title:e.title,description:"".concat(e.goal,"(入口:").concat(e.path,")")}))})}),(0,i.jsx)(c.A,{title:"详细步骤说明:照着做即可跑通",children:(0,i.jsx)(h.A,{mode:"left",items:b.map(e=>({dot:(0,i.jsx)(u.A,{}),children:(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsx)(k,{level:4,className:"mb-0",children:e.title}),(0,i.jsxs)(N,{children:[(0,i.jsx)(f,{strong:!0,children:"目标:"}),e.goal]}),(0,i.jsxs)(N,{children:[(0,i.jsx)(f,{strong:!0,children:"入口:"}),e.path]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(f,{strong:!0,children:"操作步骤:"}),(0,i.jsx)("ol",{className:"list-decimal pl-6 mt-2 space-y-1",children:e.steps.map(e=>(0,i.jsx)("li",{children:e},e))})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(f,{strong:!0,children:"完成检查:"}),(0,i.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:e.checks.map(e=>(0,i.jsx)(d.A,{color:"success",children:e},e))})]}),(0,i.jsxs)(N,{children:[(0,i.jsx)(f,{strong:!0,children:"提示:"}),e.tips]}),(0,i.jsx)(x.A,{})]})}))})}),(0,i.jsxs)(r.A,{gutter:[16,16],children:[(0,i.jsx)(n.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{title:e("guide.roleDesign"),children:[(0,i.jsx)(N,{children:e("guide.roleDesignDesc")}),(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)(d.A,{color:"blue",children:"file"}),(0,i.jsx)(f,{strong:!0,children:e("guide.fileRole")}),(0,i.jsx)(N,{children:e("guide.fileRoleDesc")})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(d.A,{color:"purple",children:"prompt"}),(0,i.jsx)(f,{strong:!0,children:e("guide.promptRole")}),(0,i.jsx)(N,{children:e("guide.promptRoleDesc")})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(d.A,{color:"geekblue",children:"config"}),(0,i.jsx)(f,{strong:!0,children:e("guide.projectConfig")}),(0,i.jsx)(N,{children:e("guide.projectConfigDesc")})]})]})]})}),(0,i.jsx)(n.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{title:e("guide.generationEngine"),children:[(0,i.jsx)(N,{children:e("guide.generationEngineDesc")}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)(d.A,{children:e("roles.factExtraction")}),(0,i.jsx)(d.A,{children:e("roles.chapterGeneration")}),(0,i.jsx)(d.A,{children:e("roles.validation")}),(0,i.jsx)(d.A,{children:e("roles.formatting")}),(0,i.jsx)(d.A,{children:e("documents.exportGate")})]})]})})]}),(0,i.jsx)(c.A,{title:"推荐资料清单",children:(0,i.jsxs)(r.A,{gutter:[16,16],children:[(0,i.jsx)(n.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"必备资料",children:(0,i.jsxs)("ul",{className:"list-disc pl-5",children:[(0,i.jsx)("li",{children:"项目事实文件"}),(0,i.jsx)("li",{children:"招标或编制规则"}),(0,i.jsx)("li",{children:"章节生成提示词"})]})})}),(0,i.jsx)(n.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"强烈建议",children:(0,i.jsxs)("ul",{className:"list-disc pl-5",children:[(0,i.jsx)("li",{children:"表格数据"}),(0,i.jsx)("li",{children:"图纸说明"}),(0,i.jsx)("li",{children:"规范或企业标准"})]})})}),(0,i.jsx)(n.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"导出前确认",children:(0,i.jsxs)("ul",{className:"list-disc pl-5",children:[(0,i.jsx)("li",{children:"无 error 校验"}),(0,i.jsx)("li",{children:"事实有来源"}),(0,i.jsx)("li",{children:"导出门禁通过"})]})})})]})}),(0,i.jsx)(o.A,{items:[{key:"prepare",label:e("guide.prepareTitle"),children:(0,i.jsx)(N,{children:e("guide.prepareContent")})},{key:"roles",label:e("guide.rolesTitle"),children:(0,i.jsx)(N,{children:e("guide.rolesContent")})},{key:"template",label:e("guide.templateTitle"),children:(0,i.jsx)(N,{children:e("guide.templateContent")})},{key:"generate",label:e("guide.generateTitle"),children:(0,i.jsx)(N,{children:e("guide.generateContent")})},{key:"qa",label:e("guide.qaTitle"),children:(0,i.jsx)(N,{children:e("guide.qaContent")})}]})]})}},4899:(e,s,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/guide",function(){return l(2548)}])}},e=>{e.O(0,[260,167,382,292,
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[920],{2548:(e,s,l)=>{"use strict";l.r(s),l.d(s,{default:()=>y});var i=l(5321),t=l(5292),c=l(8787),r=l(2256),n=l(8770),d=l(1702),a=l(9730),h=l(3399),x=l(9884),o=l(3241),j=l(1330),p=l(8579),g=l(6926),m=l(7851),u=l(4742),A=l(3014);let{Paragraph:N,Title:k,Text:f}=t.A,v=[{icon:(0,i.jsx)(j.A,{}),title:"准备阶段",color:"blue",items:["配置模型","上传知识库资料","创建提示词"]},{icon:(0,i.jsx)(p.A,{}),title:"编排阶段",color:"purple",items:["创建文件角色","创建提示词角色","创建项目角色配置并排序"]},{icon:(0,i.jsx)(g.A,{}),title:"生成阶段",color:"geekblue",items:["创建模板","执行生成","查看执行状态"]},{icon:(0,i.jsx)(m.A,{}),title:"交付阶段",color:"green",items:["审查事实和来源","检查导出门禁","导出正式文件"]}],b=[{title:"第一步:配置模型",goal:"让系统具备 LLM JSON 事实抽取、章节生成和校验能力。",path:"左侧菜单 → 模型配置",steps:["点击新增供应商,选择 OpenAI、DeepSeek、OpenRouter、Ollama 或其他兼容 OpenAI 协议的服务。","填写 Base URL、API Key、供应商名称并保存。","添加模型名称,建议至少准备一个用于生成和推理的模型。","把模型设置为当前启用模型。","执行健康检查,确认模型可调用。"],checks:["模型健康检查通过","至少有一个启用模型","API Key 和 Base URL 正确"],tips:"如果模型不可用,系统会回退到本地确定性抽取,但事实抽取质量会下降。"},{title:"第二步:上传知识库资料",goal:"把项目资料放入系统,让后续文件角色可以绑定。",path:"左侧菜单 → 知识库 → 文件管理 / 管理",steps:["上传招标文件、工程概况、合同条件、技术要求等项目事实资料。","上传工程量清单、劳动力计划、机械设备计划、材料计划等表格资料。","上传图纸目录、图纸说明、设计说明等图纸类资料。","上传规范、规程、企业标准、评分办法、编制要求等规则类资料。","等待索引完成,并在知识库文件列表中确认文件可见。"],checks:["文件上传成功","索引完成","文件能在文件角色绑定下拉框中看到"],tips:"表格资料最好有清晰表头;图纸资料最好附带目录或文字说明。"},{title:"第三步:创建提示词",goal:"定义每个执行阶段的模型行为。",path:"左侧菜单 → 提示词管理",steps:["创建事实抽取提示词:要求只抽取资料中明确出现的事实,返回结构化 JSON,不允许编造。","创建章节生成提示词:定义文档类型、专业语气、章节风格、引用事实和禁止事项。","创建校验提示词:检查工程名称、工期、质量目标、数字、表格引用、章节完整性。","创建格式化提示词:定义封面、目录、编号、表格、分页和正式输出样式。","保存后确认提示词能在提示词角色绑定下拉框中看到。"],checks:["事实抽取提示词已创建","章节生成提示词已创建","校验或格式化提示词已创建"],tips:"提示词越明确,生成结果越稳定。建议明确写上“没有来源的数据不要写”。"},{title:"第四步:创建文件角色",goal:"告诉系统每个文件在生成流程中的用途。",path:"左侧菜单 → 角色配置 → 新建文件角色",steps:["填写角色名称,例如“招标文件事实源”“工程量清单表格”“图纸说明文件”。","选择处理类型:规则文件、项目事实文件、表格数据、图纸文件、规范文件或参考资料。","绑定对应知识库文件。","保存角色。","按文件用途创建多个文件角色,不建议把不同用途资料混在一个角色里。"],checks:["文件角色有名称","已选择处理类型","已绑定知识库文件"],tips:"处理类型很重要:系统会根据它决定是否进行表格解析、事实抽取、规则引用或来源追踪。"},{title:"第五步:创建提示词角色",goal:"告诉系统每条提示词在哪个执行阶段使用。",path:"左侧菜单 → 角色配置 → 新建提示词角色",steps:["填写角色名称,例如“施工组织设计事实抽取”“章节生成规则”“导出前校验规则”。","选择执行类型:事实抽取、章节生成、校验、格式化或参考。","绑定对应提示词。","保存角色。","一个执行阶段可以有多个提示词角色,后续在项目角色配置中排序。"],checks:["提示词角色有名称","已选择执行类型","已绑定提示词"],tips:"角色名称可以完全自定义,但执行类型必须选对。系统依赖执行类型驱动多阶段流程。"},{title:"第六步:创建项目角色配置并排序",goal:"把文件角色和提示词角色组合成一个可复用的项目生成方案。",path:"左侧菜单 → 角色配置 → 新建项目配置",steps:["填写配置名称,例如“某项目施工组织设计配置”。","添加文件角色,并设置顺序。推荐:规则文件 → 项目事实文件 → 表格数据 → 图纸文件 → 规范文件 → 参考资料。","添加提示词角色,并设置顺序。推荐:事实抽取 → 章节生成 → 校验 → 格式化 → 参考。","保存项目角色配置。","后续模板只绑定项目角色配置,不再重复绑定文件和提示词。"],checks:["至少包含一个文件角色","至少包含一个提示词角色","顺序符合业务流程"],tips:"排序决定系统读取资料和应用提示词的优先级,是生产级生成稳定性的关键。"},{title:"第七步:创建模板并绑定项目配置",goal:"定义要生成哪种文档,以及使用哪套项目角色配置。",path:"左侧菜单 → 生成编辑 → 新建模板",steps:["填写模板 ID。ID 由系统生成或保持唯一,不建议手动频繁修改。","填写模板名称,例如“施工组织设计”“技术标文件”“专项施工方案”。","填写分类、输出标题和模板说明。","选择第六步创建的项目角色配置。","保存模板。"],checks:["模板名称清晰","输出标题正确","已绑定项目角色配置"],tips:"模板负责文档入口;项目角色配置负责资料、提示词和顺序。两者分离后更容易复用。"},{title:"第八步:执行生成并查看状态",goal:"让用户明确知道生成流程进行到哪一步。",path:"左侧菜单 → 生成编辑 → 选择模板 → 点击生成",steps:["点击生成按钮后,页面会出现“执行状态”卡片。","执行状态按顺序展示:准备配置、事实抽取、章节生成、严格校验、正式排版、生成完成。","当前执行节点会高亮显示。","生成完成后,系统会用后端真实 executionStages 回填最终状态。","如果导出门禁未通过,生成完成节点会提示需要检查校验结果。"],checks:["执行状态 Card 出现","当前节点有高亮","生成完成后有执行阶段结果"],tips:"如果长时间停留在某一步,优先检查模型配置、知识库索引和文件角色绑定。"},{title:"第九步:审查结果并导出",goal:"确保文档可追溯、可校验、可交付。",path:"生成编辑 → 编辑器下方 Tabs → 导出按钮",steps:["查看“结构化事实”,确认工程名称、工期、质量目标、施工范围等是否正确。","查看“来源”,确认事实来自绑定资料。","查看“缺失项”,补齐缺失资料或调整角色配置。","查看“严格校验”,处理 error 级问题。","查看“导出门禁”,全部通过后再导出 PDF。","可以先导出 HTML 预览排版,再导出 PDF。"],checks:["无阻断错误","关键事实有来源","章节有证据","导出门禁通过"],tips:"PDF 导出会强制门禁。门禁未通过时,系统会阻止导出,避免问题文档流出。"}];function y(){let e=(0,A.Vr)();return(0,i.jsxs)("div",{className:"space-y-6 animateFadeIn",children:[(0,i.jsxs)(c.A,{className:"cardGlass",styles:{body:{padding:24}},children:[(0,i.jsx)(k,{level:2,className:"mb-2",children:e("guide.title")}),(0,i.jsx)(N,{className:"pageDesc mb-0",children:e("guide.description")})]}),(0,i.jsx)(r.A,{gutter:[16,16],children:v.map(e=>(0,i.jsx)(n.A,{xs:24,md:12,xl:6,children:(0,i.jsx)(c.A,{className:"h-full",title:(0,i.jsxs)("span",{className:"flex items-center gap-2",children:[e.icon,e.title]}),children:(0,i.jsx)("div",{className:"space-y-2",children:e.items.map(s=>(0,i.jsx)("div",{children:(0,i.jsx)(d.A,{color:e.color,children:s})},s))})})},e.title))}),(0,i.jsx)(c.A,{title:e("guide.fullFlow"),children:(0,i.jsx)(a.A,{direction:"vertical",items:b.map(e=>({title:e.title,description:"".concat(e.goal,"(入口:").concat(e.path,")")}))})}),(0,i.jsx)(c.A,{title:"详细步骤说明:照着做即可跑通",children:(0,i.jsx)(h.A,{mode:"left",items:b.map(e=>({dot:(0,i.jsx)(u.A,{}),children:(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsx)(k,{level:4,className:"mb-0",children:e.title}),(0,i.jsxs)(N,{children:[(0,i.jsx)(f,{strong:!0,children:"目标:"}),e.goal]}),(0,i.jsxs)(N,{children:[(0,i.jsx)(f,{strong:!0,children:"入口:"}),e.path]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(f,{strong:!0,children:"操作步骤:"}),(0,i.jsx)("ol",{className:"list-decimal pl-6 mt-2 space-y-1",children:e.steps.map(e=>(0,i.jsx)("li",{children:e},e))})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(f,{strong:!0,children:"完成检查:"}),(0,i.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:e.checks.map(e=>(0,i.jsx)(d.A,{color:"success",children:e},e))})]}),(0,i.jsxs)(N,{children:[(0,i.jsx)(f,{strong:!0,children:"提示:"}),e.tips]}),(0,i.jsx)(x.A,{})]})}))})}),(0,i.jsxs)(r.A,{gutter:[16,16],children:[(0,i.jsx)(n.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{title:e("guide.roleDesign"),children:[(0,i.jsx)(N,{children:e("guide.roleDesignDesc")}),(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)(d.A,{color:"blue",children:"file"}),(0,i.jsx)(f,{strong:!0,children:e("guide.fileRole")}),(0,i.jsx)(N,{children:e("guide.fileRoleDesc")})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(d.A,{color:"purple",children:"prompt"}),(0,i.jsx)(f,{strong:!0,children:e("guide.promptRole")}),(0,i.jsx)(N,{children:e("guide.promptRoleDesc")})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)(d.A,{color:"geekblue",children:"config"}),(0,i.jsx)(f,{strong:!0,children:e("guide.projectConfig")}),(0,i.jsx)(N,{children:e("guide.projectConfigDesc")})]})]})]})}),(0,i.jsx)(n.A,{xs:24,lg:12,children:(0,i.jsxs)(c.A,{title:e("guide.generationEngine"),children:[(0,i.jsx)(N,{children:e("guide.generationEngineDesc")}),(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsx)(d.A,{children:e("roles.factExtraction")}),(0,i.jsx)(d.A,{children:e("roles.chapterGeneration")}),(0,i.jsx)(d.A,{children:e("roles.validation")}),(0,i.jsx)(d.A,{children:e("roles.formatting")}),(0,i.jsx)(d.A,{children:e("documents.exportGate")})]})]})})]}),(0,i.jsx)(c.A,{title:"推荐资料清单",children:(0,i.jsxs)(r.A,{gutter:[16,16],children:[(0,i.jsx)(n.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"必备资料",children:(0,i.jsxs)("ul",{className:"list-disc pl-5",children:[(0,i.jsx)("li",{children:"项目事实文件"}),(0,i.jsx)("li",{children:"招标或编制规则"}),(0,i.jsx)("li",{children:"章节生成提示词"})]})})}),(0,i.jsx)(n.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"强烈建议",children:(0,i.jsxs)("ul",{className:"list-disc pl-5",children:[(0,i.jsx)("li",{children:"表格数据"}),(0,i.jsx)("li",{children:"图纸说明"}),(0,i.jsx)("li",{children:"规范或企业标准"})]})})}),(0,i.jsx)(n.A,{xs:24,md:8,children:(0,i.jsx)(c.A,{size:"small",title:"导出前确认",children:(0,i.jsxs)("ul",{className:"list-disc pl-5",children:[(0,i.jsx)("li",{children:"无 error 校验"}),(0,i.jsx)("li",{children:"事实有来源"}),(0,i.jsx)("li",{children:"导出门禁通过"})]})})})]})}),(0,i.jsx)(o.A,{items:[{key:"prepare",label:e("guide.prepareTitle"),children:(0,i.jsx)(N,{children:e("guide.prepareContent")})},{key:"roles",label:e("guide.rolesTitle"),children:(0,i.jsx)(N,{children:e("guide.rolesContent")})},{key:"template",label:e("guide.templateTitle"),children:(0,i.jsx)(N,{children:e("guide.templateContent")})},{key:"generate",label:e("guide.generateTitle"),children:(0,i.jsx)(N,{children:e("guide.generateContent")})},{key:"qa",label:e("guide.qaTitle"),children:(0,i.jsx)(N,{children:e("guide.qaContent")})}]})]})}},4899:(e,s,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/guide",function(){return l(2548)}])}},e=>{e.O(0,[260,167,382,292,730,804,636,593,792],()=>e(e.s=4899)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[309],{4569:e=>{e.exports={featureLabel:"style_featureLabel__XFSTX",featureValue:"style_featureValue__I_wMP",filterInput:"style_filterInput__4_Elu",filterSelect:"style_filterSelect__vUBJ9",statusPanel:"style_statusPanel__9arTu",statusPanelHeader:"style_statusPanelHeader__nKv1I",statusEmpty:"style_statusEmpty__8LWzH",statusList:"style_statusList__FpNgC",statusItem:"style_statusItem__uzO80",statusHeader:"style_statusHeader__o9q_b",statusDesc:"style_statusDesc__XiWFa",statusPath:"style_statusPath__Udxvv",statusMeta:"style_statusMeta__XukHt",searchResultList:"style_searchResultList__cVKZg",searchResultItem:"style_searchResultItem__boj6D",searchResultHeader:"style_searchResultHeader__meVdJ",searchContent:"style_searchContent__XbUVk",pdfPreviewStrip:"style_pdfPreviewStrip__94_eG",drawingPreview:"style_drawingPreview__lkk_L"}},5551:(e,t,n)=>{"use strict";function a(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024)),n=e/Math.pow(1024,t);return"".concat(n.toFixed(+(0!==t))," ").concat(["B","KB","MB","GB","TB"][t])}function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";if(!e||e<=0)return"en-US"===t?"Never":"从未";let n=Math.floor(Math.floor((Date.now()-e)/1e3)/60),a=Math.floor(n/60),i=Math.floor(a/24);return i>30?new Date(e).toLocaleDateString(t):"en-US"===t?i>0?"".concat(i,"d ago"):a>0?"".concat(a,"h ago"):n>0?"".concat(n,"m ago"):"Just now":i>0?"".concat(i," 天前"):a>0?"".concat(a," 小时前"):n>0?"".concat(n," 分钟前"):"刚刚"}n.d(t,{Jm:()=>o,fw:()=>i,z3:()=>a});let r={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},l={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function o(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(t=("en-US"===n?l:r)[e])?t:e}},5819:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>E});var a=n(5321),i=n(7109),r=n(1873),l=n.n(r),o=n(3220),s=n.n(o),c=n(6109),d=n(5292),u=n(6506),p=n(3442),h=n(1702),m=n(9137),y=n(9400),f=n(8787),g=n(6985),x=n(3657),j=n(4253),w=n(2700),S=n(5114),b=n(8569),v=n(4668),C=n(6578),k=n(5551),A=n(4569),_=n.n(A);let{Paragraph:P}=d.A;function T(e){if(!e)return{};try{return JSON.parse(e)}catch(e){return{}}}function N(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e).slice(0,30):[]}function R(e,t){let n=t.trim()?[t.trim(),...t.split(/[\s,,。;;::、]+/u)].filter(Boolean).sort((e,t)=>t.length-e.length):[];if(0===n.length)return e;let i=RegExp("(".concat(n.map(e=>e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")).join("|"),")"),"giu");return e.split(i).map((e,t)=>n.some(t=>t.toLowerCase()===e.toLowerCase())?(0,a.jsx)("mark",{children:e},t):e)}function O(e,t,n){return null==t||""===t||Array.isArray(t)&&0===t.length?null:(0,a.jsx)(u.A.Item,{label:e,children:Array.isArray(t)?(0,a.jsx)(p.A,{wrap:!0,children:t.map(e=>(0,a.jsx)(h.A,{className:"cursor-pointer",onClick:()=>null==n?void 0:n(String(e)),children:String(e)},String(e)))}):String(t)})}function I(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"value";return e.map((e,n)=>({key:"".concat(t,"-").concat(n),name:e}))}function E(){var e,t,n,r,o,d,A,E,J,z;let L=(0,c.useRouter)(),D="string"==typeof L.query.relativePath?L.query.relativePath:"",[U,M]=(0,i.useState)(),[H,F]=(0,i.useState)(!1),[B,K]=(0,i.useState)(!1),[V,X]=(0,i.useState)(""),[W,q]=(0,i.useState)([]);(0,i.useEffect)(()=>{D&&(F(!0),(0,C.xC)(D).then(M).finally(()=>F(!1)))},[D]);let $=(0,i.useMemo)(()=>(function(e){let t=T(null==e?void 0:e.file.metadataJson);return"object"==typeof t.extraction&&t.extraction?t.extraction:t})(U),[U]),G=N($.layerNames);(0,i.useEffect)(()=>{q(G)},[null==U?void 0:U.file.relativePath,G.join("|")]);let Z=V.trim().toLowerCase(),Q=(0,i.useMemo)(()=>{var e;return U&&Z?U.chunks.filter(e=>{let t=T(e.metadataJson);return[e.content,e.sectionTitle,t.rowRange,t.chunkKind,t.parentId,JSON.stringify(t)].some(e=>String(null!=e?e:"").toLowerCase().includes(Z))}):null!=(e=null==U?void 0:U.chunks)?e:[]},[U,Z]),Y=(0,i.useMemo)(()=>{var e;return U&&Z?U.parents.filter(e=>[e.content,e.sectionTitle,e.parentId,e.metadataJson].some(e=>String(null!=e?e:"").toLowerCase().includes(Z))):null!=(e=null==U?void 0:U.parents)?e:[]},[U,Z]),ee=async()=>{if(D){K(!0);try{let e=await (0,C.HC)(D);e.detail&&M(e.detail),m.Ay.success("文件索引已重建")}finally{K(!1)}}},et=async e=>{e&&(await navigator.clipboard.writeText(e),m.Ay.success("已复制"))},en=async e=>{D&&(await (0,C.tn)(D,e),m.Ay.success("file"===e?"已请求打开文件":"已请求打开目录"))},ea=[{key:"table",label:"表格",children:(0,a.jsxs)(p.A,{direction:"vertical",className:"w-full",children:[(0,a.jsxs)(u.A,{size:"small",column:2,bordered:!0,children:[O("Sheet",N($.sheetNames),X),O("表头",N($.columnNames),X),O("行数",$.rowCount),O("列数",$.columnCount),O("公式数",$.formulaCount),O("合并单元格",$.mergeCount)]}),(0,a.jsx)(y.A,{size:"small",pagination:!1,rowKey:"key",dataSource:I(N($.columnNames),"column"),columns:[{title:"列名",dataIndex:"name",render:e=>(0,a.jsx)(h.A,{className:"cursor-pointer",onClick:()=>X(String(e)),children:String(e)})}]}),(0,a.jsx)(y.A,{size:"small",pagination:!1,rowKey:"key",dataSource:(null!=(A=null==U?void 0:U.chunks)?A:[]).map(e=>T(e.metadataJson).rowRange).filter(e=>"string"==typeof e).map((e,t)=>({key:"row-".concat(t),name:e})),columns:[{title:"行范围",dataIndex:"name",render:e=>(0,a.jsxs)(h.A,{color:"gold",className:"cursor-pointer",onClick:()=>X(String(e)),children:["行 ",String(e)]})}]}),(0,a.jsx)(y.A,{size:"small",rowKey:"key",dataSource:(null!=(E=null==U?void 0:U.chunks)?E:[]).flatMap(e=>e.content.split(/\r?\n/u)).map(e=>e.trim()).filter(e=>e.includes("|")).slice(0,80).map((e,t)=>({key:"grid-".concat(t),cells:e.split("|").map(e=>e.trim()).filter(Boolean)})),pagination:{pageSize:10},columns:[{title:"表格网格预览",dataIndex:"cells",render:e=>(0,a.jsx)(p.A,{wrap:!0,children:e.map((e,t)=>(0,a.jsx)(h.A,{children:e},"".concat(e,"-").concat(t)))})}]})]})},{key:"drawing",label:"图纸",children:(0,a.jsxs)(p.A,{direction:"vertical",className:"w-full",children:[(0,a.jsxs)(u.A,{size:"small",column:2,bordered:!0,children:[O("图层",N($.layerNames),X),O("块/符号",N($.blockNames),X),O("实体类型",N($.entityTypes),X),O("产品/零件",N($.productNames),X),O("材料",N($.materialNames),X),O("实体名称",N($.entityNames),X)]}),G.length>0?(0,a.jsxs)(f.A,{size:"small",title:"图层开关 / 图纸预览",children:[(0,a.jsx)(g.A.Group,{value:W,options:G.map(e=>({label:e,value:e})),onChange:e=>q(e.map(String))}),(0,a.jsx)("div",{className:_().drawingPreview,children:W.map(e=>(0,a.jsx)(h.A,{color:"blue",children:e},e))})]}):null,(0,a.jsx)(y.A,{size:"small",pagination:!1,rowKey:"key",dataSource:[...I(G,"layer").map(e=>({...e,type:"图层"})),...I(N($.entityTypes),"entity").map(e=>({...e,type:"实体类型"})),...I(N($.blockNames),"block").map(e=>({...e,type:"块/符号"}))],columns:[{title:"类型",dataIndex:"type",width:120},{title:"名称",dataIndex:"name",render:e=>(0,a.jsx)(h.A,{className:"cursor-pointer",onClick:()=>X(String(e)),children:String(e)})}]})]})},{key:"data",label:"数据路径",children:(0,a.jsxs)(p.A,{direction:"vertical",className:"w-full",children:[N($.dataPaths).length>0?(0,a.jsx)(x.A,{defaultExpandAll:!0,treeData:function(e){let t=new Map;for(let n of e){let e=t;for(let t of n.replace(/\[(\d+)\]/gu,".$1").split(".").filter(Boolean))e.has(t)||e.set(t,new Map),e=e.get(t)}let n=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return[...e.entries()].map(e=>{let[a,i]=e;return{title:a,key:t?"".concat(t,".").concat(a):a,children:n(i,t?"".concat(t,".").concat(a):a)}})};return n(t)}(N($.dataPaths)),onSelect:e=>{var t;return X(String(null!=(t=e[0])?t:""))}}):(0,a.jsx)(j.A,{description:"暂无数据路径"}),(0,a.jsx)(y.A,{size:"small",rowKey:"key",dataSource:(null!=(J=null==U?void 0:U.chunks)?J:[]).flatMap(e=>e.content.split(/\r?\n/u)).map(e=>e.trim()).filter(e=>/^[\w.[\]-]+\s*[:=]/u.test(e)).slice(0,200).map((e,t)=>{var n,a,i,r;let l=/^([^:=]+)\s*[:=]\s*(.*)$/u.exec(e);return{key:"data-".concat(t),path:null!=(i=null==l||null==(n=l[1])?void 0:n.trim())?i:e,value:null!=(r=null==l||null==(a=l[2])?void 0:a.trim())?r:""}}),pagination:{pageSize:20},columns:[{title:"Path",dataIndex:"path",width:260,render:e=>(0,a.jsx)(h.A,{className:"cursor-pointer",onClick:()=>X(String(e)),children:String(e)})},{title:"Value",dataIndex:"value",render:e=>(0,a.jsx)("span",{className:"break-all",children:String(e)})}]})]})},{key:"ocr",label:"OCR/PDF",children:(0,a.jsxs)(p.A,{direction:"vertical",className:"w-full",children:[(0,a.jsxs)(u.A,{size:"small",column:2,bordered:!0,children:[O("OCR 建议",$.ocrRecommended),O("OCR 原因",$.ocrReason),O("OCR 引擎",$.ocrProvider),O("OCR 语言",$.ocrLanguages),O("OCR 文本长度",$.ocrTextLength),O("PDF 页面 OCR 支持",$.pdfPageOcrSupported),O("PDF OCR 页数",$.ocrPageCount),O("PDF OCR 页数上限",$.pdfOcrPageLimit),O("PDF 渲染器",$.pdfRenderer)]}),(null==U?void 0:U.file.format)==="pdf"?(0,a.jsx)("div",{className:_().pdfPreviewStrip,children:Array.from({length:Math.min(Number(null!=(e=$.ocrPageCount)?e:1)||1,6)},(e,t)=>(0,a.jsx)(l(),{width:220,height:320,src:"/api/kb/files/preview-pdf-page?relativePath=".concat(encodeURIComponent(U.file.relativePath),"&page=").concat(t+1),alt:"PDF 第 ".concat(t+1," 页"),unoptimized:!0},t))}):null,(0,a.jsx)(y.A,{size:"small",rowKey:"key",dataSource:(null!=(z=null==U?void 0:U.chunks)?z:[]).map(e=>e.content).join("\n\n").split(/PDF OCR 第\s*(\d+)\s*页[::]/u).slice(1).reduce((e,t,n,a)=>{var i,r,l;return n%2==0&&e.push({key:"page-".concat(t),page:t,text:null!=(l=null==(r=a[n+1])||null==(i=r.split(/PDF OCR 第\s*\d+\s*页[::]/u)[0])?void 0:i.trim())?l:""}),e},[]),pagination:{pageSize:10},columns:[{title:"页码",dataIndex:"page",width:90},{title:"OCR 文本",dataIndex:"text",render:e=>(0,a.jsx)(P,{ellipsis:{rows:4,expandable:!0,symbol:"展开"},children:String(e)})}]})]})}],ei=[{title:"#",dataIndex:"chunkIndex",width:70,render:e=>String(e)},{title:"类型",width:110,render:(e,t)=>{var n;return(0,a.jsx)(h.A,{children:String(null!=(n=T(t.metadataJson).chunkKind)?n:t.category)})}},{title:"章节/范围",width:220,render:(e,t)=>{let n=T(t.metadataJson),i="string"==typeof n.rowRange?n.rowRange:void 0;return(0,a.jsxs)(p.A,{wrap:!0,children:[t.sectionTitle?(0,a.jsx)(h.A,{color:"cyan",children:t.sectionTitle}):null,i?(0,a.jsxs)(h.A,{color:"gold",children:["行 ",i]}):null]})}},{title:"Token",dataIndex:"tokenCount",width:90},{title:"内容",render:(e,t)=>(0,a.jsx)(P,{ellipsis:{rows:3,expandable:!0,symbol:"展开"},className:_().searchContent,children:R(t.content,V)})}],er=[{title:"Parent",dataIndex:"parentId",width:260,render:e=>(0,a.jsx)("span",{className:"break-all",children:e})},{title:"切片数",dataIndex:"chunkCount",width:90},{title:"章节",dataIndex:"sectionTitle",width:220},{title:"内容",render:(e,t)=>(0,a.jsx)(P,{ellipsis:{rows:3,expandable:!0,symbol:"展开"},className:_().searchContent,children:R(t.content,V)})}];return H?(0,a.jsx)(w.A,{}):U?(0,a.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(s(),{href:"/knowledge/files",children:"返回文件列表"}),(0,a.jsxs)("div",{className:_().searchResultHeader,children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"pageTitle",children:"文件详情"}),(0,a.jsx)("p",{className:"pageDesc",children:"查看解析结果、图纸/表格/数据结构化字段、parent chunk 和 child chunk。"})]}),(0,a.jsxs)(p.A,{children:[(0,a.jsx)(S.Ay,{onClick:()=>{et(null==U?void 0:U.absolutePath)},children:"复制原文件路径"}),(0,a.jsx)(S.Ay,{onClick:()=>{et(null==U?void 0:U.directory)},children:"复制所在目录"}),(0,a.jsx)(S.Ay,{onClick:()=>{en("file")},children:"打开文件"}),(0,a.jsx)(S.Ay,{onClick:()=>{en("directory")},children:"打开目录"}),"pdf"===U.file.format?(0,a.jsx)(S.Ay,{loading:B,onClick:()=>{ee()},children:"重新 OCR"}):null,(0,a.jsx)(S.Ay,{type:"primary",loading:B,onClick:()=>{ee()},children:"重建该文件索引"})]})]})]}),(0,a.jsx)(f.A,{size:"small",title:"基础信息",children:(0,a.jsxs)(u.A,{size:"small",column:2,bordered:!0,children:[(0,a.jsx)(u.A.Item,{label:"路径",children:U.file.relativePath}),(0,a.jsx)(u.A.Item,{label:"原文件",children:null!=(t=U.absolutePath)?t:"-"}),(0,a.jsx)(u.A.Item,{label:"所在目录",children:null!=(n=U.directory)?n:"-"}),(0,a.jsxs)(u.A.Item,{label:"分类",children:[(0,a.jsx)(h.A,{children:(0,k.Jm)(U.file.category)})," ",(0,a.jsx)(h.A,{children:U.file.format})]}),(0,a.jsx)(u.A.Item,{label:"大小",children:(0,k.z3)(U.file.fileSize)}),(0,a.jsx)(u.A.Item,{label:"切片数",children:U.file.chunkCount}),(0,a.jsx)(u.A.Item,{label:"状态",children:U.file.status}),(0,a.jsx)(u.A.Item,{label:"解析模式",children:String(null!=(r=$.extractionMode)?r:"-")}),(0,a.jsx)(u.A.Item,{label:"覆盖范围",children:String(null!=(o=$.contentCoverage)?o:"-")}),(0,a.jsx)(u.A.Item,{label:"正文长度",children:String(null!=(d=$.textLength)?d:"-")})]})}),(0,a.jsx)(f.A,{size:"small",title:"结构化信息",children:(0,a.jsx)(b.A,{items:ea})}),(0,a.jsx)(f.A,{size:"small",title:"详情筛选",children:(0,a.jsxs)(p.A,{direction:"vertical",className:"w-full",children:[(0,a.jsx)(v.A,{allowClear:!0,value:V,onChange:e=>X(e.target.value),placeholder:"筛选 rowRange、图层、实体、data path、section、chunk 内容"}),V?(0,a.jsxs)(p.A,{wrap:!0,children:[(0,a.jsxs)(h.A,{color:"blue",children:["Parent 命中 ",Y.length]}),(0,a.jsxs)(h.A,{color:"green",children:["Child 命中 ",Q.length]}),(0,a.jsxs)(h.A,{color:"purple",children:["筛选词 ",V]})]}):null]})}),(0,a.jsx)(f.A,{size:"small",title:"Parent Chunks (".concat(Y.length,"/").concat(U.parents.length,")"),children:(0,a.jsx)(y.A,{rowKey:"id",columns:er,dataSource:Y,pagination:{pageSize:10},size:"small"})}),(0,a.jsx)(f.A,{size:"small",title:"Child Chunks (".concat(Q.length,"/").concat(U.chunks.length,")"),children:(0,a.jsx)(y.A,{rowKey:"id",columns:ei,dataSource:Q,pagination:{pageSize:20},size:"small"})})]}):(0,a.jsx)(j.A,{description:"请选择文件"})}},6578:(e,t,n)=>{"use strict";async function a(e,t){let n=await fetch(e,t);if(!n.ok){let e=await n.text(),t=e||"HTTP ".concat(n.status);try{let n=JSON.parse(e);t=n.error||n.message||t}catch(e){}throw Error(t)}return n.json()}async function i(e){let t=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return a("/api/kb/stats".concat(t))}async function r(e){var t,n;let i=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&i.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&i.set("category",e.category),(null==e?void 0:e.page)&&i.set("page",String(null!=(t=e.page)?t:1)),(null==e?void 0:e.limit)&&i.set("limit",String(null!=(n=e.limit)?n:50)),a("/api/kb/files?".concat(i))}async function l(e,t){let n=new URLSearchParams({relativePath:e});return t&&n.set("projectRoot",t),a("/api/kb/files/detail?".concat(n))}async function o(e,t){return a("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function s(e,t,n){return a("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:t,projectRoot:n})})}async function c(e){return new Promise((t,n)=>{let a=new FileReader;a.onload=()=>{let e=a.result,n=e.indexOf(",");t(n>=0?e.slice(n+1):e)},a.onerror=n,a.readAsDataURL(e)})}async function d(e,t,n){return a("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:await Promise.all(e.map(async e=>({fileName:e.name,fileData:await c(e),relativePath:e.webkitRelativePath||void 0}))),projectRoot:t,uploadId:n})})}async function u(e){return a("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function p(e){let t=new URLSearchParams({limit:"50"});return e&&t.set("projectRoot",e),a("/api/kb/operations?".concat(t))}async function h(e){let t=new URLSearchParams;return e&&t.set("projectRoot",e),a("/api/kb/operations?".concat(t),{method:"DELETE"})}async function m(e,t){return a("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function y(e,t){return a("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:e,projectRoot:t})})}async function f(e){return a("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({all:!0,projectRoot:e})})}async function g(e){return a("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function x(){return a("/api/kb/features")}async function j(e,t){var n,i,r,l,o;let s=new URLSearchParams({q:e});return(null==t?void 0:t.projectRoot)&&s.set("projectRoot",t.projectRoot),(null==t?void 0:t.category)&&s.set("category",t.category),(null==t?void 0:t.limit)&&s.set("limit",String(null!=(o=t.limit)?o:20)),(null==t||null==(n=t.weights)?void 0:n.keyword)!=null&&s.set("keywordWeight",String(t.weights.keyword)),(null==t||null==(i=t.weights)?void 0:i.vector)!=null&&s.set("vectorWeight",String(t.weights.vector)),(null==t||null==(r=t.weights)?void 0:r.rewrite)!=null&&s.set("rewriteWeight",String(t.weights.rewrite)),(null==t||null==(l=t.weights)?void 0:l.hybridBonus)!=null&&s.set("hybridBonus",String(t.weights.hybridBonus)),a("/api/kb/search?".concat(s))}async function w(){return a("/api/prompt")}async function S(e){return a("/api/documents/roles".concat(e?"?type=".concat(e):""))}async function b(e){return a("/api/documents/roles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function v(e,t){return a("/api/documents/roles?type=".concat(e,"&id=").concat(encodeURIComponent(t)),{method:"DELETE"})}async function C(e){return a("/api/documents/roles?mode=config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function k(e){return a("/api/documents/roles?mode=config&id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function A(){return a("/api/documents/templates")}async function _(e){return a("/api/documents/templates",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function P(e){return a("/api/documents/templates?templateId=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function T(e){return a("/api/documents/templates",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateId:e})})}async function N(e){return a("/api/documents/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function R(e){return a("/api/documents/chapter/regenerate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function O(){return a("/api/documents/drafts")}async function I(e,t){return a("/api/documents/drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({draft:e,id:t})})}async function E(e){let t=await fetch("/api/documents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await t.text());return t.blob()}async function J(){return a("/api/config/providers")}async function z(e,t){return a("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...t})})}async function L(e){return a("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function D(){return a("/api/config/models")}async function U(e){return a("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function M(){return a("/api/config/embedding")}async function H(e){return a("/api/config/embedding",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function F(){return a("/api/config/embedding/healthCheck",{method:"POST"})}async function B(e){return a("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function K(){return a("/api/system/stats")}async function V(e,t){let n=t?"?type=".concat(e,"&search=").concat(encodeURIComponent(t)):"?type=".concat(e);return a("/api/context".concat(n))}async function X(e){return a("/api/context?type=".concat(e,"&stats=1"))}async function W(e){return a("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function q(e){return a("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function $(e){return a("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function G(e,t){return a("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...t})})}async function Z(e){return a("/api/config/providers/".concat(encodeURIComponent(e)))}n.d(t,{Af:()=>I,Bh:()=>Z,Dl:()=>A,E:()=>q,FC:()=>K,FV:()=>v,H1:()=>g,H7:()=>h,HC:()=>o,HT:()=>r,II:()=>M,NR:()=>C,OX:()=>N,PH:()=>W,QT:()=>u,Qx:()=>p,R1:()=>R,SJ:()=>y,UE:()=>E,VW:()=>x,W2:()=>j,X8:()=>f,Z3:()=>J,_m:()=>z,aP:()=>U,bV:()=>T,bZ:()=>B,c1:()=>d,dd:()=>H,dg:()=>b,dw:()=>k,dx:()=>w,h0:()=>P,h1:()=>L,hc:()=>i,hn:()=>V,l2:()=>_,lv:()=>S,p:()=>X,q7:()=>O,tn:()=>s,u6:()=>F,xC:()=>l,xq:()=>m,xw:()=>$,zo:()=>G,zr:()=>D})},7690:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge/file-detail",function(){return n(5819)}])}},e=>{e.O(0,[260,167,382,201,668,227,740,174,446,400,292,969,517,636,593,792],()=>e(e.s=7690)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[309],{4569:e=>{e.exports={featureLabel:"style_featureLabel__XFSTX",featureValue:"style_featureValue__I_wMP",filterInput:"style_filterInput__4_Elu",filterSelect:"style_filterSelect__vUBJ9",statusPanel:"style_statusPanel__9arTu",statusPanelHeader:"style_statusPanelHeader__nKv1I",statusEmpty:"style_statusEmpty__8LWzH",statusList:"style_statusList__FpNgC",statusItem:"style_statusItem__uzO80",statusHeader:"style_statusHeader__o9q_b",statusDesc:"style_statusDesc__XiWFa",statusPath:"style_statusPath__Udxvv",statusMeta:"style_statusMeta__XukHt",searchResultList:"style_searchResultList__cVKZg",searchResultItem:"style_searchResultItem__boj6D",searchResultHeader:"style_searchResultHeader__meVdJ",searchContent:"style_searchContent__XbUVk",pdfPreviewStrip:"style_pdfPreviewStrip__94_eG",drawingPreview:"style_drawingPreview__lkk_L"}},5551:(e,t,n)=>{"use strict";function a(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024)),n=e/Math.pow(1024,t);return"".concat(n.toFixed(+(0!==t))," ").concat(["B","KB","MB","GB","TB"][t])}function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";if(!e||e<=0)return"en-US"===t?"Never":"从未";let n=Math.floor(Math.floor((Date.now()-e)/1e3)/60),a=Math.floor(n/60),i=Math.floor(a/24);return i>30?new Date(e).toLocaleDateString(t):"en-US"===t?i>0?"".concat(i,"d ago"):a>0?"".concat(a,"h ago"):n>0?"".concat(n,"m ago"):"Just now":i>0?"".concat(i," 天前"):a>0?"".concat(a," 小时前"):n>0?"".concat(n," 分钟前"):"刚刚"}n.d(t,{Jm:()=>l,fw:()=>i,z3:()=>a});let r={document:"文档",spreadsheet:"表格",image:"图片",cad:"图纸",code:"代码",data:"数据",web:"网页",diagram:"图表",archive:"压缩包",other:"其他"},o={document:"Document",spreadsheet:"Spreadsheet",image:"Image",cad:"CAD",code:"Code",data:"Data",web:"Web",diagram:"Diagram",archive:"Archive",other:"Other"};function l(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"zh-CN";return null!=(t=("en-US"===n?o:r)[e])?t:e}},5819:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>E});var a=n(5321),i=n(7109),r=n(1873),o=n.n(r),l=n(3220),s=n.n(l),c=n(6109),d=n(5292),u=n(6506),p=n(3442),h=n(1702),m=n(9137),y=n(9400),f=n(8787),g=n(6985),x=n(3657),j=n(4253),w=n(2700),S=n(5114),b=n(8569),C=n(4668),v=n(6578),k=n(5551),A=n(4569),P=n.n(A);let{Paragraph:_}=d.A;function T(e){if(!e)return{};try{return JSON.parse(e)}catch(e){return{}}}function N(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e).slice(0,30):[]}function R(e,t){let n=t.trim()?[t.trim(),...t.split(/[\s,,。;;::、]+/u)].filter(Boolean).sort((e,t)=>t.length-e.length):[];if(0===n.length)return e;let i=RegExp("(".concat(n.map(e=>e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&")).join("|"),")"),"giu");return e.split(i).map((e,t)=>n.some(t=>t.toLowerCase()===e.toLowerCase())?(0,a.jsx)("mark",{children:e},t):e)}function O(e,t,n){return null==t||""===t||Array.isArray(t)&&0===t.length?null:(0,a.jsx)(u.A.Item,{label:e,children:Array.isArray(t)?(0,a.jsx)(p.A,{wrap:!0,children:t.map(e=>(0,a.jsx)(h.A,{className:"cursor-pointer",onClick:()=>null==n?void 0:n(String(e)),children:String(e)},String(e)))}):String(t)})}function I(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"value";return e.map((e,n)=>({key:"".concat(t,"-").concat(n),name:e}))}function E(){var e,t,n,r,l,d,A,E,J,L;let z=(0,c.useRouter)(),D="string"==typeof z.query.relativePath?z.query.relativePath:"",[U,M]=(0,i.useState)(),[H,F]=(0,i.useState)(!1),[B,K]=(0,i.useState)(!1),[V,X]=(0,i.useState)(""),[W,q]=(0,i.useState)([]);(0,i.useEffect)(()=>{D&&(F(!0),(0,v.xC)(D).then(M).finally(()=>F(!1)))},[D]);let $=(0,i.useMemo)(()=>(function(e){let t=T(null==e?void 0:e.file.metadataJson);return"object"==typeof t.extraction&&t.extraction?t.extraction:t})(U),[U]),G=N($.layerNames);(0,i.useEffect)(()=>{q(G)},[null==U?void 0:U.file.relativePath,G.join("|")]);let Z=V.trim().toLowerCase(),Q=(0,i.useMemo)(()=>{var e;return U&&Z?U.chunks.filter(e=>{let t=T(e.metadataJson);return[e.content,e.sectionTitle,t.rowRange,t.chunkKind,t.parentId,JSON.stringify(t)].some(e=>String(null!=e?e:"").toLowerCase().includes(Z))}):null!=(e=null==U?void 0:U.chunks)?e:[]},[U,Z]),Y=(0,i.useMemo)(()=>{var e;return U&&Z?U.parents.filter(e=>[e.content,e.sectionTitle,e.parentId,e.metadataJson].some(e=>String(null!=e?e:"").toLowerCase().includes(Z))):null!=(e=null==U?void 0:U.parents)?e:[]},[U,Z]),ee=async()=>{if(D){K(!0);try{let e=await (0,v.HC)(D);e.detail&&M(e.detail),m.Ay.success("文件索引已重建")}finally{K(!1)}}},et=async e=>{e&&(await navigator.clipboard.writeText(e),m.Ay.success("已复制"))},en=async e=>{D&&(await (0,v.tn)(D,e),m.Ay.success("file"===e?"已请求打开文件":"已请求打开目录"))},ea=[{key:"table",label:"表格",children:(0,a.jsxs)(p.A,{direction:"vertical",className:"w-full",children:[(0,a.jsxs)(u.A,{size:"small",column:2,bordered:!0,children:[O("Sheet",N($.sheetNames),X),O("表头",N($.columnNames),X),O("行数",$.rowCount),O("列数",$.columnCount),O("公式数",$.formulaCount),O("合并单元格",$.mergeCount)]}),(0,a.jsx)(y.A,{size:"small",pagination:!1,rowKey:"key",dataSource:I(N($.columnNames),"column"),columns:[{title:"列名",dataIndex:"name",render:e=>(0,a.jsx)(h.A,{className:"cursor-pointer",onClick:()=>X(String(e)),children:String(e)})}]}),(0,a.jsx)(y.A,{size:"small",pagination:!1,rowKey:"key",dataSource:(null!=(A=null==U?void 0:U.chunks)?A:[]).map(e=>T(e.metadataJson).rowRange).filter(e=>"string"==typeof e).map((e,t)=>({key:"row-".concat(t),name:e})),columns:[{title:"行范围",dataIndex:"name",render:e=>(0,a.jsxs)(h.A,{color:"gold",className:"cursor-pointer",onClick:()=>X(String(e)),children:["行 ",String(e)]})}]}),(0,a.jsx)(y.A,{size:"small",rowKey:"key",dataSource:(null!=(E=null==U?void 0:U.chunks)?E:[]).flatMap(e=>e.content.split(/\r?\n/u)).map(e=>e.trim()).filter(e=>e.includes("|")).slice(0,80).map((e,t)=>({key:"grid-".concat(t),cells:e.split("|").map(e=>e.trim()).filter(Boolean)})),pagination:{pageSize:10},columns:[{title:"表格网格预览",dataIndex:"cells",render:e=>(0,a.jsx)(p.A,{wrap:!0,children:e.map((e,t)=>(0,a.jsx)(h.A,{children:e},"".concat(e,"-").concat(t)))})}]})]})},{key:"drawing",label:"图纸",children:(0,a.jsxs)(p.A,{direction:"vertical",className:"w-full",children:[(0,a.jsxs)(u.A,{size:"small",column:2,bordered:!0,children:[O("图层",N($.layerNames),X),O("块/符号",N($.blockNames),X),O("实体类型",N($.entityTypes),X),O("产品/零件",N($.productNames),X),O("材料",N($.materialNames),X),O("实体名称",N($.entityNames),X)]}),G.length>0?(0,a.jsxs)(f.A,{size:"small",title:"图层开关 / 图纸预览",children:[(0,a.jsx)(g.A.Group,{value:W,options:G.map(e=>({label:e,value:e})),onChange:e=>q(e.map(String))}),(0,a.jsx)("div",{className:P().drawingPreview,children:W.map(e=>(0,a.jsx)(h.A,{color:"blue",children:e},e))})]}):null,(0,a.jsx)(y.A,{size:"small",pagination:!1,rowKey:"key",dataSource:[...I(G,"layer").map(e=>({...e,type:"图层"})),...I(N($.entityTypes),"entity").map(e=>({...e,type:"实体类型"})),...I(N($.blockNames),"block").map(e=>({...e,type:"块/符号"}))],columns:[{title:"类型",dataIndex:"type",width:120},{title:"名称",dataIndex:"name",render:e=>(0,a.jsx)(h.A,{className:"cursor-pointer",onClick:()=>X(String(e)),children:String(e)})}]})]})},{key:"data",label:"数据路径",children:(0,a.jsxs)(p.A,{direction:"vertical",className:"w-full",children:[N($.dataPaths).length>0?(0,a.jsx)(x.A,{defaultExpandAll:!0,treeData:function(e){let t=new Map;for(let n of e){let e=t;for(let t of n.replace(/\[(\d+)\]/gu,".$1").split(".").filter(Boolean))e.has(t)||e.set(t,new Map),e=e.get(t)}let n=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return[...e.entries()].map(e=>{let[a,i]=e;return{title:a,key:t?"".concat(t,".").concat(a):a,children:n(i,t?"".concat(t,".").concat(a):a)}})};return n(t)}(N($.dataPaths)),onSelect:e=>{var t;return X(String(null!=(t=e[0])?t:""))}}):(0,a.jsx)(j.A,{description:"暂无数据路径"}),(0,a.jsx)(y.A,{size:"small",rowKey:"key",dataSource:(null!=(J=null==U?void 0:U.chunks)?J:[]).flatMap(e=>e.content.split(/\r?\n/u)).map(e=>e.trim()).filter(e=>/^[\w.[\]-]+\s*[:=]/u.test(e)).slice(0,200).map((e,t)=>{var n,a,i,r;let o=/^([^:=]+)\s*[:=]\s*(.*)$/u.exec(e);return{key:"data-".concat(t),path:null!=(i=null==o||null==(n=o[1])?void 0:n.trim())?i:e,value:null!=(r=null==o||null==(a=o[2])?void 0:a.trim())?r:""}}),pagination:{pageSize:20},columns:[{title:"Path",dataIndex:"path",width:260,render:e=>(0,a.jsx)(h.A,{className:"cursor-pointer",onClick:()=>X(String(e)),children:String(e)})},{title:"Value",dataIndex:"value",render:e=>(0,a.jsx)("span",{className:"break-all",children:String(e)})}]})]})},{key:"ocr",label:"OCR/PDF",children:(0,a.jsxs)(p.A,{direction:"vertical",className:"w-full",children:[(0,a.jsxs)(u.A,{size:"small",column:2,bordered:!0,children:[O("OCR 建议",$.ocrRecommended),O("OCR 原因",$.ocrReason),O("OCR 引擎",$.ocrProvider),O("OCR 语言",$.ocrLanguages),O("OCR 文本长度",$.ocrTextLength),O("PDF 页面 OCR 支持",$.pdfPageOcrSupported),O("PDF OCR 页数",$.ocrPageCount),O("PDF OCR 页数上限",$.pdfOcrPageLimit),O("PDF 渲染器",$.pdfRenderer)]}),(null==U?void 0:U.file.format)==="pdf"?(0,a.jsx)("div",{className:P().pdfPreviewStrip,children:Array.from({length:Math.min(Number(null!=(e=$.ocrPageCount)?e:1)||1,6)},(e,t)=>(0,a.jsx)(o(),{width:220,height:320,src:"/api/kb/files/preview-pdf-page?relativePath=".concat(encodeURIComponent(U.file.relativePath),"&page=").concat(t+1),alt:"PDF 第 ".concat(t+1," 页"),unoptimized:!0},t))}):null,(0,a.jsx)(y.A,{size:"small",rowKey:"key",dataSource:(null!=(L=null==U?void 0:U.chunks)?L:[]).map(e=>e.content).join("\n\n").split(/PDF OCR 第\s*(\d+)\s*页[::]/u).slice(1).reduce((e,t,n,a)=>{var i,r,o;return n%2==0&&e.push({key:"page-".concat(t),page:t,text:null!=(o=null==(r=a[n+1])||null==(i=r.split(/PDF OCR 第\s*\d+\s*页[::]/u)[0])?void 0:i.trim())?o:""}),e},[]),pagination:{pageSize:10},columns:[{title:"页码",dataIndex:"page",width:90},{title:"OCR 文本",dataIndex:"text",render:e=>(0,a.jsx)(_,{ellipsis:{rows:4,expandable:!0,symbol:"展开"},children:String(e)})}]})]})}],ei=[{title:"#",dataIndex:"chunkIndex",width:70,render:e=>String(e)},{title:"类型",width:110,render:(e,t)=>{var n;return(0,a.jsx)(h.A,{children:String(null!=(n=T(t.metadataJson).chunkKind)?n:t.category)})}},{title:"章节/范围",width:220,render:(e,t)=>{let n=T(t.metadataJson),i="string"==typeof n.rowRange?n.rowRange:void 0;return(0,a.jsxs)(p.A,{wrap:!0,children:[t.sectionTitle?(0,a.jsx)(h.A,{color:"cyan",children:t.sectionTitle}):null,i?(0,a.jsxs)(h.A,{color:"gold",children:["行 ",i]}):null]})}},{title:"Token",dataIndex:"tokenCount",width:90},{title:"内容",render:(e,t)=>(0,a.jsx)(_,{ellipsis:{rows:3,expandable:!0,symbol:"展开"},className:P().searchContent,children:R(t.content,V)})}],er=[{title:"Parent",dataIndex:"parentId",width:260,render:e=>(0,a.jsx)("span",{className:"break-all",children:e})},{title:"切片数",dataIndex:"chunkCount",width:90},{title:"章节",dataIndex:"sectionTitle",width:220},{title:"内容",render:(e,t)=>(0,a.jsx)(_,{ellipsis:{rows:3,expandable:!0,symbol:"展开"},className:P().searchContent,children:R(t.content,V)})}];return H?(0,a.jsx)(w.A,{}):U?(0,a.jsxs)("div",{className:"space-y-5 animateFadeIn",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(s(),{href:"/knowledge/files",children:"返回文件列表"}),(0,a.jsxs)("div",{className:P().searchResultHeader,children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h1",{className:"pageTitle",children:"文件详情"}),(0,a.jsx)("p",{className:"pageDesc",children:"查看解析结果、图纸/表格/数据结构化字段、parent chunk 和 child chunk。"})]}),(0,a.jsxs)(p.A,{children:[(0,a.jsx)(S.Ay,{onClick:()=>{et(null==U?void 0:U.absolutePath)},children:"复制原文件路径"}),(0,a.jsx)(S.Ay,{onClick:()=>{et(null==U?void 0:U.directory)},children:"复制所在目录"}),(0,a.jsx)(S.Ay,{onClick:()=>{en("file")},children:"打开文件"}),(0,a.jsx)(S.Ay,{onClick:()=>{en("directory")},children:"打开目录"}),"pdf"===U.file.format?(0,a.jsx)(S.Ay,{loading:B,onClick:()=>{ee()},children:"重新 OCR"}):null,(0,a.jsx)(S.Ay,{type:"primary",loading:B,onClick:()=>{ee()},children:"重建该文件索引"})]})]})]}),(0,a.jsx)(f.A,{size:"small",title:"基础信息",children:(0,a.jsxs)(u.A,{size:"small",column:2,bordered:!0,children:[(0,a.jsx)(u.A.Item,{label:"路径",children:U.file.relativePath}),(0,a.jsx)(u.A.Item,{label:"原文件",children:null!=(t=U.absolutePath)?t:"-"}),(0,a.jsx)(u.A.Item,{label:"所在目录",children:null!=(n=U.directory)?n:"-"}),(0,a.jsxs)(u.A.Item,{label:"分类",children:[(0,a.jsx)(h.A,{children:(0,k.Jm)(U.file.category)})," ",(0,a.jsx)(h.A,{children:U.file.format})]}),(0,a.jsx)(u.A.Item,{label:"大小",children:(0,k.z3)(U.file.fileSize)}),(0,a.jsx)(u.A.Item,{label:"切片数",children:U.file.chunkCount}),(0,a.jsx)(u.A.Item,{label:"状态",children:U.file.status}),(0,a.jsx)(u.A.Item,{label:"解析模式",children:String(null!=(r=$.extractionMode)?r:"-")}),(0,a.jsx)(u.A.Item,{label:"覆盖范围",children:String(null!=(l=$.contentCoverage)?l:"-")}),(0,a.jsx)(u.A.Item,{label:"正文长度",children:String(null!=(d=$.textLength)?d:"-")})]})}),(0,a.jsx)(f.A,{size:"small",title:"结构化信息",children:(0,a.jsx)(b.A,{items:ea})}),(0,a.jsx)(f.A,{size:"small",title:"详情筛选",children:(0,a.jsxs)(p.A,{direction:"vertical",className:"w-full",children:[(0,a.jsx)(C.A,{allowClear:!0,value:V,onChange:e=>X(e.target.value),placeholder:"筛选 rowRange、图层、实体、data path、section、chunk 内容"}),V?(0,a.jsxs)(p.A,{wrap:!0,children:[(0,a.jsxs)(h.A,{color:"blue",children:["Parent 命中 ",Y.length]}),(0,a.jsxs)(h.A,{color:"green",children:["Child 命中 ",Q.length]}),(0,a.jsxs)(h.A,{color:"purple",children:["筛选词 ",V]})]}):null]})}),(0,a.jsx)(f.A,{size:"small",title:"Parent Chunks (".concat(Y.length,"/").concat(U.parents.length,")"),children:(0,a.jsx)(y.A,{rowKey:"id",columns:er,dataSource:Y,pagination:{pageSize:10},size:"small"})}),(0,a.jsx)(f.A,{size:"small",title:"Child Chunks (".concat(Q.length,"/").concat(U.chunks.length,")"),children:(0,a.jsx)(y.A,{rowKey:"id",columns:ei,dataSource:Q,pagination:{pageSize:20},size:"small"})})]}):(0,a.jsx)(j.A,{description:"请选择文件"})}},6578:(e,t,n)=>{"use strict";async function a(e,t){let n=await fetch(e,t);if(!n.ok){let e=await n.text(),t=e||"HTTP ".concat(n.status);try{let n=JSON.parse(e);t=n.error||n.message||t}catch(e){}throw Error(t)}return n.json()}async function i(e){let t=e?"?projectRoot=".concat(encodeURIComponent(e)):"";return a("/api/kb/stats".concat(t))}async function r(e){var t,n;let i=new URLSearchParams;return(null==e?void 0:e.projectRoot)&&i.set("projectRoot",e.projectRoot),(null==e?void 0:e.category)&&i.set("category",e.category),(null==e?void 0:e.page)&&i.set("page",String(null!=(t=e.page)?t:1)),(null==e?void 0:e.limit)&&i.set("limit",String(null!=(n=e.limit)?n:50)),a("/api/kb/files?".concat(i))}async function o(e,t){let n=new URLSearchParams({relativePath:e});return t&&n.set("projectRoot",t),a("/api/kb/files/detail?".concat(n))}async function l(e,t){return a("/api/kb/files/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function s(e,t,n){return a("/api/kb/files/open",{method:"POST",body:JSON.stringify({relativePath:e,target:t,projectRoot:n})})}async function c(e){return new Promise((t,n)=>{let a=new FileReader;a.onload=()=>{let e=a.result,n=e.indexOf(",");t(n>=0?e.slice(n+1):e)},a.onerror=n,a.readAsDataURL(e)})}async function d(e,t,n){return a("/api/kb/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({files:await Promise.all(e.map(async e=>({fileName:e.name,fileData:await c(e),relativePath:e.webkitRelativePath||void 0}))),projectRoot:t,uploadId:n})})}async function u(e){return a("/api/kb/upload/progress?id=".concat(encodeURIComponent(e)))}async function p(e){let t=new URLSearchParams({limit:"50"});return e&&t.set("projectRoot",e),a("/api/kb/operations?".concat(t))}async function h(e){let t=new URLSearchParams;return e&&t.set("projectRoot",e),a("/api/kb/operations?".concat(t),{method:"DELETE"})}async function m(e,t){return a("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePath:e,projectRoot:t})})}async function y(e,t){return a("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({relativePaths:e,projectRoot:t})})}async function f(e){return a("/api/kb/files",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({all:!0,projectRoot:e})})}async function g(e){return a("/api/kb/reindex",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectRoot:e})})}async function x(){return a("/api/kb/features")}async function j(e,t){var n,i,r,o,l;let s=new URLSearchParams({q:e});return(null==t?void 0:t.projectRoot)&&s.set("projectRoot",t.projectRoot),(null==t?void 0:t.category)&&s.set("category",t.category),(null==t?void 0:t.limit)&&s.set("limit",String(null!=(l=t.limit)?l:20)),(null==t||null==(n=t.weights)?void 0:n.keyword)!=null&&s.set("keywordWeight",String(t.weights.keyword)),(null==t||null==(i=t.weights)?void 0:i.vector)!=null&&s.set("vectorWeight",String(t.weights.vector)),(null==t||null==(r=t.weights)?void 0:r.rewrite)!=null&&s.set("rewriteWeight",String(t.weights.rewrite)),(null==t||null==(o=t.weights)?void 0:o.hybridBonus)!=null&&s.set("hybridBonus",String(t.weights.hybridBonus)),a("/api/kb/search?".concat(s))}async function w(){return a("/api/prompt")}async function S(e){return a("/api/documents/roles".concat(e?"?type=".concat(e):""))}async function b(e){return a("/api/documents/roles",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function C(e,t){return a("/api/documents/roles?type=".concat(e,"&id=").concat(encodeURIComponent(t)),{method:"DELETE"})}async function v(e){return a("/api/documents/roles?mode=config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function k(e){return a("/api/documents/roles?mode=config&id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function A(){return a("/api/documents/specs")}async function P(e){return a("/api/documents/specs",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function _(e){return a("/api/documents/specs?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function T(){return a("/api/documents/templates")}async function N(e){return a("/api/documents/templates",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function R(e){return a("/api/documents/templates?templateId=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function O(e){return a("/api/documents/templates",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({templateId:e})})}async function I(e){return a("/api/documents/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function E(e){return a("/api/documents/chapter/regenerate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function J(){return a("/api/documents/drafts")}async function L(e,t){return a("/api/documents/drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({draft:e,id:t})})}async function z(e){let t=await fetch("/api/documents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(await t.text());return t.blob()}async function D(){return a("/api/config/providers")}async function U(e,t){return a("/api/config/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,...t})})}async function M(e){return a("/api/config/providers/".concat(encodeURIComponent(e)),{method:"DELETE"})}async function H(){return a("/api/config/models")}async function F(e){return a("/api/config/models",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function B(){return a("/api/config/embedding")}async function K(e){return a("/api/config/embedding",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function V(){return a("/api/config/embedding/healthCheck",{method:"POST"})}async function X(e){return a("/api/config/healthCheck",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:e})})}async function W(){return a("/api/system/stats")}async function q(e,t){let n=t?"?type=".concat(e,"&search=").concat(encodeURIComponent(t)):"?type=".concat(e);return a("/api/context".concat(n))}async function $(e){return a("/api/context?type=".concat(e,"&stats=1"))}async function G(e){return a("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"compress",type:e})})}async function Z(e){return a("/api/context",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clear",type:e})})}async function Q(e){return a("/api/context?id=".concat(encodeURIComponent(e)),{method:"DELETE"})}async function Y(e,t){return a("/api/context",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,...t})})}async function ee(e){return a("/api/config/providers/".concat(encodeURIComponent(e)))}n.d(t,{Af:()=>L,Bh:()=>ee,Dl:()=>T,E:()=>Z,EK:()=>P,ER:()=>_,FC:()=>W,FV:()=>C,H1:()=>g,H7:()=>h,HC:()=>l,HT:()=>r,II:()=>B,NR:()=>v,OX:()=>I,PH:()=>G,QT:()=>u,Qx:()=>p,R1:()=>E,SJ:()=>y,UE:()=>z,VW:()=>x,W2:()=>j,X8:()=>f,Z3:()=>D,_m:()=>U,aP:()=>F,bV:()=>O,bZ:()=>X,c1:()=>d,dd:()=>K,dg:()=>b,dw:()=>k,dx:()=>w,h0:()=>R,h1:()=>M,hc:()=>i,hn:()=>q,l2:()=>N,lv:()=>S,mx:()=>A,p:()=>$,q7:()=>J,tn:()=>s,u6:()=>V,xC:()=>o,xq:()=>m,xw:()=>Q,zo:()=>Y,zr:()=>H})},7690:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/knowledge/file-detail",function(){return n(5819)}])}},e=>{e.O(0,[260,167,382,201,668,227,740,174,446,400,292,969,517,636,593,792],()=>e(e.s=7690)),_N_E=e.O()}]);
|