微信小程序实现图林机器人聊天和百度AI语音识别的简单人工客服

用微信小程序实现简单的人工客服

最近在做软件工程的课程设计,选择性的做了微信小程序的简单的人工客服。在这里对该课程设计的原理和实现进行一个讲解,也算做一个总结和笔记,方便自己以后查看、复习和帮助大家的学习。


  • 工具:微信开发者工具、Eclipse、Tomcat、图林机器人V2版、百度AI语音识别
  • 实现原理与过程
    (1)微信小程序获取用户输入的文字、图片或语音消息,发送给Tomcat服务器;
    (2)Tomcat服务器接收到消息后交给对应的servel进行处理。因为微信小程序发送文字消息可以使用GET方式,发送文件必须使用POST方式,所以只用一个Sevlet就可以进行处理。
    (3)Servlet获取GET方式的请求,则调用doGet方法,获取请求携带的用户消息,发送给图林机器人,得到图林机器人的随机回复消息后,返回给微信小程序,显示给用户;
    (4)Servlet获取POST方式的请求,则调用doPost方法,获取微信小程序上传的文件消息,先保存在本地的临时文件夹中,在判断是图片消息还是语音消息。如果是图片消息,仅保存在本地,不做任何处理,只返回给微信小程序一个文字回复,如:“图片我看不懂,你自己看”;如果是语音消息,则发送给百度AI进行语音识别,识别成功,在将结果发送给图林机器人,取得图林机器人的回复后,返回给微信小程序,显示给用户;识别失败,则返回给微信小程序一个文字回复,如:“太吵了,听不清楚。。”;

  • 实现过程

(1)服务器实现:
- 项目结构:
chat
- 导入jar包到lib文件夹下:
lib

- 新建web项目,创建一个Servelt(图中的MyServlet):

servlet部分

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import java.util.UUID;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet{
	private static final long serialVersionUID = 1L;
	
	private static final String URL = "http://openapi.tuling123.com/openapi/api/v2";

	private Tuling tuling = new Tuling();
	
	//进行文本聊天
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		String reqMes = request.getParameter("reqMes").toString().trim();
		
//		System.out.println(reqMes);
		
		//将用户发送过来的消息转换成JSON格式
		String reqJson = tuling.getReqJson(reqMes);
		//发送消息到图林机器人,获取图林机器人的回复
		String sendPost = tuling.sendPost(URL, reqJson);
		//获取图林机器人回复的JSON消息中的主要回复内容
		String string = tuling.getResultMeg("[" + sendPost +"]");
		
		System.out.println("get提问: "+reqMes);
		
		System.out.println("回复: "+string);
		
		//返回值给小程序
		//将图林回复的消息string返回给小程序
		PrintWriter out = response.getWriter();
		out.write(string);
		out.flush();
		o
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值