张涛 1 year ago
parent
commit
522bbb6068

+ 1 - 1
dist/assets/Agent-9df6a185.js → dist/assets/Agent-a21d05a5.js

@@ -1 +1 @@
-import{a4 as t}from"./index-66c0d0b4.js";function s(a){return t.get("/api/v1/canvas/list",{params:a})}function e(){return t.get("/api/v1/llm/distinct",{})}function n(a){return t.get("/api/v1/conversation/app_usage")}function o(a){return t.post("/api/v1/conversation/app_usage/rm",a)}export{n as a,e as b,o as d,s as q};
+import{a4 as t}from"./index-2f158a4f.js";function s(a){return t.get("/api/v1/canvas/list",{params:a})}function e(){return t.get("/api/v1/llm/distinct",{})}function n(a){return t.get("/api/v1/conversation/app_usage")}function o(a){return t.post("/api/v1/conversation/app_usage/rm",a)}export{n as a,e as b,o as d,s as q};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/Knowledge-4801f8b3.js


+ 1 - 1
dist/assets/Login-21b42ded.js → dist/assets/Login-1aa873d5.js

@@ -1 +1 @@
-import{_ as g}from"./login-bd96354f.js";import{_ as f,m as v,x as i,C as w,D as k,E as n,v as p,B as V,r as a}from"./index-66c0d0b4.js";const _=v({components:{},props:[],setup(){const{ajax:o,helper:e}=V("$global"),t=a(""),r=a("");return{login:async()=>{const l=await o.user.login(t.value,r.value);l&&(e.write("userName",l.nickname||l.username),e.write("token",l.access_token),e.goLink("/"))},username:t,password:r,goRegister:()=>{e.goLink("register")}}}});function y(o,e,t,r,u,d){const l=i("a-input"),m=i("a-input-password");return w(),k("main",null,[n("section",null,[e[6]||(e[6]=n("header",null,[n("img",{src:g}),n("p",null,"欢迎使用")],-1)),e[7]||(e[7]=n("p",null,"账号登录",-1)),n("section",null,[e[4]||(e[4]=n("p",null,"账号",-1)),n("div",null,[p(l,{placeholder:"请输入手机号",style:{width:"250px",height:"40px"},modelValue:o.username,"onUpdate:modelValue":e[0]||(e[0]=s=>o.username=s)},null,8,["modelValue"])])]),n("section",null,[e[5]||(e[5]=n("p",null,"密码",-1)),n("div",null,[p(m,{placeholder:"请输入手机号",style:{width:"250px",height:"40px"},modelValue:o.password,"onUpdate:modelValue":e[1]||(e[1]=s=>o.password=s)},null,8,["modelValue"])])]),n("section",null,[n("p",{style:{cursor:"pointer"},onClick:e[2]||(e[2]=(...s)=>o.goRegister&&o.goRegister(...s))},"去注册")]),n("div",{onClick:e[3]||(e[3]=(...s)=>o.login&&o.login(...s))},"登录")])])}const $=f(_,[["render",y],["__scopeId","data-v-c8b3e868"]]);export{$ as default};
+import{_ as g}from"./login-bd96354f.js";import{_ as f,m as v,x as i,C as w,D as k,E as n,v as p,B as V,r as a}from"./index-2f158a4f.js";const _=v({components:{},props:[],setup(){const{ajax:o,helper:e}=V("$global"),t=a(""),r=a("");return{login:async()=>{const l=await o.user.login(t.value,r.value);l&&(e.write("userName",l.nickname||l.username),e.write("token",l.access_token),e.goLink("/"))},username:t,password:r,goRegister:()=>{e.goLink("register")}}}});function y(o,e,t,r,u,d){const l=i("a-input"),m=i("a-input-password");return w(),k("main",null,[n("section",null,[e[6]||(e[6]=n("header",null,[n("img",{src:g}),n("p",null,"欢迎使用")],-1)),e[7]||(e[7]=n("p",null,"账号登录",-1)),n("section",null,[e[4]||(e[4]=n("p",null,"账号",-1)),n("div",null,[p(l,{placeholder:"请输入手机号",style:{width:"250px",height:"40px"},modelValue:o.username,"onUpdate:modelValue":e[0]||(e[0]=s=>o.username=s)},null,8,["modelValue"])])]),n("section",null,[e[5]||(e[5]=n("p",null,"密码",-1)),n("div",null,[p(m,{placeholder:"请输入手机号",style:{width:"250px",height:"40px"},modelValue:o.password,"onUpdate:modelValue":e[1]||(e[1]=s=>o.password=s)},null,8,["modelValue"])])]),n("section",null,[n("p",{style:{cursor:"pointer"},onClick:e[2]||(e[2]=(...s)=>o.goRegister&&o.goRegister(...s))},"去注册")]),n("div",{onClick:e[3]||(e[3]=(...s)=>o.login&&o.login(...s))},"登录")])])}const $=f(_,[["render",y],["__scopeId","data-v-c8b3e868"]]);export{$ as default};

+ 1 - 1
dist/assets/Register-66cb1086.js → dist/assets/Register-7e82c1f3.js

@@ -1 +1 @@
-import{_ as g}from"./login-bd96354f.js";import{_ as f,m as v,x as p,C as w,D as _,E as s,v as a,B as V,r as u}from"./index-66c0d0b4.js";const y=v({components:{},props:[],setup(){const{ajax:n,helper:e}=V("$global"),l=u(""),t=u("");return{register:async()=>{const r=await n.user.register(l.value,t.value);r&&(e.write("userName",String(r.username)),e.goLink("/login"))},username:l,password:t}}});function b(n,e,l,t,i,r){const d=p("a-input"),m=p("a-input-password");return w(),_("main",null,[s("section",null,[e[5]||(e[5]=s("header",null,[s("img",{src:g}),s("p",null,"欢迎使用")],-1)),e[6]||(e[6]=s("p",null,"账号注册",-1)),s("section",null,[e[3]||(e[3]=s("p",null,"账号",-1)),s("div",null,[a(d,{placeholder:"请输入账号",style:{width:"250px",height:"40px"},modelValue:n.username,"onUpdate:modelValue":e[0]||(e[0]=o=>n.username=o)},null,8,["modelValue"])])]),s("section",null,[e[4]||(e[4]=s("p",null,"密码",-1)),s("div",null,[a(m,{type:"password",placeholder:"请输入密码",style:{width:"250px",height:"40px"},modelValue:n.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.password=o)},null,8,["modelValue"])])]),s("div",{onClick:e[2]||(e[2]=(...o)=>n.register&&n.register(...o))},"注册")])])}const k=f(y,[["render",b],["__scopeId","data-v-b8d3c93b"]]);export{k as default};
+import{_ as g}from"./login-bd96354f.js";import{_ as f,m as v,x as p,C as w,D as _,E as s,v as a,B as V,r as u}from"./index-2f158a4f.js";const y=v({components:{},props:[],setup(){const{ajax:n,helper:e}=V("$global"),l=u(""),t=u("");return{register:async()=>{const r=await n.user.register(l.value,t.value);r&&(e.write("userName",String(r.username)),e.goLink("/login"))},username:l,password:t}}});function b(n,e,l,t,i,r){const d=p("a-input"),m=p("a-input-password");return w(),_("main",null,[s("section",null,[e[5]||(e[5]=s("header",null,[s("img",{src:g}),s("p",null,"欢迎使用")],-1)),e[6]||(e[6]=s("p",null,"账号注册",-1)),s("section",null,[e[3]||(e[3]=s("p",null,"账号",-1)),s("div",null,[a(d,{placeholder:"请输入账号",style:{width:"250px",height:"40px"},modelValue:n.username,"onUpdate:modelValue":e[0]||(e[0]=o=>n.username=o)},null,8,["modelValue"])])]),s("section",null,[e[4]||(e[4]=s("p",null,"密码",-1)),s("div",null,[a(m,{type:"password",placeholder:"请输入密码",style:{width:"250px",height:"40px"},modelValue:n.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.password=o)},null,8,["modelValue"])])]),s("div",{onClick:e[2]||(e[2]=(...o)=>n.register&&n.register(...o))},"注册")])])}const k=f(y,[["render",b],["__scopeId","data-v-b8d3c93b"]]);export{k as default};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/authheader.vue_vue_type_script_setup_true_lang-4fc0a063.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/default-layout-9b00ff7d.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-0cc3ce15.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-2f158a4f.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-419e0918.js


+ 1 - 1
dist/assets/index-99c42ba0.js → dist/assets/index-44744164.js

@@ -1 +1 @@
-import{m as s,r as n,U as r,ae as o,x as _,C as c,D as i,v as l,E as t,_ as d}from"./index-66c0d0b4.js";const u={class:"container"},m={class:"iframe-box"},f=["src"],p={name:"Agent"},v=s({...p,setup(h){const e=n("");return r(()=>{e.value=`${o.RAGFlowUrl?o.RAGFlowUrl:window.location.origin}/flow?${localStorage.Authorization}`}),(x,g)=>{const a=_("Breadcrumb");return c(),i("div",u,[l(a,{items:["Agent","配置"]}),t("div",m,[t("iframe",{src:e.value,height:"100%",width:"100%",frameborder:"0"},null,8,f)])])}}});const B=d(v,[["__scopeId","data-v-82ea0634"]]);export{B as default};
+import{m as s,r as n,U as r,ae as o,x as _,C as c,D as i,v as l,E as t,_ as d}from"./index-2f158a4f.js";const u={class:"container"},m={class:"iframe-box"},f=["src"],p={name:"Agent"},v=s({...p,setup(h){const e=n("");return r(()=>{e.value=`${o.RAGFlowUrl?o.RAGFlowUrl:window.location.origin}/flow?${localStorage.Authorization}`}),(x,g)=>{const a=_("Breadcrumb");return c(),i("div",u,[l(a,{items:["Agent","配置"]}),t("div",m,[t("iframe",{src:e.value,height:"100%",width:"100%",frameborder:"0"},null,8,f)])])}}});const B=d(v,[["__scopeId","data-v-82ea0634"]]);export{B as default};

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-84497919.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-9495e77c.js


+ 1 - 1
dist/assets/index-258a507c.js → dist/assets/index-a96a0ec4.js

@@ -1,4 +1,4 @@
-import{a3 as qk,a4 as Ks,m as Of,r as Zt,a5 as Ta,U as t1,b as _h,V as bg,C as zr,D as Fn,E as or,u as Ti,J as _s,K as lc,L as xa,R as r1,_ as zu,l as Iu,a6 as n1,f as wA,w as i1,x as vn,v as Qr,F as Fr,G as Ya,a7 as Ig,Q as qs,Z as mu,M as ys,n as XI,H as Ma,I as Ca,a8 as X5,N as wh,O as Bh,a9 as Wk,aa as Kk,ab as $5,ac as zk,ad as Vk}from"./index-66c0d0b4.js";import{a as U5,d as Zk,q as Xk}from"./Agent-9df6a185.js";import{p as $k}from"./icon-chart-38e5438e.js";import{a as JI}from"./auth-54229761.js";import{a as xB,u as e9}from"./index-de8d7d96.js";const SB="/assets/icon-user-007bea0f.jpg",Vp="/assets/icon-picture-144a065f.png";var t9=Object.defineProperty,r9=(D,U,K)=>U in D?t9(D,U,{enumerable:!0,configurable:!0,writable:!0,value:K}):D[U]=K,PI=(D,U,K)=>r9(D,typeof U!="symbol"?U+"":U,K);class j5 extends Error{constructor(U,K){super(U),PI(this,"type"),PI(this,"field"),PI(this,"value"),PI(this,"line"),this.name="ParseError",this.type=K.type,this.field=K.field,this.value=K.value,this.line=K.line}}function dB(D){}function n9(D){const{onEvent:U=dB,onError:K=dB,onRetry:ee=dB,onComment:ge}=D;let Ue="",ht=!0,ut,_t="",Jt="";function ar(sr){const Ir=ht?sr.replace(/^\xEF\xBB\xBF/,""):sr,[hn,Oe]=i9(`${Ue}${Ir}`);for(const Et of hn)Tt(Et);Ue=Oe,ht=!1}function Tt(sr){if(sr===""){yr();return}if(sr.startsWith(":")){ge&&ge(sr.slice(sr.startsWith(": ")?2:1));return}const Ir=sr.indexOf(":");if(Ir!==-1){const hn=sr.slice(0,Ir),Oe=sr[Ir+1]===" "?2:1,Et=sr.slice(Ir+Oe);Fe(hn,Et,sr);return}Fe(sr,"",sr)}function Fe(sr,Ir,hn){switch(sr){case"event":Jt=Ir;break;case"data":_t=`${_t}${Ir}
+import{a3 as qk,a4 as Ks,m as Of,r as Zt,a5 as Ta,U as t1,b as _h,V as bg,C as zr,D as Fn,E as or,u as Ti,J as _s,K as lc,L as xa,R as r1,_ as zu,l as Iu,a6 as n1,f as wA,w as i1,x as vn,v as Qr,F as Fr,G as Ya,a7 as Ig,Q as qs,Z as mu,M as ys,n as XI,H as Ma,I as Ca,a8 as X5,N as wh,O as Bh,a9 as Wk,aa as Kk,ab as $5,ac as zk,ad as Vk}from"./index-2f158a4f.js";import{a as U5,d as Zk,q as Xk}from"./Agent-a21d05a5.js";import{p as $k}from"./icon-chart-38e5438e.js";import{a as JI}from"./auth-54229761.js";import{a as xB,u as e9}from"./index-84497919.js";const SB="/assets/icon-user-007bea0f.jpg",Vp="/assets/icon-picture-144a065f.png";var t9=Object.defineProperty,r9=(D,U,K)=>U in D?t9(D,U,{enumerable:!0,configurable:!0,writable:!0,value:K}):D[U]=K,PI=(D,U,K)=>r9(D,typeof U!="symbol"?U+"":U,K);class j5 extends Error{constructor(U,K){super(U),PI(this,"type"),PI(this,"field"),PI(this,"value"),PI(this,"line"),this.name="ParseError",this.type=K.type,this.field=K.field,this.value=K.value,this.line=K.line}}function dB(D){}function n9(D){const{onEvent:U=dB,onError:K=dB,onRetry:ee=dB,onComment:ge}=D;let Ue="",ht=!0,ut,_t="",Jt="";function ar(sr){const Ir=ht?sr.replace(/^\xEF\xBB\xBF/,""):sr,[hn,Oe]=i9(`${Ue}${Ir}`);for(const Et of hn)Tt(Et);Ue=Oe,ht=!1}function Tt(sr){if(sr===""){yr();return}if(sr.startsWith(":")){ge&&ge(sr.slice(sr.startsWith(": ")?2:1));return}const Ir=sr.indexOf(":");if(Ir!==-1){const hn=sr.slice(0,Ir),Oe=sr[Ir+1]===" "?2:1,Et=sr.slice(Ir+Oe);Fe(hn,Et,sr);return}Fe(sr,"",sr)}function Fe(sr,Ir,hn){switch(sr){case"event":Jt=Ir;break;case"data":_t=`${_t}${Ir}
 `;break;case"id":ut=Ir.includes("\0")?void 0:Ir;break;case"retry":/^\d+$/.test(Ir)?ee(parseInt(Ir,10)):K(new j5(`Invalid \`retry\` value: "${Ir}"`,{type:"invalid-retry",value:Ir,line:hn}));break;default:K(new j5(`Unknown field "${sr.length>20?`${sr.slice(0,20)}…`:sr}"`,{type:"unknown-field",field:sr,value:Ir,line:hn}));break}}function yr(){_t.length>0&&U({id:ut,event:Jt||void 0,data:_t.endsWith(`
 `)?_t.slice(0,-1):_t}),ut=void 0,_t="",Jt=""}function Le(sr={}){Ue&&sr.consume&&Tt(Ue),ut=void 0,_t="",Jt="",Ue=""}return{feed:ar,reset:Le}}function i9(D){const U=[];let K="";const ee=D.length;for(let ge=0;ge<ee;ge++){const Ue=D[ge];Ue==="\r"&&D[ge+1]===`
 `?(U.push(K),K="",ge++):Ue==="\r"||Ue===`

File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-ae2ec1ef.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-b5ab55fb.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-c1751914.js


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-c29a098b.css


File diff suppressed because it is too large
+ 0 - 0
dist/assets/index-f040630a.js


+ 1 - 1
dist/assets/loading-39206b81.js → dist/assets/loading-8b9fc7f7.js

@@ -1 +1 @@
-import{r as a}from"./index-66c0d0b4.js";function l(e=!1){const o=a(e);return{loading:o,setLoading:t=>{o.value=t},toggle:()=>{o.value=!o.value}}}export{l as u};
+import{r as a}from"./index-2f158a4f.js";function l(e=!1){const o=a(e);return{loading:o,setLoading:t=>{o.value=t},toggle:()=>{o.value=!o.value}}}export{l as u};

+ 2 - 2
dist/index.html

@@ -5,8 +5,8 @@
         <link rel="icon" href="/logo.svg" />
         <meta name="viewport" content="width=device-width, initial-scale=1.0" />
         <title>大模型系统</title>
-      <script type="module" crossorigin src="/assets/index-66c0d0b4.js"></script>
-      <link rel="stylesheet" href="/assets/index-97808278.css">
+      <script type="module" crossorigin src="/assets/index-2f158a4f.js"></script>
+      <link rel="stylesheet" href="/assets/index-c29a098b.css">
     </head>
     <body>
         <div id="app"></div>

+ 36 - 10
src/components/DialogWrap.vue

@@ -98,7 +98,7 @@
             </p>
           </div>
           <div class="dialog-footer" v-else>
-            <span v-html="item.answer"></span>
+            <span v-html="getHTML(item.answer)"></span>
           </div>
           <div v-if="(type === 'knowledge' || type === 'knowledgeQuiz') && knowledgeList.length > 0"
             class="knowledge-wrap">
@@ -139,18 +139,18 @@
           </div>
 
           <!-- 历史记录的引用来源 -->
-          <div v-if="item.reference && item.reference.chunks" class="knowledge-wrap">
+          <div v-if="item.reference && item.reference.doc_aggs" class="knowledge-wrap">
             <header>
               <p>来源</p>
               <!-- TODO详情暂时注释 -->
               <!-- <p @click="goKnowledge">查看全部关联 ></p> -->
             </header>
             <section>
-              <div v-for="(knowledge, knowledgeIndex) in item.reference.chunks" :key="knowledgeIndex">
-                <a-popover :title="knowledge.docnm_kwd" position="left">
+              <div v-for="(knowledge, knowledgeIndex) in item.reference.doc_aggs" :key="knowledgeIndex">
+                <a-popover :title="knowledge.doc_name" position="left">
                   <div>
                     <span>{{ knowledgeIndex + 1 }}</span>
-                    <span>{{ knowledge.docnm_kwd }}</span>
+                    <span>{{ knowledge.doc_name }}</span>
                   </div>
                   <template #content>
                     <div class="knowledge-detail">
@@ -429,7 +429,8 @@ export default defineComponent({
       scrollToEnd();
       helper.webSocket = ajax.message.create(helper.read("token"), props.agentId, props.dialogId, props.type);
       helper.webSocket.onmessage = (event) => {
-        const { type, message, reference, step_message, files } = JSON.parse(event.data);
+        const { type, reference, step_message, files } = JSON.parse(event.data);
+        let { message } = JSON.parse(event.data);
         if (!loadingData.value) return;
         if (type === "stream") {
           if (files && files.length > 0) {
@@ -444,18 +445,24 @@ export default defineComponent({
           }
         }
         if (type === "message") {
+          const icon = `  <span class="circle" />`
+          // 把乱码替换为符号
+          message = message.replace(/##\d\$\$/g, icon);
+          // TODO 
           answerData.value = getHTML(message);
           if (answerData.value && !isLoaded.value) {
             answerLoaded();
           }
           addAnswer(loadingData.value);
-          if (reference.chunks && reference.chunks.length > 0) {
-            knowledgeList.value = reference.chunks.map(item => {
+          console.log('reference', reference)
+          if (reference.doc_aggs && reference.doc_aggs.length > 0) {
+            knowledgeList.value = reference.doc_aggs.map(item => {
+              console.log('item', item)
               return {
                 id: item.doc_id,
-                name: item.docnm_kwd,
+                name: item.doc_name,
                 page: 0,
-                contents: [item.content_ltks]
+                contents: [reference.chunks.find(chunk => chunk.doc_id == item.doc_id).content_ltks]
               }
             })
           }
@@ -501,6 +508,7 @@ export default defineComponent({
       showFeedback,
       copyAnswer,
       dialogList,
+      getHTML,
       selectSuggestion,
       dialogScroll,
       reQuestion,
@@ -1017,3 +1025,21 @@ export default defineComponent({
   }
 }
 </style>
+<style>
+.circle {
+  width: 16px;
+  height: 16px;
+  border-radius: 50%;
+  display: inline-block;
+  border: 2px solid #888;
+}
+
+.circle::before {
+  content: "!";
+  font-size: 12px;
+  color: #000;
+  line-height: 12px;
+  text-align: center;
+  display: block;
+}
+</style>

Some files were not shown because too many files changed in this diff