PageSourceSearch

https://nickz.ai/assets/js/index-CTuShpsz.js

js nickz.ai collected 2026-10-05 14:20:20 UTC 40,450 bytes, 1 lines download raw bytes

1import{r as e,j as s}from"./vendor-react-DejgYtBM.js";import{M as t,Y as a,f as l,k as r,i,B as d,s as c,t as n,m as o,l as x,E as m,I as h,b as g,z as p,A as j,y as u,g as y,h as b}from"./vendor-semi-D8d7bTtM.js";import{u as N,A as f,s as v,a4 as w}from"./index-BeIIFw6E.js";import{a7 as _,aA as z,h as k,ae as F,R as S,T as C,ah as I,a4 as M,aO as A,$ as T,C as P,aj as R,bc as $,X as L,bd as q,I as Q,aB as E}from"./vendor-icons-EJvJ5X-w.js";import{V as O}from"./vendor-charts-CKochBGt.js";import"./vendor-motion-Chfy_MiU.js";const{Title:B,Text:W}=l,D=({defaultSelectedModel:l=null,hideTopMargin:j=!1,embedded:u=!1})=>{const{t:y}=N(),b={width:96,height:96},[$,L]=e.useState(!1),[q,Q]=e.useState(!1),[E,D]=e.useState([]),[U,Y]=e.useState(l||null),[G,H]=e.useState(null),[K,V]=e.useState(null),[X,J]=e.useState("stream"),[Z,ee]=e.useState(!1),se=e.useCallback(async()=>{Q(!0);try{const e=await f.get("/api/model/list");if(e.data.success){const s=e.data.data||[];D(s),s.length>0&&!U&&!l&&Y(s[0])}else v(e.data.message||y("获取模型列表失败"))}catch(e){v(y("获取模型列表失败"))}finally{Q(!1)}},[y,U,l]),te=e.useCallback(async e=>{if(e){L(!0);try{const s=await f.get(`/api/model/duration_stats?model_name=${encodeURIComponent(e)}`);s.data.success?(H(s.data.data||null),V(s.data.data_stream||null)):(v(s.data.message||y("获取数据失败")),H(null),V(null))}catch(s){v(y("获取耗时统计失败")),H(null),V(null)}finally{L(!1)}}},[y]),ae=e.useCallback(e=>{const s=e||"所有模型";t.confirm({title:y("确认清除"),content:y("确定要清除")+` ${s} `+y("的耗时统计数据吗?清除后动态超时将使用默认值,直到积累足够新数据。"),onOk:async()=>{try{const s=e?`/api/model/duration_stats?model_name=${encodeURIComponent(e)}`:"/api/model/duration_stats",t=await f.delete(s);t.data.success?(a.success(t.data.message),H(null),V(null),se()):v(t.data.message)}catch(s){v(y("清除失败"))}}})},[y,se]);e.useEffect(()=>{se()},[se]),e.useEffect(()=>{l&&E.length>0&&E.includes(l)&&Y(l)},[l,E]),e.useEffect(()=>{U&&te(U)},[U,te]),w(()=>{te(U)},3e4,{enabled:Z&&!!U,executeOnResume:!0});const le="stream"===X?K:G,re=e.useMemo(()=>{if(!le||!le.segment_details||0===le.segment_details.length)return{strategies:[],percentiles:null,cleaningInfo:null};const e=parseFloat(le.average_duration),t=le.total_requests,a=[...le.segment_details].sort((e,s)=>e.segment-s.segment),l=[];a.forEach(e=>{for(let s=0;s<e.count;s++)l.push(e.segment)});const r=[...l].sort((e,s)=>e-s),i=Math.floor(.25*r.length),d=Math.floor(.75*r.length),c=Math.floor(.999*r.length),n=r[i],o=r[d],x=r[c],m=o-n,h=Math.max(0,n-1.5*m);let g=o+3*m;g<x&&(g=x);let p=a.filter(e=>e.segment>=h&&e.segment<=g);(t-p.reduce((e,s)=>e+s.count,0))/t*100>30&&(p=a);const j=p.reduce((e,s)=>e+s.count,0),u=t-j,b=(u/t*100).toFixed(2),N=p.reduce((e,s)=>{var t;return e+((t=s.segment)/5*6+Math.max(0,6*(t/5-1)))/2*s.count},0),f=j>0?N/j:e;let v=0;const w=p.map(e=>(v+=e.count,{segment:e.segment,cumulative:v,percentage:v/j*100})),S=(e,s)=>{if(!s||0===s.length)return 0;for(let t=0;t<s.length;t++)if(s[t].percentage>=e){if(0===t)return s[0].segment*(e/s[0].percentage);const a=s[t-1],l=s[t],r=(e-a.percentage)/(l.percentage-a.percentage);return a.segment+r*(l.segment-a.segment)}return s[s.length-1].segment},C={P95:S(95,w),P98:S(98,w),P99:S(99,w),P99_5:S(99.5,w)},I=e=>{const s=w;if(!s||0===s.length)return"0.00";if(e<=s[0].segment){const t=e/s[0].segment*s[0].percentage;return Math.max(0,100-t).toFixed(2)}for(let a=0;a<s.length-1;a++){const t=s[a].segment,l=s[a+1].segment;if(e>t&&e<=l){const r=s[a].percentage,i=r+(e-t)/(l-t)*(s[a+1].percentage-r);return Math.max(0,100-i).toFixed(2)}}const t=s[s.length-1].percentage;return Math.max(0,100-t).toFixed(2)};return{strategies:[{name:"P95",label:y("P95 (95%成功)"),icon:s.jsx(_,{size:16}),color:"#f5222d",formula:"P95",description:y("激进方案,快速失败"),timeout:Math.ceil(C.P95),targetSuccessRate:95,scenario:y("高并发场景,允许5%请求超时")},{name:"P98",label:y("P98 (98%成功)"),icon:s.jsx(z,{size:16}),color:"#fa8c16",formula:"P98",description:y("平衡方案,性能与成功率兼顾"),timeout:Math.ceil(C.P98),targetSuccessRate:98,scenario:y("通用场景,适合大多数业务")},{name:"P99",label:y("P99 (99%成功)"),icon:s.jsx(k,{size:16}),color:"#1890ff",formula:"P99",description:y("推荐方案,高成功率"),timeout:Math.ceil(C.P99),targetSuccessRate:99,scenario:y("重要业务,优先保证成功率"),recommended:!0},{name:"P99.5",label:y("P99.5 (99.5%成功)"),icon:s.jsx(F,{size:16}),color:"#52c41a",formula:"P99.5",description:y("保守方案,极高成功率"),timeout:Math.ceil(C.P99_5),targetSuccessRate:99.5,scenario:y("关键业务,几乎不允许失败")}].map(e=>({...e,discardRate:I(e.timeout),successRate:(100-parseFloat(I(e.timeout))).toFixed(2)}
1)),percentiles:C,cleaningInfo:{Q1:n,Q3:o,IQR:m,lowerBound:h,upperBound:g,filteredCount:u,filteredPercentage:b,originalTotal:t,cleanedTotal:j,originalAverage:e,cleanedAverage:f}}},[le,y]);return s.jsx("div",{className:"",children:s.jsx("div",{className:`bg-transparent ${u?"":"min-h-screen"} px-2 md:px-4`,children:s.jsxs("div",{className:"max-w-7xl mx-auto",children:[s.jsxs("div",{className:"flex flex-col md:flex-row md:items-center md:justify-between gap-3 md:gap-4 mb-3 md:mb-4",children:[s.jsxs("div",{children:[s.jsx(B,{heading:2,className:"!text-foreground text-xl md:text-2xl",style:{margin:0},children:y("模型耗时分布")}),s.jsx(W,{type:"tertiary",size:14,children:y("流式请求统计首字时间(TTFT), 非流式统计总响应时间, 分开存储和计算")})]}),s.jsxs("div",{className:"flex flex-col md:flex-row gap-2 md:gap-3 w-full md:w-auto md:flex-1 md:max-w-[600px]",children:[s.jsx(r,{className:"w-full md:max-w-[400px]",placeholder:y("请选择要查看的模型"),filter:!0,showClear:!0,value:U,onChange:Y,loading:q,disabled:q||0===E.length,children:E.map(e=>s.jsx(r.Option,{value:e,children:e},e))}),s.jsxs("div",{className:"flex gap-2 md:gap-3",children:[s.jsx(i,{color:Z?"green":"grey",onClick:()=>ee(!Z),className:"cursor-pointer flex-shrink-0",size:"small",children:y(Z?"自动刷新中":"点击启用自动刷新")}),s.jsx(d,{icon:s.jsx(S,{size:16}),onClick:()=>{U&&te(U)},loading:$,size:"small",className:"flex-shrink-0",children:y("刷新")}),s.jsx(d,{icon:s.jsx(C,{size:16}),type:"danger",onClick:()=>ae(U),size:"small",className:"flex-shrink-0",children:y(U?"清除当前":"清除全部")})]})]})]}),(G||K)&&s.jsxs("div",{className:"flex items-center gap-3 mb-3 md:mb-4",children:[s.jsxs(c,{type:"button",value:X,onChange:e=>J(e.target.value),size:"small",children:[s.jsxs(n,{value:"stream",children:[y("流式 (TTFT)"),K&&s.jsx(i,{size:"small",color:"blue",style:{marginLeft:6},children:K.total_requests})]}),s.jsxs(n,{value:"nonstream",children:[y("非流式 (总耗时)"),G&&s.jsx(i,{size:"small",color:"green",style:{marginLeft:6},children:G.total_requests})]})]}),!le&&s.jsx(W,{type:"warning",size:14,children:y("当前视图无数据,请切换到另一个视图")})]}),le&&s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3 md:gap-4 mb-3 md:mb-4",children:[s.jsx(o,{className:"!rounded-2xl",shadows:"always",style:{padding:"16px"},children:s.jsxs("div",{className:"flex flex-col gap-1.5 md:gap-2",children:[s.jsx(W,{type:"secondary",className:"text-xs md:text-sm",children:y("模型名称")}),s.jsx(B,{heading:3,className:"text-base md:text-xl",style:{margin:0,color:"#1890ff"},ellipsis:{showTooltip:!0},children:le.model_name}),s.jsxs("div",{className:"flex items-center gap-1 md:gap-1.5",children:[s.jsx(I,{size:14,className:"md:w-[16px] md:h-[16px]",style:{color:"#1890ff"}}),s.jsx(W,{type:"tertiary",className:"text-xs",children:y("当前查看的模型")})]})]})}),s.jsx(o,{className:"!rounded-2xl",shadows:"always",style:{padding:"16px"},children:s.jsxs("div",{className:"flex flex-col gap-1.5 md:gap-2",children:[s.jsx(W,{type:"secondary",className:"text-xs md:text-sm",children:y("总请求数")}),s.jsx(B,{heading:3,className:"text-base md:text-xl",style:{margin:0,color:"#52c41a"},children:le.total_requests.toLocaleString()}),s.jsxs("div",{className:"flex items-center gap-1 md:gap-1.5",children:[s.jsx(M,{size:14,className:"md:w-[16px] md:h-[16px]",style:{color:"#52c41a"}}),s.jsx(W,{type:"tertiary",className:"text-xs",children:y("该模型累计请求次数")})]})]})}),s.jsx(o,{className:"!rounded-2xl",shadows:"always",style:{padding:"16px"},children:s.jsxs("div",{className:"flex flex-col gap-1.5 md:gap-2",children:[s.jsx(W,{type:"secondary",className:"text-xs md:text-sm",children:y("平均耗时")}),s.jsx(B,{heading:3,className:"text-base md:text-xl",style:{margin:0,color:"#fa8c16"},children:`${le.average_duration}s`}),s.jsxs("div",{className:"flex items-center gap-1 md:gap-1.5",children:[s.jsx(A,{size:14,className:"md:w-[16px] md:h-[16px]",style:{color:"#fa8c16"}}),s.jsx(W,{type:"tertiary",className:"text-xs",children:y("该模型平均响应时间")})]})]})})]}),(()=>{if(!le||!re.strategies||0===re.strategies.length)return null;const{strategies:e,cleaningInfo:t}=re;return s.jsxs(s.Fragment,{children:[t&&t.filteredCount>0&&s.jsx(o,{className:"!rounded-2xl mb-3 md:mb-4",shadows:"always",children:s.jsxs("div",{className:"p-3 bg-yellow-50 dark:bg-yellow-900/20 rounded-lg border-l-4 border-yellow-500",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[s.jsx(F,{size:16,style:{color:"#fa8c16"}}),s.jsx(W,{strong:!0,style:{color:"#fa8c16"},children:y("数据清洗信息")})]}),s.jsxs("div",{className:"space-y-1",children:[s.jsxs(W,{size:14,type:"secondary",className:"block",children:["🔍 ",y("检测到")," ",s.jsx("strong",{children:t.filteredCount.toLocaleStr
1ing()})," ",y("个异常请求"),"(",s.jsxs("strong",{children:[t.filteredPercentage,"%"]}),")"]}),s.jsxs(W,{size:14,type:"secondary",className:"block",children:["📏 ",y("异常边界"),"(IQR方法): ",s.jsxs("strong",{children:[t.lowerBound.toFixed(1),"s - ",t.upperBound.toFixed(1),"s"]})]}),s.jsxs(W,{size:14,type:"secondary",className:"block",children:["📊 Q1 = ",t.Q1.toFixed(1),"s, Q3 = ",t.Q3.toFixed(1),"s, IQR = ",t.IQR.toFixed(1),"s"]}),s.jsxs(W,{size:14,type:"secondary",className:"block",children:["⏱️ ",y("原始平均耗时"),": ",s.jsxs("strong",{children:[t.originalAverage,"s"]})]}),s.jsxs(W,{size:14,type:"secondary",className:"block",children:["✅ ",y("清洗后平均耗时"),": ",s.jsxs("strong",{style:{color:t.cleanedAverage<t.originalAverage?"#52c41a":"#fa8c16"},children:[t.cleanedAverage.toFixed(2),"s"]}),t.cleanedAverage<t.originalAverage&&s.jsxs("span",{style:{color:"#52c41a",marginLeft:"4px"},children:["↓ ",(100*(1-t.cleanedAverage/t.originalAverage)).toFixed(1),"%"]})]}),s.jsxs(W,{size:14,type:"tertiary",className:"block",style:{fontSize:"11px"},children:["💡 ",y("过滤掉")," ",t.filteredCount," ",y("个异常值")," (",">",t.upperBound.toFixed(0),"s)"]})]})]})}),s.jsxs(o,{className:"!rounded-2xl mb-3 md:mb-4",shadows:"always",title:s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(A,{size:18}),s.jsxs("span",{children:[y("智能超时推荐")," (",y("基于百分位数法"),")"]}),s.jsx(p,{content:y("使用IQR方法过滤异常值后,基于百分位数计算推荐超时时间"),children:s.jsx(R,{size:16,style:{color:"#1890ff",cursor:"help"}})})]}),children:[s.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-3 md:gap-4",children:e.map((e,t)=>s.jsx(o,{className:"!rounded-xl hover:shadow-lg transition-shadow",bodyStyle:{padding:"16px"},style:{borderLeft:`4px solid ${e.color}`,backgroundColor:e.recommended?"hsl(var(--primary) / 0.12)":"hsl(var(--foreground) / 0.02)",position:"relative"},children:s.jsxs("div",{className:"flex flex-col gap-2",children:[e.recommended&&s.jsx("div",{className:"absolute -top-2 -right-2",children:s.jsxs(i,{color:"blue",size:"small",style:{fontWeight:"bold",padding:"4px 8px",borderRadius:"12px",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"},children:[s.jsx(T,{size:12,style:{marginRight:"4px",verticalAlign:"middle"}}),y("推荐")]})}),s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{style:{color:e.color},children:e.icon}),s.jsx(W,{strong:!0,style:{color:e.color},children:e.label||e.name})]}),s.jsx(p,{content:y("复制配置"),children:s.jsx(d,{size:"small",type:"tertiary",icon:s.jsx(P,{size:16}),onClick:()=>{const s=`RELAY_TIMEOUT=${e.timeout}\nSTREAMING_TIMEOUT=${Math.ceil(1.5*e.timeout)}`;navigator.clipboard.writeText(s).then(()=>{a.success(y("配置已复制到剪贴板"))})}})})]}),s.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg p-3 text-center",children:[s.jsx(W,{type:"secondary",size:14,children:y("推荐超时")}),s.jsxs(B,{heading:2,style:{margin:"4px 0",color:e.color,fontSize:"28px"},children:[e.timeout,"s"]})]}),s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsx(W,{type:"secondary",size:14,children:y("计算公式")}),s.jsx(i,{color:"grey",size:"small",style:{fontFamily:"monospace",fontSize:"11px",padding:"4px 8px"},children:e.formula})]}),s.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[s.jsxs("div",{className:"bg-green-50 dark:bg-green-900/20 rounded p-2",children:[s.jsx(W,{type:"secondary",size:14,children:y("预计成功率")}),s.jsxs("div",{className:"text-green-600 dark:text-green-400 font-bold text-lg",children:[e.successRate,"%"]})]}),s.jsxs("div",{className:"bg-red-50 dark:bg-red-900/20 rounded p-2",children:[s.jsx(W,{type:"secondary",size:14,children:y("预计丢弃率")}),s.jsxs("div",{className:"text-red-600 dark:text-red-400 font-bold text-lg",children:[e.discardRate,"%"]})]})]}),s.jsxs("div",{className:"pt-2 border-t border-gray-200 dark:border-gray-700",children:[s.jsx(W,{type:"tertiary",size:14,className:"block mb-1",children:e.description}),s.jsxs(W,{type:"quaternary",size:14,className:"block",style:{fontSize:"11px"}
1,children:["💡 ",e.scenario]})]})]})},t))}),s.jsxs("div",{className:"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3",children:[s.jsxs("div",{className:"p-3 bg-gradient-to-r from-purple-50 to-pink-50 dark:from-purple-900/20 dark:to-pink-900/20 rounded-lg border-l-4 border-purple-500",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[s.jsx(I,{size:16,style:{color:"#722ed1"}}),s.jsx(W,{strong:!0,style:{color:"#722ed1"},children:y("数据统计与质量")})]}),s.jsxs("div",{className:"space-y-1",children:[s.jsxs(W,{size:14,type:"secondary",className:"block",children:["📊 ",y("原始请求数"),": ",s.jsx("strong",{children:le.total_requests.toLocaleString()})]}),t&&t.filteredCount>0&&s.jsxs(s.Fragment,{children:[s.jsxs(W,{size:14,type:"secondary",className:"block",children:["✅ ",y("有效请求数"),": ",s.jsx("strong",{style:{color:"#52c41a"},children:t.cleanedTotal.toLocaleString()})]}),s.jsxs(W,{size:14,type:"secondary",className:"block",children:["❌ ",y("异常请求数"),": ",s.jsx("strong",{style:{color:"#f5222d"},children:t.filteredCount.toLocaleString()})," (",t.filteredPercentage,"%)"]})]}),s.jsxs(W,{size:14,type:"secondary",className:"block",children:["⏱️ ",y("原始平均耗时"),": ",s.jsxs("strong",{children:[le.average_duration,"s"]})]}),t&&t.filteredCount>0&&s.jsxs(W,{size:14,type:"secondary",className:"block",children:["⚡ ",y("清洗后平均耗时"),": ",s.jsxs("strong",{style:{color:"#1890ff"},children:[t.cleanedAverage.toFixed(2),"s"]}),t.cleanedAverage<t.originalAverage&&s.jsxs("span",{style:{color:"#52c41a",marginLeft:"4px"},children:["↓ ",(100*(1-t.cleanedAverage/t.originalAverage)).toFixed(1),"%"]})]}),s.jsx(W,{size:14,type:"secondary",className:"block",children:(()=>{const e=t?t.cleanedTotal:le.total_requests,a=y(e>=1e4?"高":e>=1e3?"中":"低"),l=e>=1e4?"#52c41a":e>=1e3?"#fa8c16":"#f5222d";return s.jsxs(s.Fragment,{children:["🎯 ",y("数据置信度"),": ",s.jsx("strong",{style:{color:l},children:a}),e<1e3&&s.jsx(p,{content:y("建议至少收集1000次请求后再参考推荐"),children:s.jsx(R,{size:16,style:{marginLeft:"4px",color:"#f5222d",verticalAlign:"middle"}})})]})})()}),s.jsxs(W,{size:14,type:"secondary",className:"block",children:["🏷️ ",y("模型类型"),": ",s.jsx("strong",{children:(()=>{const e=parseFloat(le.average_duration);return y(e>10?"慢速模型(图片/视频)":e<5?"快速模型(文本)":"标准模型")})()})]})]})]}),s.jsxs("div",{className:"p-3 bg-blue-50 dark:bg-blue-900/20 rounded-lg border-l-4 border-blue-500",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[s.jsx(R,{size:16,style:{color:"#1890ff"}}),s.jsx(W,{strong:!0,style:{color:"#1890ff"},children:y("使用说明")})]}),s.jsxs("div",{className:"space-y-1",children:[s.jsxs(W,{size:14,type:"secondary",className:"block",children:["💡 ",y("点击")," ",s.jsx(P,{size:12,style:{verticalAlign:"middle"}})," ",y("按钮可复制配置")]}),s.jsxs(W,{size:14,type:"secondary",className:"block",children:["⚙️ ",y("将配置粘贴到 .env 文件中")]}),s.jsxs(W,{size:14,type:"secondary",className:"block",children:["🔄 ",y("重启服务使配置生效")]}),s.jsxs(W,{size:14,type:"secondary",className:"block",children:["⭐ ",s.jsx("strong",{style:{color:"#1890ff"},children:y("蓝色背景")})," ",y("表示推荐方案")]})]})]})]})]})]})})(),s.jsx(o,{className:"!rounded-2xl",shadows:"always",title:y("耗时分布图表"),children:s.jsx(x,{spinning:$,children:U?le&&le.segment_details&&le.segment_details.length>0?s.jsx(O,{spec:(()=>{const e=le&&le.segment_details&&0!==le.segment_details.length?le.segment_details.map(e=>({segment:`${e.segment}s`,count:e.count,percentage:e.percentage})):[],s=window.innerWidth<768,t=s?300:400;return{type:"bar",data:[{id:"barData",values:e}],xField:"segment",yField:"count",color:"#5D7092",legends:{visible:!1},axes:[{orient:"bottom",type:"band",label:{style:{fontSize:s?10:12}},title:{visible:!0,text:y("耗时区间"),style:{fontSize:s?10:12,fontWeight:"bold"}}},{orient:"left",type:"linear",label:{style:{fontSize:s?10:12}},title:{visible:!0,text:y("请求数量"),style:{fontSize:s?10:12,fontWeight:"bold"}}}],tooltip:{mark:{content:[{key:()=>y("请求数"),value:e=>`${e?.count||0} ${y("次")}`},{key:()=>y("占比"),value:e=>`${e?.percentage||0}%`}]}},bar:{style:{cornerRadius:[4,4,0,0]}},height:t}})()}):s.jsx(m,{image:s.jsx(g,{style:b}),darkModeImage:s.jsx(h,{style:b}),description:y("该模型暂无耗时统计数据")}):s.jsx(m,{image:s.jsx(g,{style:b}),darkModeImage:s.jsx(h,{style:b}),description:y("请选择一个模型查看耗时统计")})})})]})})})},{Title:U,Text:Y}=l,G=()=>{const{t:a}=N(),c={shadows:"always",bordered:!1,headerLine:!0},n={width:96,height:96},h="flex items-center gap-2",[g,p]=e.useState(!1),[w,_]=e.useState([]),[z,k]=e.useState([]),[F,C]=e.useState("default"),[T,P]=e.useState(""),[R,O]=e.useState([]),[B,W]=e.useState(!1),[G,H]=e.useState(null),[K,V]=e.useState(0),[X,J]=e.useState(!1),[Z,ee]=e.useState({priority_weight:10,weight_item_weight:5,success_rate_weight:40,speed_weight:30,price_weight:15});e.useEffect(()=>{se(),te()},[]);const se=async()=>{try{const e=await f.get("/api/smart_sorting/groups"),{success:s,data:t}=e.data;if(s){const e=(t||[]).sort((e,s)=>e.localeCompare(s));_(e)}}catch(e){v(a("获取分组列表失败"))}},te=async()=>{try{const e=await f.get("/api/smart_sorting/models"),{success:s,data:t}=e.data;if(s){const e=(t||[]).sort((e,s)=>e.localeCompare(s));k(e)}}catch(e){v(a("获取模型列表失败"))}},ae=async()=>
1{if(T){p(!0);try{const e=await f.get("/api/smart_sorting/scores",{params:{group:F,model:T}}),{success:s,data:t}=e.data;s?(O(t.channel_scores||[]),V(t.fastest_speed||0),t.weights&&ee(t.weights),t.channel_scores&&0!==t.channel_scores.length||v(a("未找到该模型的排名数据,请确认渠道是否已使用该模型"))):v(a("获取排名数据失败"))}catch(e){v(e.response?.data?.message||a("获取排名数据失败"))}finally{p(!1)}}else v(a("请选择模型"))},le=[{title:a("排名"),dataIndex:"index",key:"index",width:80,render:(e,t,a)=>s.jsxs(i,{color:0===a?"red":1===a?"orange":2===a?"yellow":"blue",children:["#",a+1]})},{title:a("渠道 ID"),dataIndex:"channel_id",key:"channel_id",width:100},{title:a("渠道名称"),dataIndex:["channel","name"],key:"name",width:150},{title:a("最终得分"),dataIndex:"final_score",key:"final_score",width:120,render:e=>s.jsx(Y,{strong:!0,style:{color:"#1890ff"},children:e.toFixed(2)})},{title:a("加权平均成功率"),dataIndex:"success_rate",key:"success_rate",width:100,render:e=>s.jsxs(i,{color:e>=.9?"green":e>=.7?"orange":"red",children:[(100*e).toFixed(1),"%"]})},{title:a("输出速度"),dataIndex:"output_speed",key:"output_speed",width:120,render:e=>s.jsx(Y,{children:e>0?`${e.toFixed(2)} tokens/s`:a("暂无数据")})},{title:a("成功请求"),dataIndex:"success_requests",key:"success_requests",width:100,render:e=>s.jsx(i,{color:"green",children:e||0})},{title:a("总请求"),dataIndex:"total_requests",key:"total_requests",width:100,render:e=>s.jsx(i,{color:"blue",children:e||0})},{title:a("渠道健康"),key:"channel_health",width:200,render:(e,t)=>{const l=[];if(t.channel&&1!==t.channel.status){const e={2:a("手动禁用"),3:a("自动禁用"),4:a("已对账"),5:a("已归档")};l.push(s.jsx(i,{color:"red",children:e[t.channel.status]||a("已禁用")},"disabled"))}if(t.is_banned){const e=Math.ceil((t.ban_ttl||0)/60);l.push(s.jsxs("div",{className:"space-y-0.5",children:[s.jsx(i,{color:"red",children:a("模型封禁")}),s.jsxs("div",{className:"text-xs text-gray-500 leading-tight",style:{maxWidth:160},children:[t.ban_reason&&s.jsx("div",{className:"truncate",title:t.ban_reason,children:t.ban_reason}),t.ban_ttl>0&&s.jsxs("div",{children:[a("剩余"),": ",e>=60?`${Math.floor(e/60)}h${e%60}m`:`${e}m`]})]})]},"ban"))}return t.timeout_streak>0&&l.push(s.jsxs("div",{className:"space-y-0.5",children:[s.jsxs(i,{color:"orange",children:[a("连续超时")," x",t.timeout_streak]}),t.penalized_score>0&&s.jsxs("div",{className:"text-xs text-gray-500",children:[a("实际得分"),": ",s.jsx("span",{className:"text-orange-600 font-semibold",children:t.penalized_score.toFixed(2)})]})]},"streak")),0===l.length?s.jsx(i,{color:"green",children:a("正常")}):s.jsx("div",{className:"space-y-1",children:l})}},{title:a("数据充足"),dataIndex:"has_enough_data",key:"has_enough_data",width:100,render:e=>s.jsx(i,{color:e?"green":"orange",children:a(e?"是":"否")})},{title:a("计算详情"),key:"details",width:100,render:(e,t)=>s.jsx(d,{size:"small",onClick:()=>re(t),children:a("查看详情")})}],re=e=>{H(e),W(!0)};return s.jsxs("div",{className:"h-full px-2 bg-transparent",children:[s.jsxs("div",{className:"flex items-center justify-between mb-4",children:[s.jsxs("h2",{className:"text-2xl font-semibold text-foreground flex items-center gap-2",children:[s.jsx($,{size:24,className:"text-blue-500"}),a("智能排序")]}),s.jsx(d,{type:"tertiary",icon:s.jsx(S,{size:16}),onClick:ae,loading:g,className:"bg-blue-500 hover:bg-blue-600 text-white hover:bg-opacity-80 !rounded-full",children:a("刷新")})]}),s.jsx("div",{className:"mb-4",children:s.jsx(o,{...c,className:"shadow-sm !rounded-2xl bg-gradient-to-br from-blue-50 to-white",title:s.jsxs("div",{className:h,children:[s.jsx(L,{size:16}),a("查询条件")]}),children:s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-4 items-end",children:[s.jsxs("div",{children:[s.jsx(l.Text,{strong:!0,className:"block mb-2",children:a("分组")}),s.jsx(r,{className:"w-full",size:"large",value:F,onChange:e=>C(e),placeholder:a("请选择分组"),children:w.map(e=>s.jsx(r.Option,{value:e,children:e},e))})]}),s.jsxs("div",{className:"md:col-span-2",children:[s.jsx(l.Text,{strong:!0,className:"block mb-2",children:a("模型")}),s.jsx(r,{className:"w-full",size:"large",value:T,onChange:e=>P(e),placeholder:a("请选择模型"),filter:!0,showClear:!0,children:z.map(e=>s.jsx(r.Option,{value:e,children:e},e))})]}),s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsx(d,{theme:"solid",type:"primary",size:"large",block:!0,onClick:ae,loading:g,icon:s.jsx(L,{size:16}),className:"!rounded-lg",children:a("查询")}),s.jsx(d,{theme:"solid",type:"secondary",size:"large",block:!0,onClick:()=>{T?J(!0):v(a("请先选择模型"))},icon:s.jsx(A,{size:16}),className:"!rounded-lg",children:a("查看模型耗时")})]})]})})}),s.jsx("div",{className:"mb-4",children:s.jsx(o,{...c,className:"shadow-sm !rounded-2xl bg-gradient-to-br from-amber-50 to-white border-l-4 border-amber-400",title:s.jsxs("div",{className:h,children:[s.jsx(Q,{size:16,className:"text-amber-600"}),a("功能说明")]}),children:s.jsxs("div",{className:"flex items-start gap-3",children:[s.jsx(j,{size:"small",color:"amber",className:"flex-shrink-0 mt-1",children:s.jsx(q,{size:16})}),s.jsx(Y,{className:"text-gray-700 leading-relaxed",children:a("智能排序根据渠道的速度、成功率、权重、优先级和价格等因素综合计算得分,自动选择最优渠道处理请求。得分越高,渠道优先级越高。")})]})})}),s.jsx("div",{className:"mb-4",children:s.jsx(o,{...c,className:"shadow-sm !rounded-2xl",title:s.jsxs("div",{className:h,children:[s.jsx(M,{size:16,className:"text-green-500"}),a("渠道排名结果"),R.length>0&&s.jsxs(i,{color:"red",size:20,shape:"circle",children:[R.length," ",a("个渠道")]})]}),children:s.jsx(x,{spinning:g,children:R.length>0?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"mb-4 p-3 bg-gradient-to-r from-blue-50 to-green-50 rounded-lg",children:s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsxs("div",{className:h,children:[s.jsx(Y,{strong:!0,className:"text-gray-600",children:a("当前分组:")}),s.jsx(i,{color:"blue",size:20,children:F})]}),s.jsxs("div",{className:h,children:[s.jsx(Y,{strong:!0,className:"text-gray-600",children:a("模型")+":"}),s.jsx(i,{color:"green",size:20,children:T})]})]})}),s.jsx(u,{columns:le,dataSource:R,pagination:!1,rowKey:e=>e.channel_id,className:"rounded-lg"})]}):!g&&s.jsx("div",{className:"flex justify-center items-center py-12",children:s.jsx(m,{image:s.jsx(b,{style:n}),darkModeImage:s.jsx(y,{style:n}),title:a("暂无排名数据"),description:a("请选择分组和模型后点击查询按钮获取渠道排名")})})})})}),s.jsx(t,{title:s.jsxs("div",{className:"flex items-center gap-1 text-sm md:text-base",children:[s.jsx(E,{size:16,className:"text-blue-500 md:w-5 md:h-5"}),s.jsx("span",{className:"text-sm md:text-base",children:a("渠道评分详情")})]}),visible:B,onCancel:()=>W(!1),footer:s.jsx(d,{onClick:()=>W(!1),type:"primary",size:"small",block:!0,className:"!rounded-lg md:size-large",children:a("关闭")}
1),width:"95%",style:{maxWidth:"900px"},bodyStyle:{maxHeight:"70vh",overflowY:"auto",padding:"12px"},children:G&&s.jsxs("div",{className:"space-y-3 md:space-y-4",children:[s.jsx(o,{className:"bg-gradient-to-br from-blue-50 to-white !rounded-lg md:!rounded-xl border-l-4 border-blue-400",children:s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3",children:[s.jsxs("div",{children:[s.jsx(Y,{type:"tertiary",className:"text-xs",children:a("渠道名称")}),s.jsx("div",{className:"font-semibold text-base md:text-lg mt-1 truncate",children:G.channel?.name||"N/A"})]}),s.jsxs("div",{children:[s.jsx(Y,{type:"tertiary",className:"text-xs",children:a("渠道 ID")}),s.jsxs("div",{className:"font-semibold text-base md:text-lg mt-1",children:["#",G.channel_id]})]}),s.jsxs("div",{children:[s.jsx(Y,{type:"tertiary",className:"text-xs",children:a("最终得分")}),s.jsx("div",{className:"font-bold text-xl md:text-2xl mt-1 text-blue-600",children:G.final_score.toFixed(2)})]})]})}),s.jsx(o,{className:"bg-gradient-to-br from-green-50 to-white !rounded-lg md:!rounded-xl border-l-4 border-green-400",children:s.jsxs("div",{className:"space-y-2 md:space-y-3",children:[s.jsxs("div",{className:"flex items-center gap-1.5 md:gap-2",children:[s.jsx(j,{size:"extra-extra-small",color:"green",className:"md:!w-8 md:!h-8",children:"🧮"}),s.jsx(Y,{strong:!0,className:"text-sm md:text-lg",children:a("得分计算公式")})]}
1),s.jsx("div",{className:"bg-white p-2 md:p-4 rounded-lg border border-gray-200",children:s.jsxs("div",{className:"space-y-1.5 md:space-y-2 font-mono text-xs md:text-sm",children:[s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[s.jsxs(Y,{className:"text-gray-600 text-xs md:text-sm",children:[a("最终得分")," ="]}),s.jsx(Y,{strong:!0,className:"text-blue-600 text-base md:text-xl",children:G.final_score.toFixed(2)})]}),s.jsx("div",{className:"border-t border-gray-200 my-1 md:my-2"}),s.jsxs("div",{className:"space-y-1 pl-2 md:pl-4",children:[s.jsxs("div",{className:"flex items-start md:items-center justify-between gap-2",children:[s.jsxs(Y,{type:"tertiary",className:"text-xs flex-shrink-0",children:[a("优先级"),"×",Z.priority_weight]}),s.jsxs(Y,{className:"text-orange-500 text-xs text-right",children:[G.normalized?.priority.toFixed(2)," × ",Z.priority_weight," = ",s.jsx("strong",{children:(G.normalized?.priority*Z.priority_weight).toFixed(2)})]})]}),s.jsxs("div",{className:"flex items-start md:items-center justify-between gap-2",children:[s.jsxs(Y,{type:"tertiary",className:"text-xs flex-shrink-0",children:["+ 权重×",Z.weight_item_weight]}),s.jsxs(Y,{className:"text-green-500 text-xs text-right",children:[G.normalized?.weight.toFixed(2)," × ",Z.weight_item_weight," = ",s.jsx("strong",{children:(G.normalized?.weight*Z.weight_item_weight).toFixed(2)})]})]}),s.jsxs("div",{className:"flex items-start md:items-center justify-between gap-2",children:[s.jsxs(Y,{type:"tertiary",className:"text-xs flex-shrink-0",children:["+ 成功率×",Z.success_rate_weight]}),s.jsxs(Y,{className:"text-cyan-500 text-xs text-right",children:[(100*G.success_rate).toFixed(1),"% × ",Z.success_rate_weight," = ",s.jsx("strong",{children:(G.success_rate*Z.success_rate_weight).toFixed(2)})]})]}),s.jsxs("div",{className:"flex items-start md:items-center justify-between gap-2",children:[s.jsxs(Y,{type:"tertiary",className:"text-xs flex-shrink-0",children:["+ 速度×",Z.speed_weight]}),s.jsxs(Y,{className:"text-blue-500 text-xs text-right",children:[G.normalized?.speed.toFixed(2)," × ",Z.speed_weight," = ",s.jsx("strong",{children:(G.normalized?.speed*Z.speed_weight).toFixed(2)})]})]}),s.jsxs("div",{className:"flex items-start md:items-center justify-between gap-2",children:[s.jsxs(Y,{type:"tertiary",className:"text-xs flex-shrink-0",children:["+ 价格×",Z.price_weight]}),s.jsxs(Y,{className:"text-purple-500 text-xs text-right",children:[G.normalized?.price.toFixed(2)," × ",Z.price_weight," = ",s.jsx("strong",{children:(G.normalized?.price*Z.price_weight).toFixed(2)})]})]}),s.jsx("div",{className:"border-t border-gray-200 my-1 md:my-2"}),s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[s.jsxs(Y,{strong:!0,className:"text-xs md:text-sm",children:[a("合计"),":"]}),s.jsx(Y,{strong:!0,className:"text-blue-600 text-base md:text-xl",children:(G.normalized?.priority*Z.priority_weight+G.normalized?.weight*Z.weight_item_weight+G.success_rate*Z.success_rate_weight+G.normalized?.speed*Z.speed_weight+G.normalized?.price*Z.price_weight).toFixed(2)})]})]})]})}),s.jsx("div",{className:"bg-amber-50 p-2 md:p-3 rounded-lg",children:s.jsxs(Y,{size:14,type:"tertiary",className:"block text-xs md:text-sm leading-relaxed",children:["💡 ",a("说明:采用加权评分系统,总权重为100分。优先级"),"(",Z.priority_weight,")",a("权重"),"(",Z.weight_item_weight,")",a("成功率"),"(",Z.success_rate_weight,")",a("、速度"),"(",Z.speed_weight,")",a("价格"),"(",Z.price_weight,")",a("。各项得分范围为0-1的归一化分数,乘以对应权重后累加得到最终得分。")]})})]})}),s.jsxs("div",{className:"flex items-center gap-1.5 md:gap-2 mt-4 md:mt-6 mb-2 md:mb-3",children:[s.jsx(I,{size:16,className:"text-green-500 md:w-[18px] md:h-[18px]"}),s.jsx(U,{heading:6,className:"text-sm md:text-base",style:{margin:0},children:a("各项指标详情")})]}),s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-2 md:gap-3",children:[s.jsx(o,{className:"bg-gradient-to-br from-blue-50 to-white !rou
1nded-lg md:!rounded-xl",children:s.jsxs("div",{className:"space-y-1.5 md:space-y-2",children:[s.jsxs("div",{className:"flex items-center gap-1.5 md:gap-2",children:[s.jsx(j,{size:"extra-extra-small",color:"blue",className:"md:!w-6 md:!h-6",children:"📊"}),s.jsx(Y,{strong:!0,className:"text-xs md:text-sm",children:a("速度归一化得分")})]}),s.jsx("div",{className:"flex items-center gap-2",children:s.jsx(i,{color:"blue",size:"small",className:"md:text-base md:px-3 md:py-1",children:G.normalized?.speed.toFixed(2)})}),s.jsxs(Y,{type:"tertiary",size:14,className:"block text-xs",children:["速度: ",G.output_speed>0?s.jsxs("span",{className:"text-blue-600 font-semibold",children:[G.output_speed.toFixed(2)," tokens/s"]}):s.jsx("span",{className:"text-gray-400",children:a("暂无数据")})]}),s.jsxs(Y,{type:"tertiary",size:14,className:"text-xs",children:["范围: ",G.ranges?.speed?.min?.toFixed(2)," - ",G.ranges?.speed?.max?.toFixed(2)]})]})}),s.jsx(o,{className:"bg-gradient-to-br from-green-50 to-white !rounded-lg md:!rounded-xl",children:s.jsxs("div",{className:"space-y-1.5 md:space-y-2",children:[s.jsxs("div",{className:"flex items-center gap-1.5 md:gap-2",children:[s.jsx(j,{size:"extra-extra-small",color:"green",className:"md:!w-6 md:!h-6",children:"⚖️"}),s.jsx(Y,{strong:!0,className:"text-xs md:text-sm",children:a("权重归一化得分")})]}),s.jsx("div",{className:"flex items-center gap-2",children:s.jsx(i,{color:"green",size:"small",className:"md:text-base md:px-3 md:py-1",children:G.normalized?.weight.toFixed(2)})}),s.jsxs(Y,{type:"tertiary",size:14,className:"block text-xs",children:["权重: ",s.jsx("span",{className:"font-semibold",children:G.channel?.weight||0})]}),s.jsxs(Y,{type:"tertiary",size:14,className:"text-xs",children:["范围: ",G.ranges?.weight?.min," - ",G.ranges?.weight?.max]})]})}),s.jsx(o,{className:"bg-gradient-to-br from-orange-50 to-white !rounded-lg md:!rounded-xl",children:s.jsxs("div",{className:"space-y-1.5 md:space-y-2",children:[s.jsxs("div",{className:"flex items-center gap-1.5 md:gap-2",children:[s.jsx(j,{size:"extra-extra-small",color:"orange",className:"md:!w-6 md:!h-6",children:"🎯"}),s.jsx(Y,{strong:!0,className:"text-xs md:text-sm",children:a("优先级归一化得分")})]}),s.jsx("div",{className:"flex items-center gap-2",children:s.jsx(i,{color:"orange",size:"small",className:"md:text-base md:px-3 md:py-1",children:G.normalized?.priority.toFixed(2)})}),s.jsxs(Y,{type:"tertiary",size:14,className:"block text-xs",children:[a("优先级"),": ",s.jsx("span",{className:"font-semibold",children:G.channel?.priority||0})]}),s.jsxs(Y,{type:"tertiary",size:14,className:"text-xs",children:["范围: ",G.ranges?.priority?.min," - ",G.ranges?.priority?.max]})]})}),s.jsx(o,{className:"bg-gradient-to-br from-purple-50 to-white !rounded-lg md:!rounded-xl",children:s.jsxs("div",{className:"space-y-1.5 md:space-y-2",children:[s.jsxs("div",{className:"flex items-center gap-1.5 md:gap-2",children:[s.jsx(j,{size:"extra-extra-small",color:"purple",className:"md:!w-6 md:!h-6",children:"💰"}),s.jsx(Y,{strong:!0,className:"text-xs md:text-sm",children:a("价格归一化得分")})]}),s.jsx("div",{className:"flex items-center gap-2",children:s.jsx(i,{color:"purple",size:"small",className:"md:text-base md:px-3 md:py-1",children:G.normalized?.price.toFixed(2)})}),s.jsxs(Y,{type:"tertiary",size:14,className:"block text-xs",children:["价格: ",s.jsx("span",{className:"font-semibold",children:G.channel?.price||0})]}),s.jsxs(Y,{type:"tertiary",size:14,className:"text-xs",children:["范围: ",G.ranges?.price?.min," - ",G.ranges?.price?.max]})]})})]}),s.jsx(o,{className:"bg-gray-50 !rounded-lg md:!rounded-xl",children:s.jsxs("div",{className:"grid grid-cols-2 gap-2 md:gap-4",children:[s.jsxs("div",{children:[s.jsx(Y,{type:"tertiary",size:14,className:"block mb-1.5 md:mb-2 text-xs",children:a("成功率")}),s.jsxs(i,{color:G.success_rate>=.9?"green":G.success_rate>=.7?"orange":"red",size:"small",children:[(100*G.success_rate).toFixed(1),"%"]})]}),s.jsxs("div",{children:[s.jsx(Y,{type:"tertiary",size:14,className:"block mb-1.5 md:mb-2 text-xs",children:a("数据充足")}),s.jsx(i,{color:G.has_enough_data?"green":"orange",size:"small",children:G.has_enough_data?a("是"):a("否")})]}),s.jsxs("div",{children:[s.jsx(Y,{type:"tertiary",size:14,className:"block mb-1.5 md:mb-2 text-xs",children:a("成功请求数")}),s.jsx(i,{color:"green",size:"small",children:G.success_requests||0})]}),s.jsxs("div",{children:[s.jsx(Y,{type:"tertiary",size:14,className:"block mb-1.5 md:mb-2 text-xs",children:a("总请求数")}),s.jsx(i,{color:"blue",size:"small",children:G.total_requests||0})]})]})}),(G.is_banned||G.timeout_streak>0||G.channel&&1!==G.channel.status)&&s.jsx(o,{className:"bg-gradient-to-br from-red-50 to-white !rou
1nded-lg md:!rounded-xl border-l-4 border-red-400",children:s.jsxs("div",{className:"space-y-2 md:space-y-3",children:[s.jsx(Y,{strong:!0,className:"text-sm md:text-base",children:a("渠道健康问题")}),G.channel&&1!==G.channel.status&&s.jsxs("div",{className:"bg-white p-2 md:p-3 rounded-lg border border-red-200",children:[s.jsx(i,{color:"red",children:{2:a("手动禁用"),3:a("自动禁用"),4:a("已对账"),5:a("已归档")}[G.channel.status]||a("已禁用")}),s.jsx(Y,{type:"tertiary",size:14,className:"ml-2 text-xs",children:a("该渠道整体被禁用,不参与选择")})]}),G.is_banned&&s.jsxs("div",{className:"bg-white p-2 md:p-3 rounded-lg border border-red-200",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[s.jsx(i,{color:"red",children:a("模型封禁")}),G.ban_ttl>0&&s.jsxs(Y,{type:"tertiary",className:"text-xs",children:[a("剩余"),": ",(()=>{const e=Math.ceil(G.ban_ttl/60);return e>=60?`${Math.floor(e/60)}h${e%60}m`:`${e}m`})()]})]}),G.ban_reason&&s.jsx(Y,{className:"text-sm break-all",children:G.ban_reason})]}),G.timeout_streak>0&&s.jsxs("div",{className:"bg-white p-2 md:p-3 rounded-lg border border-orange-200",children:[s.jsx("div",{className:"flex items-center gap-2 mb-1",children:s.jsxs(i,{color:"orange",children:[a("连续超时")," x",G.timeout_streak]})}),s.jsxs("div",{className:"text-xs text-gray-600 space-y-1",children:[s.jsxs("div",{children:[a("缓存得分"),": ",s.jsx("span",{className:"font-semibold",children:G.final_score.toFixed(2)})]}),G.penalized_score>0&&s.jsxs("div",{children:[a("降权后实际得分"),": ",s.jsx("span",{className:"text-orange-600 font-semibold",children:G.penalized_score.toFixed(2)})]})]})]})]})}),s.jsxs("div",{className:"flex items-center gap-1.5 md:gap-2 mt-4 md:mt-6 mb-2 md:mb-3",children:[s.jsx(Q,{size:16,className:"text-gray-500 md:w-[18px] md:h-[18px]"}),s.jsx(U,{heading:6,className:"text-sm md:text-base",style:{margin:0},children:a("其他信息")})]}),s.jsx(o,{className:"bg-gray-50 !rounded-lg md:!rounded-xl",children:s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 md:gap-4",children:[s.jsxs("div",{children:[s.jsx(Y,{type:"tertiary",size:14,className:"block mb-1.5 md:mb-2 text-xs",children:a("渠道类型")}),s.jsx(Y,{strong:!0,className:"text-sm md:text-base",children:G.channel?.type||"N/A"})]}),s.jsxs("div",{children:[s.jsx(Y,{type:"tertiary",size:14,className:"block mb-1.5 md:mb-2 text-xs",children:a("渠道状态")}),s.jsx(i,{color:1===G.channel?.status?"green":"red",size:"small",children:1===G.channel?.status?a("启用"):a("禁用")})]}),s.jsxs("div",{className:"md:col-span-2",children:[s.jsx(Y,{type:"tertiary",size:14,className:"block mb-1.5 md:mb-2 text-xs",children:a("基础URL")}),s.jsx(Y,{className:"text-blue-600 break-all text-xs md:text-sm",children:G.channel?.base_url||"N/A"})]}),s.jsxs("div",{className:"md:col-span-2",children:[s.jsx(Y,{type:"tertiary",size:14,className:"block mb-1.5 md:mb-2 text-xs",children:a("缓存时间")}),s.jsx(Y,{className:"text-xs md:text-sm",children:new Date(1e3*G.cache_time).toLocaleString()})]})]})})]})}),s.jsx(t,{title:a("模型耗时分布")+(T?` - ${T}`:""),visible:X,onCancel:()=>J(!1),width:"90vw",style:{maxWidth:"1600px"},footer:null,bodyStyle:{padding:0,height:"calc(90vh - 100px)",overflow:"auto"},children:s.jsx(D,{defaultSelectedModel:T,hideTopMargin:!0,embedded:!0})})]})};export{G as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.