欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

一步一步,亲手打造Java-web自动化机器人(第一部分:入门篇)

最编程 2024-07-22 18:40:51
...
package com.withouther.robot.rainingrobot.util.ai.dialogue; import cn.hutool.http.HttpStatus; import cn.hutool.setting.dialect.Props; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.aliyuncs.CommonRequest; import com.aliyuncs.CommonResponse; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.http.MethodType; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.IClientProfile; import com.withouther.robot.rainingrobot.util.ai.dialogue.model.BotResult; import lombok.extern.slf4j.Slf4j; import java.util.HashMap; import java.util.Map; /** * @ClassName BeeBot * @Auther: tzq * @Date: 2020/9/21 14:00 * @Description: */ @Slf4j public class BeeBot implements DialogueBot { private static DefaultAcsClient client = null; public BeeBot() { init(); } public void init(){ Props robotPro = new Props("robot.properties"); String accountAccessAK = robotPro.getStr("ali.accountAccessAK"); String accountAccessSK = robotPro.getStr("ali.accountAccessSK"); String popRegion = robotPro.getStr("ali.popRegion"); String popProduct = robotPro.getStr("ali.popProduct"); String popDomain = robotPro.getStr("ali.popDomain"); if (client == null) { DefaultProfile.addEndpoint(popRegion, popProduct, popDomain); IClientProfile profile = DefaultProfile.getProfile(popRegion, accountAccessAK, accountAccessSK); client = new DefaultAcsClient(profile); } } @Override public BotResult getDialogue(Map<String, Object> paramMap) throws ClientException { //固定入参 CommonRequest commonRequest = new CommonRequest(); commonRequest.setSysProduct("Chatbot"); commonRequest.setSysMethod(MethodType.GET); //根据API会有变化 commonRequest.setSysAction("Chat"); commonRequest.setSysVersion("2017-10-11"); commonRequest.putQueryParameter("Utterance", (String) paramMap.get("text")); String InstanceId = paramMap.get("InstanceId") == null ? "chatbot-cn-q6YfyVfq6e" : (String) paramMap.get("InstanceId"); commonRequest.putQueryParameter("InstanceId", InstanceId); CommonResponse commonResponse = post(commonRequest); BotResult botResult = new BotResult(); botResult.setSuccess(commonResponse.getHttpStatus() == HttpStatus.HTTP_OK); JSONObject data = JSON.parseObject(commonResponse.getData()); JSONArray messages = data.getJSONArray("Messages"); JSONObject textJson = messages.getJSONObject(0).getJSONObject("Text"); botResult.setText(textJson.getString("Content")); botResult.setRequestId(data.getString("RequestId")); botResult.setMessage(textJson.getString("AnswerSource")); return botResult; } public CommonResponse post(CommonRequest commonRequest) throws ClientException { CommonResponse commonResponse = client.getCommonResponse(commonRequest); System.out.println(commonResponse.getData()); log.debug("dialogueRequest: {}", commonRequest); log.debug("dialogueResponse: {}", commonResponse); return commonResponse; } }