Kaynağa Gözat

feat: add dialog Id

奇橙 1 yıl önce
ebeveyn
işleme
058841b1bc
4 değiştirilmiş dosya ile 27 ekleme ve 9 silme
  1. 14 3
      src/ajax/api/message.js
  2. BIN
      src/assets.zip
  3. 2 2
      src/components/DialogWrap.vue
  4. 11 4
      src/views/Home.vue

+ 14 - 3
src/ajax/api/message.js

@@ -1,5 +1,6 @@
-const create = (token, agentId) => {
-    const ws = new WebSocket(`ws://smartai.com:8000/api/chat/ws/${agentId}/0?token=${token}`);
+import request from "../request";
+const create = (token, agentId, dialogId) => {
+    const ws = new WebSocket(`ws://smartai.com:8000/api/chat/ws/${agentId}/${dialogId}?token=${token}`);
     // 当 WebSocket 打开时...
     ws.onopen = function (event) {
         console.log("WebSocket 连接已打开");
@@ -16,6 +17,16 @@ const create = (token, agentId) => {
     };
     return ws;
 };
+
+/**
+ * 新建对话
+ * @returns {Promise<Object>}
+ */
+const createDialog = (id) => {
+    return request.get(`/api/agent/get-chat-id/${id}`);
+};
+
 export default {
-    create
+    create,
+    createDialog
 };

BIN
src/assets.zip


+ 2 - 2
src/components/DialogWrap.vue

@@ -267,7 +267,7 @@ export default defineComponent({
     components: {
         DialogFeedback
     },
-    props: ["open", "suggestions", "isSetting", "readonly", "type", "list", "agentId"],
+    props: ["open", "suggestions", "isSetting", "readonly", "type", "list", "agentId", "dialogId"],
     setup(props, { emit }) {
         const knowledgeList = ref([
             {
@@ -525,7 +525,7 @@ export default defineComponent({
         });
         onMounted(() => {
             scrollToEnd();
-            helper.webSocket = ajax.message.create(helper.read("token"), props.agentId);
+            helper.webSocket = ajax.message.create(helper.read("token"), props.agentId, props.dialogId);
             helper.webSocket.onmessage = (event) => {
                 console.log(JSON.parse(event.data));
                 const { type, message, category } = JSON.parse(event.data);

+ 11 - 4
src/views/Home.vue

@@ -49,6 +49,7 @@
                                 @setReadonly="setReadonly"
                                 @goDocument="goDocument"
                                 :agentId="agentIds[navIndex]"
+                                :dialogId="dialogId"
                                 :list="dialogList"
                             />
                         </section>
@@ -128,6 +129,7 @@ export default defineComponent({
         const initDialog = ref(false);
         const hideDialog = ref(false);
         const agentIds = ref([]);
+        const dialogId = ref("");
         const openAll = () => {
             closeOthers.value = !closeOthers.value;
         };
@@ -168,24 +170,28 @@ export default defineComponent({
                 helper.$bus.emit("set-loading", false);
             }, 20);
         };
-        const beginCombine = () => {
+        const beginCombine = async () => {
+            const data = await ajax.message.createDialog(agentIds.value[navIndex.value]);
+            dialogId.value = data.chat_id;
             dialogList.value = [];
             showDialog.value = true;
             initDialog.value = true;
             setTimeout(() => {
                 helper.$bus.emit("send-message", "开始");
-            }, 500);
+            }, 200);
         };
         onMounted(async () => {
             const agents = await ajax.agent.getAgents();
             agentIds.value = agents.map((data) => data.id);
-            helper.$bus.on("open-dialog", (value) => {
+            helper.$bus.on("open-dialog", async (value) => {
+                const data = await ajax.message.createDialog(agentIds.value[navIndex.value]);
+                dialogId.value = data.chat_id;
                 dialogList.value = [];
                 showDialog.value = true;
                 initDialog.value = true;
                 setTimeout(() => {
                     helper.$bus.emit("send-message", value);
-                }, 500);
+                }, 200);
             });
         });
         onBeforeUnmount(() => {
@@ -195,6 +201,7 @@ export default defineComponent({
         return {
             beginCombine,
             selectId,
+            dialogId,
             navIndex,
             selectNav,
             swiperNumber,