selenium_keyan/selenium_vue/frontend-vite/dist/assets/QA-D4NJAB2u.js

2 lines
3.1 KiB
JavaScript
Raw Normal View History

import{r as a,o as N,a as n,b as i,d as s,e as b,w as m,g as _,u as T,F as k,h as x,t as r}from"./index-C-Pc-2M1.js";import{a as h}from"./client-CSdq-1hH.js";const q={class:"panel",style:{"min-height":"50vh",display:"flex","flex-direction":"column",gap:"12px"}},A={style:{display:"flex",gap:"8px","align-items":"center"}},B={class:"actions",style:{"margin-left":"auto"}},C={style:{"margin-top":"8px",display:"grid","grid-template-columns":"1fr 1fr",gap:"10px"}},M=["value"],S={class:"panel",style:{flex:"1",background:"#fafafa","border-style":"dashed","border-color":"#e5e7eb",overflow:"auto"}},U={key:0,class:"hint"},D={style:{"font-weight":"600"}},F={class:"json",style:{background:"white",color:"#111827","border-color":"#e5e7eb"}},K={class:"actions",style:{"margin-top":"auto"}},j=["disabled"],E={key:0,style:{"margin-top":"10px",color:"#b91c1c"}},O={__name:"QA",setup(I){const u=a(""),y=a(5),p=a(!1),d=a(null),f=a(null),g=a([]),v=a(""),c=a([]);async function w(){var l,t;if(d.value=null,f.value=null,!u.value.trim()){d.value="请先输入问题";return}c.value.push({role:"user",content:u.value}),p.value=!0;try{const e={question:u.value,top_k:Number(y.value)||5};v.value&&(e.task_id=v.value);const{data:o}=await h.post("/qa",e);f.value=o,c.value.push({role:"assistant",content:JSON.stringify(o,null,2)}),u.value=""}catch(e){d.value=((t=(l=e==null?void 0:e.response)==null?void 0:l.data)==null?void 0:t.message)||e.message||"提问失败"}finally{p.value=!1}}async function V(){try{const{data:l}=await h.get("/tasks"),t=Array.isArray(l)?l:(l==null?void 0:l.items)||[];g.value=t.filter(e=>e&&(e.status==="completed"||e.status==="done"||e.status==="success"))}catch{}}return N(V),(l,t)=>(i(),n("div",null,[s("div",q,[s("div",A,[t[7]||(t[7]=s("div",{style:{"font-weight":"600"}},"问答",-1)),s("div",B,[s("details",null,[t[6]||(t[6]=s("summary",{class:"btn secondary"},"设置",-1)),s("div",C,[s("div",null,[t[3]||(t[3]=s("label",null,"检索条数 Top-K",-1)),m(s("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=e=>y.value=e),placeholder:"5"},null,512),[[_,y.value]])]),s("div",null,[t[5]||(t[5]=s("label",null,"选择任务来源(可选)",-1)),m(s("select",{"onUpdate:modelValue":t[1]||(t[1]=e=>v.value=e),style:{width:"100%",padding:"10px",border:"1px solid #e5e7eb","border-radius":"8px"}},[t[4]||(t[4]=s("option",{value:""},"不指定",-1)),(i(!0),n(k,null,x(g.value,e=>{var o;return i(),n("option",{key:e.id,value:e.id},r(e.id)+" - "+r(((o=e.description)==null?void 0:o.slice(0,20))||"(无描述)"),9,M)}),128))],512),[[T,v.value]])])])])])]),s("div",S,[c.value.length===0?(i(),n("div",U,"暂无对话,底部输入框可提问")):b("",!0),(i(!0),n(k,null,x(c.value,(e,o)=>(i(),n("div",{key:o,style:{"margin-bottom":"10px"}},[s("div",D,r(e.role==="user"?"我":"助手"),1),s("pre",F,r(e.content),1)]))),128))]),s("div",K,[m(s("input",{type:"text","onUpdate:modelValue":t[2]||(t[2]=e=>u.value=e),placeholder:"请输入你的问题...",style:{flex:"1"}},null,512),[[_,u.value]]),s("button",{class:"btn",disabled:p.value,onClick:w},r(p.value?"检索中...":"发送"),9,j)])]),d.value?(i(),n("div",E,"错误:"+r(d.value),1)):b("",!0)]))}};export{O as default};