基于Dify平台对接的AI机器人聊天makedown流式接收

451 阅读1分钟

使用uniapp 开发的适配微信小程序的通用组件,支持Vue3

我有:好看的界面、知识库与提示词功能、makedown流式接收、开箱及用的配置、完善的注释

ext.dcloud.net.cn/plugin?id=2…

开箱急用.jpg

默认.jpg

输入框超出三行后滚动.jpg

提示词命中.jpg

完善的注释.jpg

文字输入.jpg

知识库切换.jpg

1.当前的接口路径都是基于 Dify平台对接的

2.如果有真实接口要接进来就修改如下配置

//---------------------- API 配置 ----------------------
const API_CONFIG = {
  BASE_URL: "https://xx.xxxx.com:1111", // 真实数据必填
  HEADERS: {
    "Content-Type": "application/json",
  },
  TIMEOUT: 15000,
};

//---------------------- 状态管理 ----------------------
const AIdata = ref({
  access_token: "",
  refresh_token: "",
  current_session: {}, // 当前选中的模型
  conversations: {}, // 当前对话
  request_url: "https://xx.xxxx.com:1111", // 真实数据必填
});

// 登录的账号密码
const login = async () => {
  try {
    const response = await request("/console/api/login", "POST", {
      email: "",  // 真实数据必填
      password: "", // 真实数据必填
      language: "zh-Hans",
      remember_me: true,
    });

    AIdata.value.access_token = response.data.access_token;
    AIdata.value.refresh_token = response.data.refresh_token;
    API_CONFIG.HEADERS.Authorization = `Bearer ${AIdata.value.access_token}`;
    return response;
  } catch (error) {
    console.error("登录失败:", error);
    throw error;
  }
};

3.目前都是使用moke数据对接的,使用某个接口是注意注释。将moke数据凡是注释,放开正式就行,我都有注释好的 如下:

      //---------------------- 真实 API 调用 ----------------------
      // const loginData = await login();
      // AIdata.value.access_token = loginData.data.access_token;
      // AIdata.value.refresh_token = loginData.data.refresh_token;
      // AIdata.value.request_url = API_CONFIG.BASE_URL;

      // 获取应用列表
      // await getInstalledApps();

      //---------------------- Mock 数据调用 ----------------------
      // 使用 mock 数据模拟登录
      const loginData = loginResponse.data;
      AIdata.value.access_token = loginData.access_token;
      AIdata.value.refresh_token = loginData.refresh_token;
      AIdata.value.request_url = API_CONFIG.BASE_URL;
      console.log("登录数据:", loginData);

4.如果因为 towxml 包太大了,无法发版! 进行分包处理就行! 如分包导致引入的问题可以留言咨询作者

5.流失接收数据时,因小程序没有 TextDecoder 所以需要下载这个插件,注意一下