必须用原生wx.request调用dify chat api实现流式响应,因云函数会截断sse;需配置合法域名、设置datatype为"text"、按行解析data:事件并拼接增量文本渲染。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在微信小程序里让AI客服实时回复用户消息,必须用原生wx.request发起HTTP请求调用Dify的Chat API,不能依赖云函数中转或第三方SDK封装——因为流式响应(streaming)在云函数中会被截断,而原生请求能直接处理SSE事件流并逐字渲染。
获取Dify应用的API凭证与端点
登录Dify控制台,进入你已发布的聊天助手类应用 → 点击右上角「访问 API」→ 复制「API密钥」和「API服务器地址」。注意:密钥以app-开头,服务器地址末尾必须是/v1,例如https://api.dify.ai/v1。若使用私有部署,请确认该地址可被微信小程序合法访问(需配置合法域名并备案)。
【API服务器地址必须带/v1后缀,漏掉会导致404】
在小程序项目根目录的project.config.json中,将该地址添加到「request合法域名」列表;否则wx.request会直接失败且无错误提示。
构造符合Dify Chat API规范的请求参数
调用/v1/chat-messages接口时,必须携带以下字段:
• query:用户输入的文本,不能为空字符串;
• response_mode:设为"streaming"才能启用SSE流式返回;设为"blocking"则等待完整响应,但会失去打字机效果;
• user:唯一标识当前用户,建议拼接"wx_" + wx.getStorageSync('openid'),避免会话混淆;
• conversation_id:首次对话留空字符串,后续续聊需传入上一轮返回的conversation_id值;
由于微信的大热,为了更好的方便使用微信的用户查询一些信息,这篇文章是入门级的微信公众平台开发教程,需要的朋友可以参考下 这篇入门教程将引导你完成如下任务: 创建百度云平台应用启用微信公众平台开发模式获取订阅、文字、图片、语音、视频消息回复文本、图文及音乐消息程序开发
• files:如需图文问答,此处填入文件ID数组,格式为["file-xxx"],纯文本对话可省略该字段。
用wx.request发起流式请求并监听SSE事件
第一步:设置header中Content-Type为application/json,Authorization为Bearer {你的API密钥};
第二步:将请求method设为POST,data为上一步组装好的JSON对象;
第三步:关键操作——必须将dataType设为"text",否则微信会尝试自动JSON解析导致流中断;
第四步:在success回调中,对res.data按行分割(res.data.split('\n')),过滤掉空行和event:、id:等非data:前缀行,提取每条data: {...}中的JSON内容;
第五步:对每个有效data块调用JSON.parse(),检查event字段:若为"message",取answer字段追加到消息列表;若为"message_end",说明本轮回复结束,可保存conversation_id供下次使用。
处理流式响应中的增量文本渲染
方法一:用setData高频更新messages数组最后一项的content字段——但微信setData有频率限制,每秒不超过10次,易卡顿;
方法二(推荐):用String.prototype.concat在内存中拼接增量文本,仅在收到message_end事件或间隔300ms后触发一次setData,避免界面抖动;
方法三:若需显示“AI正在输入”状态,在sendMessage函数开头就向messages推入一条{type:'ai', content:''}占位消息,并记录其索引,后续所有增量内容都更新该索引项。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!









