package cn.huge.module.ai;
|
|
import cn.huge.base.common.bo.R;
|
import cn.huge.base.common.utils.HttpClientUtils;
|
import cn.huge.base.common.utils.ReturnFailUtils;
|
import cn.huge.base.common.utils.ReturnSucUtils;
|
import cn.huge.module.ai.domain.AiBodyDto;
|
import cn.huge.module.ai.domain.AiRequestVo;
|
import cn.huge.module.sy.domain.po.SyTimeLimit;
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.net.http.HttpClient;
|
import java.util.HashMap;
|
import java.util.Map;
|
|
@RestController
|
@RequestMapping("/api/web/ai/chat")
|
@Slf4j
|
public class AiChatController {
|
|
private String url = "http://10.202.1.102:9002/";
|
|
@PostMapping("/risk")
|
public R<String> risk(@RequestBody AiRequestVo aiRequestVo) {
|
String postUrl = url + "v1/workflows/run";
|
initHead("Bearer app-8ylvZOHf2fOgTGfe28MYtHDD");
|
String s = "";
|
try {
|
s = HttpClientUtils.httpPostRaw(postUrl, JSON.toJSONString(aiRequestVo), initHead("Bearer app-8ylvZOHf2fOgTGfe28MYtHDD"), "utf-8");
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
JSONObject object = JSONObject.parseObject(s);
|
if (object != null) {
|
JSONObject data = object.getJSONObject("data");
|
if (data != null) {
|
JSONObject outputs = data.getJSONObject("outputs");
|
if (outputs != null) {
|
JSONObject body = outputs.getJSONObject("body");
|
if (body != null) {
|
return R.ok(body.getJSONObject("data").getString("is_risk_ai"));
|
}
|
}
|
}
|
}
|
log.info("xsd:{}", object);
|
return R.ok("0");
|
}
|
|
@PostMapping("/chat")
|
public R<AiBodyDto> chat(@RequestBody AiRequestVo aiRequestVo) {
|
String postUrl = url + "v1/chat-messages";
|
String s = "";
|
AiBodyDto aiBodyDto = new AiBodyDto();
|
try {
|
s = HttpClientUtils.httpPostRaw(postUrl, JSON.toJSONString(aiRequestVo), initHead("Bearer app-8naZjGyj8a129EuUP2Jb6n7T"), "utf-8");
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
JSONObject object = JSONObject.parseObject(s);
|
if (object != null) {
|
String conversation_id = object.getString("conversation_id");
|
String answer = object.getString("answer");
|
aiBodyDto.setAnswer(answer);
|
aiBodyDto.setConversationId(conversation_id);
|
}
|
log.info("xsd:{}", aiBodyDto);
|
return R.ok(aiBodyDto);
|
}
|
|
@PostMapping("/strategy")
|
public R<AiBodyDto> strategy(@RequestBody AiRequestVo aiRequestVo) {
|
String postUrl = url + "v1/workflows/run";
|
String s = "";
|
AiBodyDto aiBodyDto = new AiBodyDto();
|
try {
|
s = HttpClientUtils.httpPostRaw(postUrl, JSON.toJSONString(aiRequestVo), initHead("Bearer app-WMriHFsAozx0FECkopW2Z6X1"), "utf-8");
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
JSONObject object = JSONObject.parseObject(s);
|
if (object != null) {
|
JSONObject data = object.getJSONObject("data");
|
if (data != null) {
|
JSONObject outputs = data.getJSONObject("outputs");
|
if (outputs != null) {
|
String text = outputs.getString("text");
|
aiBodyDto.setAnswer(text);
|
}
|
}
|
}
|
log.info("xsd:{}", aiBodyDto);
|
return R.ok(aiBodyDto);
|
}
|
|
private Map<String, String> initHead(String token) {
|
Map<String, String> head = new HashMap<>();
|
head.put("Content-Type", "application/json");
|
head.put("Authorization", token);
|
return head;
|
}
|
}
|