st-comp 0.0.256 → 0.0.257
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/es/VarietyAiHelper.cjs +4 -4
- package/es/VarietyAiHelper.js +57 -45
- package/es/VarietySearch.cjs +1 -1
- package/es/VarietySearch.js +5 -5
- package/es/style.css +1 -1
- package/lib/bundle.js +1 -1
- package/lib/bundle.umd.cjs +107 -107
- package/lib/{index-00866046.js → index-845576f9.js} +24 -12
- package/lib/{python-a25c0b5b.js → python-9f6f8113.js} +1 -1
- package/lib/style.css +1 -1
- package/package.json +1 -1
- package/packages/VarietyAiHelper/index.vue +10 -0
- package/packages/VarietySearch/components/CompositeOrder/index.vue +3 -3
package/es/VarietyAiHelper.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";const T=require("./base-ef747d02.cjs"),
|
|
1
|
+
"use strict";const T=require("./base-ef747d02.cjs"),O=require("./el-dialog-1b185570.cjs");require("./el-overlay-ea65cb05.cjs");const z=require("./el-button-974ff9e9.cjs"),j=require("./el-input-fa18ef84.cjs"),e=require("vue"),x=require("./dayjs.min-2c20abe6.cjs"),I=require("./index-8901a38c.cjs"),q=require("./index-33f80550.cjs"),L=require("./_plugin-vue_export-helper-f246444f.cjs"),M=require("./index-6ca95c8a.cjs"),H=require("./use-form-common-props-d3ed62c6.cjs");require("./index-28e03bad.cjs");require("./index-9780a537.cjs");require("./index-bb833443.cjs");require("./index-f1c702f6.cjs");require("./vnode-b906ae6d.cjs");require("./scroll-b108dabd.cjs");require("./use-global-config-c80f33a4.cjs");require("./index-37b8d3c6.cjs");require("./index-eea0bcb3.cjs");require("./typescript-b63f8e83.cjs");require("./index-7dce9f59.cjs");require("./config-provider-2ae47cc8.cjs");const J=T.buildProps({size:{type:[Number,String],values:H.componentSizes,default:"",validator:u=>T.isNumber(u)},shape:{type:String,values:["circle","square"],default:"circle"},icon:{type:H.iconPropType},src:{type:String,default:""},alt:String,srcSet:String,fit:{type:T.definePropType(String),default:"cover"}}),R={error:u=>u instanceof Event},K=e.defineComponent({name:"ElAvatar"}),U=e.defineComponent({...K,props:J,emits:R,setup(u,{emit:y}){const h=u,i=T.useNamespace("avatar"),p=e.ref(!1),c=e.computed(()=>{const{size:a,icon:b,shape:n}=h,m=[i.b()];return T.isString(a)&&m.push(i.m(a)),b&&m.push(i.m("icon")),n&&m.push(i.m(n)),m}),_=e.computed(()=>{const{size:a}=h;return T.isNumber(a)?i.cssVarBlock({size:T.addUnit(a)||""}):void 0}),f=e.computed(()=>({objectFit:h.fit}));e.watch(()=>h.src,()=>p.value=!1);function l(a){p.value=!0,y("error",a)}return(a,b)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(c)),style:e.normalizeStyle(e.unref(_))},[(a.src||a.srcSet)&&!p.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:a.src,alt:a.alt,srcset:a.srcSet,style:e.normalizeStyle(e.unref(f)),onError:l},null,44,["src","alt","srcset"])):a.icon?(e.openBlock(),e.createBlock(e.unref(q.ElIcon),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.icon)))]),_:1})):e.renderSlot(a.$slots,"default",{key:2})],6))}});var W=T._export_sfc(U,[["__file","avatar.vue"]]);const X=T.withInstall(W);const G=async({appId:u,apiKey:y,value:h,callback:i})=>{var p;try{const c=await fetch(`https://dashscope.aliyuncs.com/api/v1/apps/${u}/completion`,{method:"POST",body:JSON.stringify({input:{prompt:h},parameters:{incremental_output:"true"},debug:{}}),headers:{Authorization:`Bearer ${y}`,"Content-Type":"application/json","X-DashScope-SSE":"enable"}});if(!c.ok){i("error",`HTTP ${c.status}: ${c.statusText}`);return}const _=c.body.getReader(),f=new TextDecoder;let l="",a=null;for(;;){const{done:b,value:n}=await _.read();if(b){l.trim()&&Q(l,i),i("finish","");break}l+=f.decode(n,{stream:!0});let m;for(;(m=l.indexOf(`
|
|
2
2
|
`))!==-1;){const k=l.substring(0,m).trim();if(l=l.substring(m+1),k.startsWith("event:")){a=k.substring(6).trim();continue}if(k.startsWith("data:")){const E=k.substring(5).trim();if(a==="error"||E&&E.startsWith("{"))try{const g=JSON.parse(E);if(g.code||g.message||a==="error"){const F=g.message||g.code||"未知错误";i("error",`百炼服务端错误: ${F}`);return}const B=(p=g==null?void 0:g.output)==null?void 0:p.text;B&&i&&i("message",B)}catch{console.debug("JSON 解析失败:",E)}a=null}}}}catch(c){console.error("流式请求失败:",c),i("error",c.message)}},Q=(u,y)=>{var p;const h=u.split(`
|
|
3
|
-
`);let i=null;for(const c of h){if(c.startsWith("event:")){i=c.substring(6).trim();continue}if(c.startsWith("data:")){const _=c.substring(5).trim();if(_&&_!=="[DONE]")try{const f=JSON.parse(_);if(i==="error"||f.code||f.message){const a=f.message||f.code||"未知错误";y("error",`百炼服务端错误: ${a}`);return}const l=(p=f==null?void 0:f.output)==null?void 0:p.text;l&&y&&y("message",l)}catch{}i=null}}};const V=u=>(e.pushScopeId("data-v-
|
|
3
|
+
`);let i=null;for(const c of h){if(c.startsWith("event:")){i=c.substring(6).trim();continue}if(c.startsWith("data:")){const _=c.substring(5).trim();if(_&&_!=="[DONE]")try{const f=JSON.parse(_);if(i==="error"||f.code||f.message){const a=f.message||f.code||"未知错误";y("error",`百炼服务端错误: ${a}`);return}const l=(p=f==null?void 0:f.output)==null?void 0:p.text;l&&y&&y("message",l)}catch{}i=null}}};const V=u=>(e.pushScopeId("data-v-485f55b8"),u=u(),e.popScopeId(),u),Z={class:"ai-dialog-body"},ee={class:"avatar"},te={class:"message-content"},se=["innerHTML"],ae={key:1,class:"message-text"},ne={class:"message-createTime"},oe=V(()=>e.createElementVNode("div",{class:"message-createTime"},"请问对本轮查询结果是否满意?",-1)),re={class:"feedback-buttons"},ie=["onClick"],le=V(()=>e.createElementVNode("span",{class:"btn-emoji"},"👍",-1)),ce=V(()=>e.createElementVNode("span",{class:"btn-text"},"满意",-1)),ue=[le,ce],de=["onClick"],me=V(()=>e.createElementVNode("span",{class:"btn-emoji"},"👎",-1)),fe=V(()=>e.createElementVNode("span",{class:"btn-text"},"不满意",-1)),pe=[me,fe],ve={key:1,class:"message-createTime"},ge={key:0,class:"message-item assistant"},he={class:"avatar"},_e=V(()=>e.createElementVNode("div",{class:"message-content"},[e.createElementVNode("div",{class:"typing-indicator"},[e.createElementVNode("span"),e.createElementVNode("span"),e.createElementVNode("span")])],-1)),ke={class:"input-area"},ye={class:"input-actions"},be=V(()=>e.createElementVNode("div",{class:"input-hint"},[e.createElementVNode("span",null,"Enter 发送 | Ctrl + Enter 换行")],-1)),Ee={class:"feedback-dialog-content"},Te=V(()=>e.createElementVNode("div",{class:"feedback-emoji"},"😟",-1)),Ve=V(()=>e.createElementVNode("p",{class:"feedback-tip"},"很抱歉没能帮到您,请告诉我们哪里需要改进:",-1)),Ne={class:"dialog-footer"},Ce={__name:"index",props:{defaultMessage:{type:String,default:`你好呀!我是你的品种池AI助手,会根据您的自然语言去进行品种的条件查询
|
|
4
4
|
|
|
5
5
|
示例:
|
|
6
|
-
帮我查A股科创板下品种转价差上证50并且总市值大于1千万, 按照总市值升序进行排序`}},emits:["callBack"],setup(u,{expose:y,emit:h}){const i=e.inject("stConfig"),p=e.reactive(I.V()),c=e.ref(!1),_=h,f=u,l=e.ref(!1),a=e.ref(!1),b=e.ref(null),n=e.ref([{role:"assistant",content:f.defaultMessage,userContent:null,showFeedback:!1,hasFeedback:!1,createTime:x.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:0,firstPackageTime:0}]),m=e.ref(""),k=e.ref(!1),E=e.ref(""),g=e.ref({}),B=
|
|
7
|
-
`+m.value.substring(d),e.nextTick(()=>{t.selectionStart=t.selectionEnd=s+1})}else
|
|
6
|
+
帮我查A股科创板下品种转价差上证50并且总市值大于1千万, 按照总市值升序进行排序`}},emits:["callBack"],setup(u,{expose:y,emit:h}){const i=e.inject("stConfig"),p=e.reactive(I.V()),c=e.ref(!1),_=h,f=u,l=e.ref(!1),a=e.ref(!1),b=e.ref(null),n=e.ref([{role:"assistant",content:f.defaultMessage,userContent:null,showFeedback:!1,hasFeedback:!1,createTime:x.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:0,firstPackageTime:0}]),m=e.ref(""),k=e.ref(!1),E=e.ref(""),g=e.ref({}),B=o=>{if(typeof o!="string")return!1;try{const t=JSON.parse(o);return t!==null&&typeof t=="object"}catch{return!1}},F=o=>{if(!B(o))return null;try{const t=JSON.parse(o),{parsedConditions:s,...d}=t;return{parsedConditions:s,webParams:d}}catch{return null}},Y=o=>{var s;if(!o)return"";let t="";return(s=o.parsedConditions)!=null&&s.length&&(t+='<div class="parsed-conditions">',o.parsedConditions.forEach(d=>{t+=`<div class="parsed-conditions-item">${d}</div>`}),t+="</div>"),t},w=async(o,t)=>{switch(o){case"satisfied":{const s=n.value[t],d={userName:p.username,userContent:s.userContent,aiContent:s.content,type:1,createTime:s.createTime,resTime:s.resTime,firstPackageTime:s.firstPackageTime,isSolved:1,logOrigin:1};await i.request.post("/alarm/deliversign/addVarietyAiHelperLog",d),M.ElMessage.success("感谢您的评价!"),n.value[t].hasFeedback=!0;break}case"open":{g.value=t,k.value=!0;break}case"unsatisfied":{const s=n.value[t],d={userName:p.username,userContent:s.userContent,userSuggestion:E.value,aiContent:s.content,type:2,resTime:s.resTime,createTime:s.createTime,firstPackageTime:s.firstPackageTime,isSolved:0,logOrigin:1};await i.request.post("/alarm/deliversign/addVarietyAiHelperLog",d),M.ElMessage.success("感谢您的反馈!我们将持续跟踪并进行优化"),k.value=!1,n.value[t].hasFeedback=!0;break}case"default":{const s=n.value[t],d={userName:p.username,userContent:s.userContent,userSuggestion:E.value,aiContent:s.content,type:null,resTime:s.resTime,createTime:s.createTime,firstPackageTime:s.firstPackageTime,isSolved:1,logOrigin:1};await i.request.post("/alarm/deliversign/addVarietyAiHelperLog",d)}}},P=async()=>{const o=m.value.trim();if(!o)return M.ElMessage.warning("请输入消息内容");if(l.value)return;n.value.push({role:"user",content:o,createTime:x.dayjs().format("YYYY-MM-DD HH:mm:ss")}),m.value="",await C(),n.value.push({role:"assistant",content:"",userContent:o,showFeedback:!1,hasFeedback:!1,createTime:x.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:0,firstPackageTime:0}),await C(),l.value=!0,a.value=!0;let t="",s=new Date().getTime();try{await G({appId:"9e54d112acfe4531bd1fc4fee8827fef",apiKey:"sk-d995eb26a4334bdeb2ccb4cbfaf51de8",value:o,callback:(S,v)=>{if(S==="error"){a.value=!1,l.value=!1,n.value.pop(),n.value.push({role:"assistant",userContent:o,content:`❌ ${v}`,showFeedback:!1,hasFeedback:!1,createTime:x.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:new Date().getTime()-s,firstPackageTime:0}),w("default",n.value.length-1),C();return}else if(S==="message"){t+=v;const r=n.value[n.value.length-1];r&&r.role==="assistant"&&(r.content=t,C()),r.firstPackageTime===0&&(r.firstPackageTime=new Date().getTime()-s)}else if(S==="finish"){a.value=!1,l.value=!1;const r=n.value[n.value.length-1];r&&r.role==="assistant"&&(r.showFeedback=!0,r.resTime=new Date().getTime()-s,w("default",n.value.length-1));try{const N=JSON.parse(t);delete N.parsedConditions,console.log(N),_("callBack",N)}catch{_("callBack",t)}}}})}catch(d){M.ElMessage.error(`AI响应异常: ${d}`),n.value.pop(),n.value.push({role:"assistant",userContent:o,content:"❌ 抱歉,AI服务响应异常,请稍后重试。",showFeedback:!0,hasFeedback:!1,createTime:x.dayjs().format("YYYY-MM-DD HH:mm:ss"),resTime:new Date().getTime()-s,firstPackageTime:0}),w("default",n.value.length-1),await C(),l.value=!1,a.value=!1}},$=o=>{if(o.key==="Enter")if(o.ctrlKey){o.preventDefault();const t=o.target,s=t.selectionStart,d=t.selectionEnd;m.value=m.value.substring(0,s)+`
|
|
7
|
+
`+m.value.substring(d),e.nextTick(()=>{t.selectionStart=t.selectionEnd=s+1})}else o.preventDefault(),P()},C=async()=>{await e.nextTick(),b.value&&(b.value.scrollTop=b.value.scrollHeight)};return e.watch(()=>n.value,()=>{C()},{deep:!0}),y({open:()=>{c.value=!0,e.nextTick(()=>{C()})}}),(o,t)=>{const s=X,d=j.ElInput,D=z.ElButton,S=O.ElDialog;return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(S,{class:"ai-dialog",modelValue:c.value,"onUpdate:modelValue":t[1]||(t[1]=v=>c.value=v),title:"✨ 品种池参数解析AI助手",width:"500px",center:"",draggable:"",overflow:"",modal:!1,"modal-penetrable":!0},{default:e.withCtx(()=>{var v;return[e.createElementVNode("div",Z,[e.createElementVNode("div",{ref_key:"messageListRef",ref:b,class:"message-list"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(r,N)=>(e.openBlock(),e.createElementBlock("div",{key:N,class:e.normalizeClass([r.role,"message-item"])},[r.content?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",ee,[e.createVNode(s,{size:32,icon:r.role==="user"?e.unref(q.user_filled_default):e.unref(q.service_default)},null,8,["icon"])]),e.createElementVNode("div",te,[B(r.content)?(e.openBlock(),e.createElementBlock("div",{key:0,class:"message-json",innerHTML:Y(F(r.content))},null,8,se)):(e.openBlock(),e.createElementBlock("div",ae,e.toDisplayString(r.content),1)),e.createElementVNode("div",ne,e.toDisplayString(r.createTime),1),r.role==="assistant"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[r.showFeedback&&!r.hasFeedback?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[oe,e.createElementVNode("div",re,[e.createElementVNode("button",{class:"feedback-btn satisfied-btn",onClick:A=>w("satisfied",N)},ue,8,ie),e.createElementVNode("button",{class:"feedback-btn unsatisfied-btn",onClick:A=>w("open",N)},pe,8,de)])],64)):e.createCommentVNode("",!0),r.showFeedback&&r.hasFeedback?(e.openBlock(),e.createElementBlock("div",ve,"感谢您进行的评价反馈")):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0)])],64)):e.createCommentVNode("",!0)],2))),128)),a.value&&!((v=n.value[n.value.length-1])!=null&&v.content)?(e.openBlock(),e.createElementBlock("div",ge,[e.createElementVNode("div",he,[e.createVNode(s,{size:32,icon:e.unref(q.service_default)},null,8,["icon"])]),_e])):e.createCommentVNode("",!0)],512),e.createElementVNode("div",ke,[e.createVNode(d,{class:"message-input",modelValue:m.value,"onUpdate:modelValue":t[0]||(t[0]=r=>m.value=r),type:"textarea",rows:4,autosize:{minRows:2,maxRows:4},placeholder:"输入您想查询的品种条件... (Ctrl+Enter换行,Enter发送)",onKeydown:$},null,8,["modelValue"]),e.createElementVNode("div",ye,[be,e.createVNode(D,{class:"send-btn",type:"primary",icon:e.unref(q.promotion_default),loading:l.value,onClick:P,round:""},{default:e.withCtx(()=>[e.createTextVNode(" 发送 ")]),_:1},8,["icon","loading"])])])])]}),_:1},8,["modelValue"]),e.createVNode(S,{modelValue:k.value,"onUpdate:modelValue":t[5]||(t[5]=v=>k.value=v),title:"📝 反馈意见",width:"400px"},{footer:e.withCtx(()=>[e.createElementVNode("span",Ne,[e.createVNode(D,{onClick:t[3]||(t[3]=v=>k.value=!1)},{default:e.withCtx(()=>[e.createTextVNode("取消")]),_:1}),e.createVNode(D,{type:"primary",onClick:t[4]||(t[4]=v=>w("unsatisfied",g.value))},{default:e.withCtx(()=>[e.createTextVNode("提交反馈")]),_:1})])]),default:e.withCtx(()=>[e.createElementVNode("div",Ee,[Te,Ve,e.createVNode(d,{modelValue:E.value,"onUpdate:modelValue":t[2]||(t[2]=v=>E.value=v),type:"textarea",rows:4,placeholder:"[非必填]例如:回答不够准确、查询结果有误、界面体验不佳..."},null,8,["modelValue"])])]),_:1},8,["modelValue"])],64)}}},we=L._export_sfc(Ce,[["__scopeId","data-v-485f55b8"]]),Se={install(u){u.component("st-varietyAiHelper",we)}};module.exports=Se;
|
package/es/VarietyAiHelper.js
CHANGED
|
@@ -3,12 +3,12 @@ import { E as ce } from "./el-dialog-eedcfd3e.js";
|
|
|
3
3
|
import "./el-overlay-1ee0338d.js";
|
|
4
4
|
import { E as ue } from "./el-button-e2c63c08.js";
|
|
5
5
|
import { E as de } from "./el-input-d47281da.js";
|
|
6
|
-
import { defineComponent as X, ref as T, computed as L, watch as G, openBlock as f, createElementBlock as _, normalizeClass as Q, unref as
|
|
7
|
-
import { d as
|
|
6
|
+
import { defineComponent as X, ref as T, computed as L, watch as G, openBlock as f, createElementBlock as _, normalizeClass as Q, unref as M, normalizeStyle as R, createBlock as K, withCtx as P, resolveDynamicComponent as me, renderSlot as pe, inject as fe, reactive as ve, nextTick as I, Fragment as A, createVNode as E, createElementVNode as n, renderList as ge, toDisplayString as U, createCommentVNode as x, createTextVNode as J, pushScopeId as _e, popScopeId as he } from "vue";
|
|
7
|
+
import { d as O } from "./dayjs.min-8313b006.js";
|
|
8
8
|
import { V as be } from "./index-7ed0999e.js";
|
|
9
9
|
import { E as ye, u as ke, s as W, p as Te } from "./index-c2b9bbfd.js";
|
|
10
10
|
import { _ as Se } from "./_plugin-vue_export-helper-dad06003.js";
|
|
11
|
-
import { E as
|
|
11
|
+
import { E as z } from "./index-f30561d3.js";
|
|
12
12
|
import { k as we, i as Ce } from "./use-form-common-props-cb0ca65c.js";
|
|
13
13
|
import "./index-0f79095c.js";
|
|
14
14
|
import "./index-8391a3df.js";
|
|
@@ -72,17 +72,17 @@ const Ee = se({
|
|
|
72
72
|
v.value = !0, S("error", s);
|
|
73
73
|
}
|
|
74
74
|
return (s, w) => (f(), _("span", {
|
|
75
|
-
class: Q(
|
|
76
|
-
style: R(
|
|
75
|
+
class: Q(M(c)),
|
|
76
|
+
style: R(M(y))
|
|
77
77
|
}, [
|
|
78
78
|
(s.src || s.srcSet) && !v.value ? (f(), _("img", {
|
|
79
79
|
key: 0,
|
|
80
80
|
src: s.src,
|
|
81
81
|
alt: s.alt,
|
|
82
82
|
srcset: s.srcSet,
|
|
83
|
-
style: R(
|
|
83
|
+
style: R(M(p)),
|
|
84
84
|
onError: l
|
|
85
|
-
}, null, 44, ["src", "alt", "srcset"])) : s.icon ? (f(), K(
|
|
85
|
+
}, null, 44, ["src", "alt", "srcset"])) : s.icon ? (f(), K(M(ye), { key: 1 }, {
|
|
86
86
|
default: P(() => [
|
|
87
87
|
(f(), K(me(s.icon)))
|
|
88
88
|
]),
|
|
@@ -180,10 +180,10 @@ const Ye = async ({ appId: u, apiKey: S, value: b, callback: i }) => {
|
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
182
|
};
|
|
183
|
-
const D = (u) => (_e("data-v-
|
|
183
|
+
const D = (u) => (_e("data-v-485f55b8"), u = u(), he(), u), Fe = { class: "ai-dialog-body" }, Ae = { class: "avatar" }, xe = { class: "message-content" }, Oe = ["innerHTML"], $e = {
|
|
184
184
|
key: 1,
|
|
185
185
|
class: "message-text"
|
|
186
|
-
},
|
|
186
|
+
}, ze = { class: "message-createTime" }, Be = /* @__PURE__ */ D(() => /* @__PURE__ */ n("div", { class: "message-createTime" }, "请问对本轮查询结果是否满意?", -1)), Le = { class: "feedback-buttons" }, Ie = ["onClick"], Je = /* @__PURE__ */ D(() => /* @__PURE__ */ n("span", { class: "btn-emoji" }, "👍", -1)), je = /* @__PURE__ */ D(() => /* @__PURE__ */ n("span", { class: "btn-text" }, "满意", -1)), Re = [
|
|
187
187
|
Je,
|
|
188
188
|
je
|
|
189
189
|
], Ke = ["onClick"], Ue = /* @__PURE__ */ D(() => /* @__PURE__ */ n("span", { class: "btn-emoji" }, "👎", -1)), We = /* @__PURE__ */ D(() => /* @__PURE__ */ n("span", { class: "btn-text" }, "不满意", -1)), qe = [
|
|
@@ -226,7 +226,7 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
226
226
|
// 是否展示反馈按钮(默认信息不用展示)
|
|
227
227
|
hasFeedback: !1,
|
|
228
228
|
// 是否已进行过反馈
|
|
229
|
-
createTime:
|
|
229
|
+
createTime: O().format("YYYY-MM-DD HH:mm:ss"),
|
|
230
230
|
// 消息发起时间
|
|
231
231
|
resTime: 0,
|
|
232
232
|
// 响应总耗时
|
|
@@ -272,9 +272,13 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
272
272
|
type: 1,
|
|
273
273
|
createTime: t.createTime,
|
|
274
274
|
resTime: t.resTime,
|
|
275
|
-
firstPackageTime: t.firstPackageTime
|
|
275
|
+
firstPackageTime: t.firstPackageTime,
|
|
276
|
+
isSolved: 1,
|
|
277
|
+
// 是否解决
|
|
278
|
+
logOrigin: 1
|
|
279
|
+
// 日志来源
|
|
276
280
|
};
|
|
277
|
-
await i.request.post("/alarm/deliversign/addVarietyAiHelperLog", d),
|
|
281
|
+
await i.request.post("/alarm/deliversign/addVarietyAiHelperLog", d), z.success("感谢您的评价!"), a.value[e].hasFeedback = !0;
|
|
278
282
|
break;
|
|
279
283
|
}
|
|
280
284
|
case "open": {
|
|
@@ -290,9 +294,13 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
290
294
|
type: 2,
|
|
291
295
|
resTime: t.resTime,
|
|
292
296
|
createTime: t.createTime,
|
|
293
|
-
firstPackageTime: t.firstPackageTime
|
|
297
|
+
firstPackageTime: t.firstPackageTime,
|
|
298
|
+
isSolved: 0,
|
|
299
|
+
// 是否解决
|
|
300
|
+
logOrigin: 1
|
|
301
|
+
// 日志来源
|
|
294
302
|
};
|
|
295
|
-
await i.request.post("/alarm/deliversign/addVarietyAiHelperLog", d),
|
|
303
|
+
await i.request.post("/alarm/deliversign/addVarietyAiHelperLog", d), z.success("感谢您的反馈!我们将持续跟踪并进行优化"), k.value = !1, a.value[e].hasFeedback = !0;
|
|
296
304
|
break;
|
|
297
305
|
}
|
|
298
306
|
case "default": {
|
|
@@ -304,7 +312,11 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
304
312
|
type: null,
|
|
305
313
|
resTime: t.resTime,
|
|
306
314
|
createTime: t.createTime,
|
|
307
|
-
firstPackageTime: t.firstPackageTime
|
|
315
|
+
firstPackageTime: t.firstPackageTime,
|
|
316
|
+
isSolved: 1,
|
|
317
|
+
// 是否解决
|
|
318
|
+
logOrigin: 1
|
|
319
|
+
// 日志来源
|
|
308
320
|
};
|
|
309
321
|
await i.request.post("/alarm/deliversign/addVarietyAiHelperLog", d);
|
|
310
322
|
}
|
|
@@ -312,23 +324,23 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
312
324
|
}, j = async () => {
|
|
313
325
|
const o = m.value.trim();
|
|
314
326
|
if (!o)
|
|
315
|
-
return
|
|
327
|
+
return z.warning("请输入消息内容");
|
|
316
328
|
if (l.value)
|
|
317
329
|
return;
|
|
318
330
|
a.value.push({
|
|
319
331
|
role: "user",
|
|
320
332
|
content: o,
|
|
321
|
-
createTime:
|
|
322
|
-
}), m.value = "", await
|
|
333
|
+
createTime: O().format("YYYY-MM-DD HH:mm:ss")
|
|
334
|
+
}), m.value = "", await N(), a.value.push({
|
|
323
335
|
role: "assistant",
|
|
324
336
|
content: "",
|
|
325
337
|
userContent: o,
|
|
326
338
|
showFeedback: !1,
|
|
327
339
|
hasFeedback: !1,
|
|
328
|
-
createTime:
|
|
340
|
+
createTime: O().format("YYYY-MM-DD HH:mm:ss"),
|
|
329
341
|
resTime: 0,
|
|
330
342
|
firstPackageTime: 0
|
|
331
|
-
}), await
|
|
343
|
+
}), await N(), l.value = !0, s.value = !0;
|
|
332
344
|
let e = "", t = (/* @__PURE__ */ new Date()).getTime();
|
|
333
345
|
try {
|
|
334
346
|
await Ye({
|
|
@@ -343,22 +355,22 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
343
355
|
content: `❌ ${g}`,
|
|
344
356
|
showFeedback: !1,
|
|
345
357
|
hasFeedback: !1,
|
|
346
|
-
createTime:
|
|
358
|
+
createTime: O().format("YYYY-MM-DD HH:mm:ss"),
|
|
347
359
|
resTime: (/* @__PURE__ */ new Date()).getTime() - t,
|
|
348
360
|
firstPackageTime: 0
|
|
349
|
-
}), Y("default", a.value.length - 1),
|
|
361
|
+
}), Y("default", a.value.length - 1), N();
|
|
350
362
|
return;
|
|
351
363
|
} else if (H === "message") {
|
|
352
364
|
e += g;
|
|
353
365
|
const r = a.value[a.value.length - 1];
|
|
354
|
-
r && r.role === "assistant" && (r.content = e,
|
|
366
|
+
r && r.role === "assistant" && (r.content = e, N()), r.firstPackageTime === 0 && (r.firstPackageTime = (/* @__PURE__ */ new Date()).getTime() - t);
|
|
355
367
|
} else if (H === "finish") {
|
|
356
368
|
s.value = !1, l.value = !1;
|
|
357
369
|
const r = a.value[a.value.length - 1];
|
|
358
370
|
r && r.role === "assistant" && (r.showFeedback = !0, r.resTime = (/* @__PURE__ */ new Date()).getTime() - t, Y("default", a.value.length - 1));
|
|
359
371
|
try {
|
|
360
|
-
const
|
|
361
|
-
delete
|
|
372
|
+
const V = JSON.parse(e);
|
|
373
|
+
delete V.parsedConditions, console.log(V), y("callBack", V);
|
|
362
374
|
} catch {
|
|
363
375
|
y("callBack", e);
|
|
364
376
|
}
|
|
@@ -366,16 +378,16 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
366
378
|
}
|
|
367
379
|
});
|
|
368
380
|
} catch (d) {
|
|
369
|
-
|
|
381
|
+
z.error(`AI响应异常: ${d}`), a.value.pop(), a.value.push({
|
|
370
382
|
role: "assistant",
|
|
371
383
|
userContent: o,
|
|
372
384
|
content: "❌ 抱歉,AI服务响应异常,请稍后重试。",
|
|
373
385
|
showFeedback: !0,
|
|
374
386
|
hasFeedback: !1,
|
|
375
|
-
createTime:
|
|
387
|
+
createTime: O().format("YYYY-MM-DD HH:mm:ss"),
|
|
376
388
|
resTime: (/* @__PURE__ */ new Date()).getTime() - t,
|
|
377
389
|
firstPackageTime: 0
|
|
378
|
-
}), Y("default", a.value.length - 1), await
|
|
390
|
+
}), Y("default", a.value.length - 1), await N(), l.value = !1, s.value = !1;
|
|
379
391
|
}
|
|
380
392
|
}, ee = (o) => {
|
|
381
393
|
if (o.key === "Enter")
|
|
@@ -388,23 +400,23 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
388
400
|
});
|
|
389
401
|
} else
|
|
390
402
|
o.preventDefault(), j();
|
|
391
|
-
},
|
|
403
|
+
}, N = async () => {
|
|
392
404
|
await I(), w.value && (w.value.scrollTop = w.value.scrollHeight);
|
|
393
405
|
};
|
|
394
406
|
return G(
|
|
395
407
|
() => a.value,
|
|
396
408
|
() => {
|
|
397
|
-
|
|
409
|
+
N();
|
|
398
410
|
},
|
|
399
411
|
{ deep: !0 }
|
|
400
412
|
), S({
|
|
401
413
|
open: () => {
|
|
402
414
|
c.value = !0, I(() => {
|
|
403
|
-
|
|
415
|
+
N();
|
|
404
416
|
});
|
|
405
417
|
}
|
|
406
418
|
}), (o, e) => {
|
|
407
|
-
const t = Pe, d = de,
|
|
419
|
+
const t = Pe, d = de, $ = ue, H = ce;
|
|
408
420
|
return f(), _(A, null, [
|
|
409
421
|
E(H, {
|
|
410
422
|
class: "ai-dialog",
|
|
@@ -427,15 +439,15 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
427
439
|
ref: w,
|
|
428
440
|
class: "message-list"
|
|
429
441
|
}, [
|
|
430
|
-
(f(!0), _(A, null, ge(a.value, (r,
|
|
431
|
-
key:
|
|
442
|
+
(f(!0), _(A, null, ge(a.value, (r, V) => (f(), _("div", {
|
|
443
|
+
key: V,
|
|
432
444
|
class: Q([r.role, "message-item"])
|
|
433
445
|
}, [
|
|
434
446
|
r.content ? (f(), _(A, { key: 0 }, [
|
|
435
447
|
n("div", Ae, [
|
|
436
448
|
E(t, {
|
|
437
449
|
size: 32,
|
|
438
|
-
icon: r.role === "user" ?
|
|
450
|
+
icon: r.role === "user" ? M(ke) : M(W)
|
|
439
451
|
}, null, 8, ["icon"])
|
|
440
452
|
]),
|
|
441
453
|
n("div", xe, [
|
|
@@ -443,19 +455,19 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
443
455
|
key: 0,
|
|
444
456
|
class: "message-json",
|
|
445
457
|
innerHTML: Z(B(r.content))
|
|
446
|
-
}, null, 8,
|
|
447
|
-
n("div",
|
|
458
|
+
}, null, 8, Oe)) : (f(), _("div", $e, U(r.content), 1)),
|
|
459
|
+
n("div", ze, U(r.createTime), 1),
|
|
448
460
|
r.role === "assistant" ? (f(), _(A, { key: 2 }, [
|
|
449
461
|
r.showFeedback && !r.hasFeedback ? (f(), _(A, { key: 0 }, [
|
|
450
462
|
Be,
|
|
451
463
|
n("div", Le, [
|
|
452
464
|
n("button", {
|
|
453
465
|
class: "feedback-btn satisfied-btn",
|
|
454
|
-
onClick: (te) => Y("satisfied",
|
|
466
|
+
onClick: (te) => Y("satisfied", V)
|
|
455
467
|
}, Re, 8, Ie),
|
|
456
468
|
n("button", {
|
|
457
469
|
class: "feedback-btn unsatisfied-btn",
|
|
458
|
-
onClick: (te) => Y("open",
|
|
470
|
+
onClick: (te) => Y("open", V)
|
|
459
471
|
}, qe, 8, Ke)
|
|
460
472
|
])
|
|
461
473
|
], 64)) : x("", !0),
|
|
@@ -468,7 +480,7 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
468
480
|
n("div", Qe, [
|
|
469
481
|
E(t, {
|
|
470
482
|
size: 32,
|
|
471
|
-
icon:
|
|
483
|
+
icon: M(W)
|
|
472
484
|
}, null, 8, ["icon"])
|
|
473
485
|
]),
|
|
474
486
|
Ze
|
|
@@ -487,10 +499,10 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
487
499
|
}, null, 8, ["modelValue"]),
|
|
488
500
|
n("div", tt, [
|
|
489
501
|
st,
|
|
490
|
-
E(
|
|
502
|
+
E($, {
|
|
491
503
|
class: "send-btn",
|
|
492
504
|
type: "primary",
|
|
493
|
-
icon:
|
|
505
|
+
icon: M(Te),
|
|
494
506
|
loading: l.value,
|
|
495
507
|
onClick: j,
|
|
496
508
|
round: ""
|
|
@@ -515,7 +527,7 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
515
527
|
}, {
|
|
516
528
|
footer: P(() => [
|
|
517
529
|
n("span", rt, [
|
|
518
|
-
E(
|
|
530
|
+
E($, {
|
|
519
531
|
onClick: e[3] || (e[3] = (g) => k.value = !1)
|
|
520
532
|
}, {
|
|
521
533
|
default: P(() => [
|
|
@@ -523,7 +535,7 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
523
535
|
]),
|
|
524
536
|
_: 1
|
|
525
537
|
}),
|
|
526
|
-
E(
|
|
538
|
+
E($, {
|
|
527
539
|
type: "primary",
|
|
528
540
|
onClick: e[4] || (e[4] = (g) => Y("unsatisfied", h.value))
|
|
529
541
|
}, {
|
|
@@ -552,7 +564,7 @@ const D = (u) => (_e("data-v-50a97ff3"), u = u(), he(), u), Fe = { class: "ai-di
|
|
|
552
564
|
], 64);
|
|
553
565
|
};
|
|
554
566
|
}
|
|
555
|
-
}, lt = /* @__PURE__ */ Se(it, [["__scopeId", "data-v-
|
|
567
|
+
}, lt = /* @__PURE__ */ Se(it, [["__scopeId", "data-v-485f55b8"]]), Ht = {
|
|
556
568
|
install(u) {
|
|
557
569
|
u.component("st-varietyAiHelper", lt);
|
|
558
570
|
}
|