当用户在小程序内发起对话,你是在后台抓紧安排人工回复吗?因为等待回复时间过长,用户产生不满并弃用了你的小程序。html
“秒回”是对话的基本要求,及时回复才能给到用户尊重和被重视感。然而,受人力成本的因素影响,专业客服每每须要1对N,在对话需求激增的状况下,回复并不高效。其实,用户发起对话,需求大概分为两种:服务和咨询。当用户只是要获取固定服务的渠道,能够经过AI机器人解答用户的问题。node
然而目前的状况是,AI对话能力并非每一个小程序开发团队都能自行开发,因此微信AI团队推出了「微信对话开放平台」,向有对话或客服需求的我的、企业或组织开放微信的对话AI能力,帮助他们在小程序配置对话AI机器人。json
「微信对话开放平台」是在微信智言与微信智聆两大技术支持下推出的,可以支持文字甚至语音进行AI对话。它既能帮助没有开发能力的开发者快速搭建客服机器人,又为有开发能力的第三方开发者提供API接口, 快速获取对话服务能力。小程序
这些可接入的对话技能不只包括预置的基础服务技能,如天气、新闻或百科等,还能自定义配置技能,让开发者可以根据场景定制对话或客服技能。微信
「微信对话开放平台」可应用于客服场景,经过发送指令以获取特定服务或信息,好比:app
获取快递信息:在电商平台上,无需等待真人客服,用户只要在聊天界面上发送“快递”等相关文字,便可得知商品所寄的快递。
「微信对话开放平台」也可应用于非客服场景,承担社交功能,培养用户的情感依赖,好比:ide
解答今天吃什么:在餐饮平台上,经过机器人回答纠结吃什么的用户关于“吃什么”的问题,能够为他们提供建议,并适当地推荐对应的菜品。
① 登陆微信对话开放平台配置机器人学习
登陆微信对话开放平台(https://openai.weixin.qq.com),点击开始使用,建立机器人,按规定填写“机器人名称”,“机器人ID”和“验证码”。ui
② 建立机器人技能this
能够建立自定义对话技能或者选择系统对话技能,进行调试和发布。
关于自定义技能,要根据本身的场景需求进行建立和配置,具体操做详见文档:
https://openai.weixin.qq.com/...
微信对话开放平台小程序插件,提供两种调用方式,一种是有UI组件式调用,另外一种是无UI功能接口调用。
① 添加插件
登陆小程序,在“设置-第三方服务-插件管理”处搜索并添加 openaiwidget 插件
② 插件配置
在小程序 app.json 中配置, 小程序插件id是 wx8c631f7e9f2465e1 , 当前稳定版本是1.0.1
{ "pages": [ "pages/index/index" ], "plugins": { "chatbot": { "version": "1.0.1", "provider": "wx8c631f7e9f2465e1" } }, "requiredBackgroundModes": [ "audio" ], "sitemapLocation": "sitemap.json" }
当使用有UI版本时,须要额外使用WechatSI组件, 只使用接口不使用UI时,使用上面的配置就能够了
{ "pages": [ "pages/index/index", "pages/newsPage/newsPage", "pages/common/common" ], "plugins": { "myPlugin": { "version": "dev", "provider": "wx8c631f7e9f2465e1" }, "WechatSI": { "version": "0.3.1", "provider": "wx069ba97219f66d99" } }, "requiredBackgroundModes": ["audio"], "sitemapLocation": "sitemap.json" }
③ 获取得到插件所需appid
在微信对话开放平台上,进入“设置-服务接入”得到对应的小程序ID
④ 无UI, 直接调用插件接口
• 组件初始化
var plugin = requirePlugin("chatbot"); App({ onLaunch: function() { console.log(plugin, "+++"); plugin.init({ appid: "P5Ot9PHJDechCYqDFAW1AiK6OtG3Ja", //小程序示例帐户,仅供学习和参考 success: () => {}, fail: error => {} }); } });
• 发送query
plugin.send({ query: "你好", success: res => { console.log(res); }, fail: error => {} });
• 返回结果
{ "ans_node_id": 6666, "ans_node_name": "天气服务", "answer": "北京今天小雨,温度18到29度,当前温度27度,空气质量轻度污染,今天有雨,略微偏热,注意衣物变化。", "answer_open": 1, "answer_type": "text", "article": "", "bid_stat": { "curr_time": "20190826-16:34:56", "err_msg": "", "latest_time": "20190826-16:34:56", "latest_valid": true, "up_ret": 0 }, "confidence": 1, "create_time": "1566810973035", "dialog_status": "COMPLETE", "from_user_name": "o9U-85tEZToQxIF8ht6o-KkagxO0", "intent_confirm_status": "", "list_options": false, "msg": [ { "ans_node_id": 6666, "ans_node_name": "天气服务", "article": "", "confidence": 1, "content": "北京今天小雨,温度18到29度,当前温度27度,空气质量轻度污染,今天有雨,略微偏热,注意衣物变化。", "debug_info": "", "list_options": false, "msg_type": "text", "resp_title": "天气服务", "status": "CONTEXT_FAQ" } ], "ret": 0, "skill_id": "", "skill_type": "", "slot_info": [ { "date": "{\"type\":\"DT_ORI\",\"date_ori\":\"今天\",\"date\":\"2019-08-26\",\"date_lunar\":\"2019-08-26\",\"week\":\"1\",\"slot_content_type\":\"2\",\"modify_times\":\"0\"}" }, { "from_loc": "{\"type\":\"LOC_CHINA_CITY\",\"country\":\"中国\",\"city\":\"北京\",\"city_simple\":\"北京\",\"loc_ori\":\"北京\",\"slot_content_type\":\"2\",\"modify_times\":\"1\"}" } ], "slots_info": [ { "confirm_status": "NONE", "end": 0, "entity_type": "", "norm": "2019-08-26", "norm_detail": "", "slot_name": "date", "slot_value": "{\"type\":\"DT_ORI\",\"date_ori\":\"今天\",\"date\":\"2019-08-26\",\"date_lunar\":\"2019-08-26\",\"week\":\"1\",\"slot_content_type\":\"2\",\"modify_times\":\"0\"}", "start": 0 }, { "confirm_status": "NONE", "end": 6, "entity_type": "LOC_CHINA_CITY", "norm": "{\"type\":\"LOC_CHINA_CITY\",\"country\":\"中国\",\"city\":\"北京\",\"city_simple\":\"北京\",\"loc_ori\":\"北京\"}", "norm_detail": "", "slot_name": "from_loc", "slot_value": "{\"type\":\"LOC_CHINA_CITY\",\"country\":\"中国\",\"city\":\"北京\",\"city_simple\":\"北京\",\"loc_ori\":\"北京\",\"slot_content_type\":\"2\",\"modify_times\":\"1\"}", "start": 0 } ], "status": "CONTEXT_FAQ", "title": "天气服务", "to_user_name": "10808" }
⑤ 有UI,直接使用标记组件,无需接口调用
• 组件初始化
var plugin = requirePlugin("chatbot"); App({ onLaunch: function() { console.log(plugin, "+++"); plugin.init({ appid: "P5Ot9PHJDechCYqDFAW1AiK6OtG3Ja", //小程序示例帐户,仅供学习和参考 success: () => {}, fail: error => {} }); } });
• 在组件内进行配置
在页面的配置json内进行配置,好比 pages/index/index.json
{ "usingComponents": { "chat": "plugin://chatbot/chat" } }
• 使用组件
<view> <chat bind:backHome="goBackHome" /> </view>
// goBackHome回调 返回上一级页面 goBackHome: function () { wx.navigateBack({ delta: 1 }) }
• 每次返回结构后,触发 queryCallback
<view> <chat bind:queryCallback="getQueryCallback" bind:backHome="goBackHome" /> </view>
// getQueryCallback回调 返回query与结果 getQueryCallback: function (e) { var listData = this.data.listData listData.push(e.detail) if (listData.length === 10) { wx.navigateTo({ url: '../newsPage/newsPage', }) } }, // goBackHome回调 返回上一级页面 goBackHome: function () { wx.navigateBack({ delta: 1 }) }
• 初始化配置项
plugin.init({ ...options appid: "PWj9xdSdGU3PPnqUUrTf7uGgQ9Jvn7", success: () => {}, fail: error => {} guideList: ["您好"] });
options 说明:
小程序接入具体操做详见文档:
https://mp.weixin.qq.com/wxop...
扫码体验:微信对话开放平台小程序插件 应用示例
P.S.咱们最近新建了个WeGeek技术交流群,欢迎小程序开发同好者进群交流,调戏勾搭群里的云开发大神~扫码添加Wegeek小助手便可获取进群方式。