|
|
|
@ -6,6 +6,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; |
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper; |
|
|
|
import com.google.gson.Gson; |
|
|
|
|
|
|
|
import com.inspect.simulator.domain.assistant.*; |
|
|
|
import com.inspect.simulator.domain.bigmodelr.*; |
|
|
|
import com.inspect.simulator.service.ModelService; |
|
|
|
import okhttp3.*; |
|
|
|
@ -127,6 +128,114 @@ public class ModelServiceImpl implements ModelService { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//智能体服务接口(语义大模型小助手) |
|
|
|
public String intelligentAssistant(Session session) { |
|
|
|
|
|
|
|
String answer = ""; |
|
|
|
try { |
|
|
|
// 构建请求JSON |
|
|
|
Assistant request = buildAssistantBody(); |
|
|
|
// 发送请求并获取响应 |
|
|
|
AssistantResponse response = assistantResponse(request); |
|
|
|
String sessionId = response.getData().getSessionId(); |
|
|
|
System.out.println("会话sessionId:" + sessionId); |
|
|
|
|
|
|
|
if (StringUtils.isNotEmpty(sessionId)) { |
|
|
|
//调用智能体会话 |
|
|
|
Session sessionRequest = new Session(); |
|
|
|
sessionRequest.setText(session.getText()); |
|
|
|
sessionRequest.setSessionId(sessionId); |
|
|
|
Session sessionBody = buildSessionBody(sessionRequest); |
|
|
|
|
|
|
|
SessionResponse sessionResponse = sessionResponse(sessionBody); |
|
|
|
Answer answerReturn = new Gson().fromJson(sessionResponse.getData().getAnswer(), Answer.class); |
|
|
|
answer=answerReturn.getOutput(); |
|
|
|
System.out.println("智能体服务API此次会话回复内容: " + answerReturn.getOutput()); |
|
|
|
} |
|
|
|
|
|
|
|
return answer; |
|
|
|
} catch (IOException e) { |
|
|
|
} |
|
|
|
return "请求处理失败"; |
|
|
|
} |
|
|
|
|
|
|
|
private Assistant buildAssistantBody() { |
|
|
|
Assistant assistantRequest = new Assistant(); |
|
|
|
assistantRequest.setAgentId("61e44de3-f6a0-4f3c-ac7e-8cf9941e8ff0"); |
|
|
|
// assistantRequest.setAgentVersion("v1"); |
|
|
|
return assistantRequest; |
|
|
|
} |
|
|
|
|
|
|
|
private AssistantResponse assistantResponse(Assistant request) throws IOException { |
|
|
|
String requestBody; |
|
|
|
try { |
|
|
|
requestBody = objectMapper.writeValueAsString(request); |
|
|
|
} catch (JsonProcessingException e) { |
|
|
|
throw new IOException("请求体序列化失败", e); |
|
|
|
} |
|
|
|
|
|
|
|
Request httpRequest = new Request.Builder() |
|
|
|
.url("http://25.80.45.92:18063/lmp-cloud-ias-server/api/session/create") |
|
|
|
.post(RequestBody.create(MediaType.parse("application/json"), requestBody)) |
|
|
|
.addHeader("Authorization", "Bearer 54c1ae2c5fd54afe85e74d6fe9161f7f") |
|
|
|
.addHeader("Content-Type", "application/json") |
|
|
|
.build(); |
|
|
|
|
|
|
|
try (Response response = httpClient.newCall(httpRequest).execute()) { |
|
|
|
if (!response.isSuccessful()) { |
|
|
|
String errorBody = response.body() != null ? response.body().string() : "无响应体"; |
|
|
|
throw new IOException(String.format("请求失败,状态码: %d,错误信息: %s", response.code(), errorBody)); |
|
|
|
} |
|
|
|
String responseBody = response.body().string(); |
|
|
|
System.out.println("智能体服务接口Api返回: " + responseBody); |
|
|
|
return objectMapper.readValue(responseBody, AssistantResponse.class); |
|
|
|
|
|
|
|
} catch (SocketTimeoutException e) { |
|
|
|
throw new IOException("请求超时,请检查网络连接或增加超时时间", e); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Session buildSessionBody(Session session) { |
|
|
|
Session sessionRequest = new Session(); |
|
|
|
sessionRequest.setAgentId("61e44de3-f6a0-4f3c-ac7e-8cf9941e8ff0"); |
|
|
|
// sessionRequest.setAgentVersion("v1"); |
|
|
|
sessionRequest.setSessionId(session.getSessionId()); |
|
|
|
sessionRequest.setText(session.getText()); |
|
|
|
sessionRequest.setStream(false); |
|
|
|
return sessionRequest; |
|
|
|
} |
|
|
|
|
|
|
|
private SessionResponse sessionResponse(Session session) throws IOException { |
|
|
|
String requestBody; |
|
|
|
try { |
|
|
|
requestBody = objectMapper.writeValueAsString(session); |
|
|
|
} catch (JsonProcessingException e) { |
|
|
|
throw new IOException("请求体序列化失败", e); |
|
|
|
} |
|
|
|
|
|
|
|
Request httpRequest = new Request.Builder() |
|
|
|
.url("http://25.80.45.92:18063/lmp-cloud-ias-server/api/session/run") |
|
|
|
.post(RequestBody.create(MediaType.parse("application/json"), requestBody)) |
|
|
|
.addHeader("Authorization", "Bearer 54c1ae2c5fd54afe85e74d6fe9161f7f") |
|
|
|
.addHeader("Content-Type", "application/json") |
|
|
|
.build(); |
|
|
|
|
|
|
|
try (Response response = httpClient.newCall(httpRequest).execute()) { |
|
|
|
if (!response.isSuccessful()) { |
|
|
|
String errorBody = response.body() != null ? response.body().string() : "无响应体"; |
|
|
|
throw new IOException(String.format("请求失败,状态码: %d,错误信息: %s", response.code(), errorBody)); |
|
|
|
} |
|
|
|
String responseBody = response.body().string(); |
|
|
|
System.out.println("会话api响应内容: " + responseBody); |
|
|
|
return objectMapper.readValue(responseBody, SessionResponse.class); |
|
|
|
|
|
|
|
} catch (SocketTimeoutException e) { |
|
|
|
throw new IOException("请求超时,请检查网络连接或增加超时时间", e); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|