public class WenXinMsg {
private String role = "user";
private String content;
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
import java.util.List;
public class WenXinMsgReq {
private List<WenXinMsg> messages;
public List<WenXinMsg> getMessages() {
return messages;
}
public void setMessages(List<WenXinMsg> messages) {
this.messages = messages;
}
}
public class WenXinMsgRes {
private String result;
private Integer error_code;
private String error_msg;
public Integer getError_code() {
return error_code;
}
public void setError_code(Integer error_code) {
this.error_code = error_code;
}
public String getError_msg() {
return error_msg;
}
public void setError_msg(String error_msg) {
this.error_msg = error_msg;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
}
public class WenXinToken {
private String access_token;
public String getAccess_token() {
return access_token;
}
public void setAccess_token(String access_token) {
this.access_token = access_token;
}
}
import java.util.*;
@Component
public class WenXinUtil {
private String appID = "";
private String apiKey = "";
private String secretKey = "";
@Autowired
RestTemplateUtil restTemplateUtil;
public String aiChat(String input) {
System.out.println(input);
String tokenUrl = String.format("https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=%s&client_secret=%s&",apiKey,secretKey);
Map<String,String> mapHeader = new HashMap<>();
mapHeader.put("Content-Type","application/json");
mapHeader.put("Accept","application/json");
ResponseEntity<WenXinToken> tokenEntity = restTemplateUtil.post(tokenUrl,mapHeader, HttpEntity.EMPTY,WenXinToken.class);
if (tokenEntity != null) {
String accessToken = tokenEntity.getBody().getAccess_token();
String getChatUrl = String.format("https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/eb-instant?access_token=%s",accessToken);
WenXinMsg wenXinMsg = new WenXinMsg();
wenXinMsg.setContent(input);
WenXinMsgReq wenXinMsgReq = new WenXinMsgReq();
List<WenXinMsg> messages = new ArrayList<>();
messages.add(wenXinMsg);
wenXinMsgReq.setMessages(messages);
ResponseEntity<LinkedHashMap> wenXinMsgResResponse = restTemplateUtil.post(getChatUrl,mapHeader,wenXinMsgReq, LinkedHashMap.class);
if (wenXinMsgResResponse != null && wenXinMsgResResponse.getBody() != null) {
if (wenXinMsgResResponse.getBody() != null) {
System.out.println(wenXinMsgResResponse.getBody());
if (wenXinMsgResResponse.getBody().containsKey("error_code")) {
return wenXinMsgResResponse.getBody().get("error_msg").toString();
}
return wenXinMsgResResponse.getBody().get("result").toString();
}
else {
return "error";
}
//return wenXinMsgResResponse.getBody().getResult();
}
}
return "";
}
}
@RequestMapping("/wenxin")
@RestController
public class WenXinController {
@Autowired
WenXinUtil wenXinUtil;
@PostMapping("/chat")
public String introduce(@RequestBody String input) {
String aiMsg = wenXinUtil.aiChat(input);
return aiMsg;
}
}