微信对话开放平台实战——打造企业智能客服机器人,技能多,免费

微信对话开放平台实战——打造企业智能客服机器人,技能多,免费

简介

官网:https://openai.weixin.qq.com/

微信对话开放平台是以对话交互为核心, 为有客服需求的个人、企业和组织提供智能业务服务与用户管理能力的技能配置平台, 技能开发者可利用我们提供的工具自主完成客服机器人的搭建.

技能商店

共支持23种技能:

  • 聊电影
  • 末日生存游戏
  • 交通
  • 垃圾分类
  • 菜谱
  • 大学排名
  • 翻译
  • 快递等
  • ……

在这里插入图片描述

微信公众号

建议关注微信官方公众号进一步体验了解:微信对话开放平台
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

接口开放

支持HTTP接口,可以利用微信对话开放平台让自己的应用支持FAQ问答的能力。
请求:

{
    
    
	"signature":"",
	"query":"物流询价", # 用户对话的消息
	"env":"debug"     # 默认是online, debug是测试环境,online是线上环境
}

响应:

字段 类型 描述
answer string 回答
answer_type string 回答类型:text,music,news
msg array 回答详细信息
from_user_name string 发起query的用户,对应签名接口的userid
to_user_name string 接受query的机器人
status string 机器人回复的状态, 可能的数值:FAQ、NOMATCH、CONTEXT_FAQ、GENERAL_FAQ

在这里插入图片描述
官方文档:
https://developers.weixin.qq.com/doc/aispeech/platform/donamic.html

实战

需求分析

场景1(多轮交互,用户不断补充完整信息):

  1. 用户输入“物流询价”
  2. 机器人反问起点
  3. 用户输入起点,如上海
  4. 机器人反问终点
  5. 用户输入终点,如杭州
  6. 机器人返回 用户输入的起点和终点 并返回,如上海到杭州运费50元一吨。

在这里插入图片描述
场景2(一问一答,用户直接说了起点和终点):

  1. 上海到杭州运费
  2. 机器人回答:上海到杭州运费50元一吨。

在这里插入图片描述
最后,我们根据用户输入的 起点终点 去查询计算价格,也就初步实现了机器人回答“XX 到 XX 运费”的问题了。

创建机器人

下面演示如何创建微信机器人并且配置,能支持上面2种场景,也可参照官方的文档:https://developers.weixin.qq.com/doc/aispeech/platform/booktickets.html

  1. 扫码登录,https://openai.weixin.qq.com/login
  2. 新建机器人
    在这里插入图片描述
  3. 输入机器人名称、ID和验证码后点击确定。
  4. 点击高级技能。
  • 普通技能(一问一答):创建问答型的技能,通过Q(用户问法)和A(机器人回答)的配置,可以实现简单的用户与机器人的对话。
  • 高级技能(多轮交互):在问答型技能的基础上,增加槽位、API(接口)调用等高级功能,开发者可以通过配置,来实现用户查询信息、问题搜索甚至简单的游戏功能。
  1. 点击“创建技能”,输入“物流查询”后点击确定。
    在这里插入图片描述
  2. 此时进入到意图管理界面。
    在这里插入图片描述
  3. 点击新建意图,输入“物流查询”。PS:意图,可以理解为一个问法。比如上面2种场景,我就理解成2种问法。
    在这里插入图片描述
  • 补充用户问法:多论交互里面,我们有一个条件,比如用户说了物流询价,我们反问起点和终点,然后返回答案。所以这里就是触发条件或者匹配规则的意思。
  • 语义槽:语义槽是用户说法中包含的关键词,它可以帮助系统准确识别意图。如“今天北京天气怎么样”,语义槽就是#时间#、#地址#和#天气#,取值为“今天”、“北京”和“天气”,语义槽和词典一般会同时使用,语义槽通常用来指代词典。一个语义槽可以同时绑定多个词典,一个词典也可以与不同的语义槽相关联。这里“上海到杭州运费多少”,“上海”和“杭州”就是2个语义槽,是用户输入的,可变的。
  • 机器人回答:决定机器人的下一步要做什么,是直接返回答案,还是继续追问后再返回答案?由于“上海到杭州运费多少”需要用户输入起点和终点,所以我们需要追问一次之后才能返回答案。
  1. 添加补充用户问法“物流查询”,后点击添加。
    在这里插入图片描述
    9.设置槽位。点击"新增语义槽",然后选择“出发地”。
    在这里插入图片描述
    在这里插入图片描述

  2. 把目的地的“立即追问”关闭,这样当用户问“物流询价”的时候,系统就会随机从出发地追问话术里面选一个反问用户了。如果关闭出发地,则会先问目的地。
    在这里插入图片描述

  3. 设置词典,选择“sys.省份”“sys.城市”"sys.POI地点"后点击确定。这样,我们就能支持 省市区地点 到 省市区地点 的运费的问题的匹配了。PS:出发地和目的地都需配置词典,否则会提示“未配置机器人回复”
    在这里插入图片描述
    在这里插入图片描述

  4. 设置反问终点。点击“语义槽信息追问”,点击“添加语义槽和追问话术”,选择“目的地”语义槽,点击“点击设置追问”,输入一个需要反问用户的问题后点击确定。
    在这里插入图片描述

  5. 设置答案,这里为了测试方便,先把答案写死(动态计算有2种方式,一是微信调用我们的HTTP接口、二是我们调用微信的接口,对结果做替换填充)。点击“直接回复结果”,然后点击“文本”,在下面答案框里面输入答案。这里如果需要返回用户问的起点和终点,可以点击语义槽,插入一个变量,后面会被替换的。
    在这里插入图片描述

  6. 保存配置

  7. 点击“机器人调试”。
    在这里插入图片描述

  8. 扩展问配置,如果用户问“查询物流”、“物流价格”、“运费”等我们也希望匹配怎么办?在“补充用户问法”通过语义表达式来匹配更多问法吧。具体参见:https://developers.weixin.qq.com/community/develop/article/doc/000c8c73fb869850a13aff00551c13
    在这里插入图片描述

  9. 用户直接问“上海到杭州运费”,怎么支持?新增一个意图(名称无所谓),然后在补充用户问法中设置问法规则即可。
    在这里插入图片描述

动态查询结果

方案

上面答案的价格是写死了的,实际应用中一般需要实时计算,比如用户输入起点和终点后,我们可能需要去数据库查一下这个路线的价格,然后再返回给前端。微信对话开放平台,给我们提供了2种方式:我们调用它的接口,或者它调用我们的接口。如果您是想在自己的公众号上使用,应该使用后者。企业应用一般都是前者,这里我们也只探讨前者如何实现。
在这里插入图片描述

方式二参考我的另一篇文章:

微信对话开放平台实战——回调函数和服务接口调用详解
微信通过调用自定义HTTP API,实现了二手房价实时查询的功能。

HTTP接口申请

参考官方智能对话的文档:https://developers.weixin.qq.com/doc/aispeech/platform/INTERFACEDOCUMENT.html

  1. 申请机器人的HTTP调用接口权限,依次点击1234。注意,每个机器人的开放接口是互相独立的。所以我们可以创建多个机器人,比如一个闲聊机器人、一个FAQ专业问答机器人,这样不会相互影响,问题被覆盖等。
    在这里插入图片描述
    在这里插入图片描述
  2. 获取signature接口。
  3. 调用智能对话接口,获取答案。这里省略了,具体见官方文档。

接口测试

第一步(物流询价)
在这里插入图片描述

"dialog_status": "START",

第二步(起点:上海):
在这里插入图片描述

"dialog_status": "CONTINUE",

第三步(终点:杭州西湖):
在这里插入图片描述

"dialog_status": "COMPLETE",
"ans_node_name": "物流询价",
"answer": "上海到杭州西湖运费为:$(A_01)元一吨",
"slot_info": [
        {
    
    
            "_stoask_": "目的地"
        },
        {
    
    
            "_svtos_": ""
        },
        {
    
    
            "出发地": "上海"
        },
        {
    
    
            "目的地": "杭州西湖"
        }
    ],

到第三步返回答案的时候,能得到上述的一些关键信息。我们通过dialog_status判断是不是最后一问,然后通过ans_node_name知道问题是物流询价,通过$(A_01)得到占位,通过slot_info里面得到参数。就可以去数据库里面查询这个路线的价格,然后把答案替换一下返回给前端,就完成了动态查询的功能。

关于

推荐下自己的开源IM,纯Golang编写:

CoffeeChat:
https://github.com/xmcy0011/CoffeeChat
opensource im with server(go) and client(flutter+swift)

参考了TeamTalk、瓜子IM等知名项目,包含服务端(go)和客户端(flutter+swift),单聊和机器人(小微、图灵、思知)聊天功能已完成,目前正在研发群聊功能,欢迎对golang和跨平台开发flutter技术感兴趣的小伙伴Star加关注。

————————————————
版权声明:本文为CSDN博主「许非」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xmcy001122/article/details/105665732

猜你喜欢

转载自blog.csdn.net/xmcy001122/article/details/106209311
今日推荐