java使用百度UNIT
2021-01-25 22:16
标签:var document append 地址 输入流 object 遍历 fileutil 下载 因为网上不太有java的教学所以写一下以便以后用到或帮助大家一起理解 第一步是注册机器人,官网:https://ai.baidu.com/unit/home。注册和测试技能官网都有,就不多做介绍。 1.AuthService 其中clientId和clientSecret为你注册机器人后获得的API Key / Secret Key。 2.UnitService 一些其他工具类在注释中可以下载。因为是单论对话所以我session_id就设置为空了,content就是我们用户输入的话了。params是要传上去的数据内容是json字符串,我写的是一些必要的属性(talkUrl可以是机器人也可以是技能api,因此params也会相应不同)。然后我只传了say,也就是机器人回的话,因为偷懒。。。 获取前端传的msg并传回机器人的say ajax调用并显示 大概就这些啦 java使用百度UNIT 标签:var document append 地址 输入流 object 遍历 fileutil 下载 原文地址:https://www.cnblogs.com/nirvanaInSilence/p/12858447.html工具类:
package com.ssx.robot.baidu;
import org.springframework.boot.configurationprocessor.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import java.util.Map;
/**
* 获取token类
*/
public class AuthService {
/**
* 获取权限token
* @return 返回示例:
* {
* "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",
* "expires_in": 2592000
* }
*/
public static String getAuth() {
// 官网获取的 API Key 更新为你注册的
String clientId = "";
// 官网获取的 Secret Key 更新为你注册的
String clientSecret = "";
return getAuth(clientId, clientSecret);
}
/**
* 获取API访问token
* 该token有一定的有效期,需要自行管理,当失效时需重新获取.
* @param ak - 百度云官网获取的 API Key
* @param sk - 百度云官网获取的 Securet Key
* @return assess_token 示例:
* "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"
*/
public static String getAuth(String ak, String sk) {
// 获取token地址
String authHost = "https://aip.baidubce.com/oauth/2.0/token?";
String getAccessTokenUrl = authHost
// 1. grant_type为固定参数
+ "grant_type=client_credentials"
// 2. 官网获取的 API Key
+ "&client_id=" + ak
// 3. 官网获取的 Secret Key
+ "&client_secret=" + sk;
try {
URL realUrl = new URL(getAccessTokenUrl);
// 打开和URL之间的连接
HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
connection.setRequestMethod("GET");
connection.connect();
// 获取所有响应头字段
Map
package com.ssx.robot.baidu;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
/**
* 重要提示代码中所需工具类
* FileUtil,Base64Util,HttpUtil,GsonUtils请从
* https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72
* https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2
* https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3
* https://ai.baidu.com/file/470B3ACCA3FE43788B5A963BF0B625F3
* 下载
*/
public class UnitService {
/*sessionid和msg用户的话*/
public static Map
控制类:
@RequestMapping("/unit")
public void unitchat(HttpServletRequest request, HttpServletResponse response) throws Exception {
//防乱码
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
JSONObject data = new JSONObject();
Gson gson = new Gson();
String msg = request.getParameter("msg");
//调用unit分析语义
Map
前端:
$.ajax({
url: _ctx + "/unit",
data: {
"msg":txti
},
type: "post",
dataType: "json",
async: true,
success: function (data) {
var say = JSON.parse(data.say);
$(‘#sended‘).append(‘