使用插件依赖“@microsoft/fetch-event-source“: “^2.0.1“

文件引用

import { fetchEventSource } from "@microsoft/fetch-event-source";

      const that = this;
      let data = {
        inputs: { type: "chat" },
        query: "请写出木兰诗的内容", // 问题
        responseMode: "streaming", // 选择流式回答
        conversationId: "", // 会话id,已经对过话的会返回会话id,没有就空着
        user: "用户", // 用户
        autoGenerateName: true, // 自动生成标题默认为true, 如果是false可通过调用会话重命名接口设置标题
      };
    
      let getHeaders = {
        "Content-Type": "application/json", // "application/json",//"text/event-stream"
        accept: "*/*",
        "Cache-Control": "no-cache",
        Connection: "keep-alive",
      };
      // getHeaders["Authorization"] = "Bearer " + getToken();
      const postData = JSON.stringify(data); // 请求体
      that.controller = new AbortController(); //用于控制异步操作的中断
     let urlParams = `${process.env.VUE_APP_BASE_API}/system/ai/chat-messages`;
      try {
        fetchEventSource(urlParams, {
          method: "POST",
          headers: getHeaders,
          signal: that.controller.signal,
          body: postData,
          openWhenHidden: true,
          reconnect: false, // 禁用自动重连
          onmessage(res) {
            if (res?.data) {
              let getData = JSON.parse(res.data);
              if (getData?.event === "error") {
                // 处理接受内容
              }
              if (getData?.answer) {
               // 处理接受内容
               
              }
            }
          },
          onclose() {
            that.controller.abort();
            console.log("连接关闭");
            }
          },
          onerror(err) {
            that.controller.abort();
            console.error("连接错误", err);
          },
        });
      } catch (err) {
        that.controller.abort();
        console.log("err", err);
      }

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐