|
|
|
@ -12,6 +12,7 @@ import com.hnac.gglm.bigmodel.interactive.service.IHznlmInvokeService;
|
|
|
|
|
import com.hnac.gglm.bigmodel.interactive.vo.AnswerVO; |
|
|
|
|
import com.hnac.gglm.bigmodel.manager.SessionRedisManager; |
|
|
|
|
import com.hnac.gglm.bigmodel.question.dto.QuestionDTO; |
|
|
|
|
import com.hnac.gglm.bigmodel.utils.MultipartFileToBase64Converter; |
|
|
|
|
import com.hnac.gglm.bigmodel.utils.RequestClientUtil; |
|
|
|
|
import com.hnac.gglm.bigmodel.websocket.constants.RedisKeyConstants; |
|
|
|
|
import com.hnac.gglm.bigmodel.websocket.sessionManager.InteractiveSessionManager; |
|
|
|
@ -19,12 +20,15 @@ import com.hnac.hzims.common.constant.CommonConstant;
|
|
|
|
|
import com.hnac.hzinfo.exception.HzServiceException; |
|
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
import org.springblade.core.oss.model.BladeFile; |
|
|
|
|
import org.springblade.core.tool.api.R; |
|
|
|
|
import org.springblade.core.tool.jackson.JsonUtil; |
|
|
|
|
import org.springblade.core.tool.utils.Func; |
|
|
|
|
import org.springblade.resource.feign.IOssClient; |
|
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
|
import org.springframework.data.redis.core.RedisTemplate; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
|
|
|
|
import java.util.HashMap; |
|
|
|
|
import java.util.List; |
|
|
|
@ -46,6 +50,7 @@ public class HznlmInvokeServiceImpl implements IHznlmInvokeService {
|
|
|
|
|
private final SessionRedisManager sessionRedisManager; |
|
|
|
|
private final IAuthClient authClient; |
|
|
|
|
private final RedisTemplate redisTemplate; |
|
|
|
|
private final IOssClient ossClient; |
|
|
|
|
|
|
|
|
|
@Value("${gglm.url}") |
|
|
|
|
private String gglmUrl; |
|
|
|
@ -55,8 +60,8 @@ public class HznlmInvokeServiceImpl implements IHznlmInvokeService {
|
|
|
|
|
Map<String,Object> params = new HashMap<>(); |
|
|
|
|
params.put("chat_id",sessionId); |
|
|
|
|
params.put("user_id", userId); |
|
|
|
|
params.put("q_id", UUID.randomUUID().toString()); |
|
|
|
|
params.put("query",question); |
|
|
|
|
params.put("q_id", UUID.randomUUID()); |
|
|
|
|
Map<String, String[]> authDataIds = this.getAuthDataIds(userId); |
|
|
|
|
params.putAll(authDataIds); |
|
|
|
|
RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getAssistantAsk(), params); |
|
|
|
@ -65,7 +70,9 @@ public class HznlmInvokeServiceImpl implements IHznlmInvokeService {
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void ask(QuestionDTO question) { |
|
|
|
|
RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getAssistantAsk(), JSON.toJSONString(question)); |
|
|
|
|
Map<String, Object> params = Func.toMap(question); |
|
|
|
|
params.put("q_id", UUID.randomUUID().toString()); |
|
|
|
|
RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getAssistantAsk(), params); |
|
|
|
|
sessionRedisManager.addSessionId(question.getChatId()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -74,8 +81,8 @@ public class HznlmInvokeServiceImpl implements IHznlmInvokeService {
|
|
|
|
|
Map<String,Object> params = new HashMap<>(); |
|
|
|
|
params.put("chat_id",sessionId); |
|
|
|
|
params.put("user_id", userId); |
|
|
|
|
params.put("q_id", UUID.randomUUID().toString()); |
|
|
|
|
params.put("extra",extra); |
|
|
|
|
params.put("q_id", UUID.randomUUID()); |
|
|
|
|
Map<String, String[]> authDataIds = this.getAuthDataIds(userId); |
|
|
|
|
params.putAll(authDataIds); |
|
|
|
|
log.info("调用大模型接口:{},传参为:{}",gglmUrl + bigModelInvokeApi.getAssistantSpecialAsk(),JSON.toJSONString(params)); |
|
|
|
@ -85,9 +92,9 @@ public class HznlmInvokeServiceImpl implements IHznlmInvokeService {
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void specialAsk(QuestionDTO question) { |
|
|
|
|
Map<String, Object> questionMap = JsonUtil.toMap(JSON.toJSONString(question)); |
|
|
|
|
questionMap.put("q_id", UUID.randomUUID()); |
|
|
|
|
RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getAssistantSpecialAsk(), JSON.toJSONString(questionMap)); |
|
|
|
|
Map<String, Object> params = Func.toMap(question); |
|
|
|
|
params.put("q_id", UUID.randomUUID().toString()); |
|
|
|
|
RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getAssistantSpecialAsk(), params); |
|
|
|
|
sessionRedisManager.addSessionId(question.getChatId()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -97,8 +104,8 @@ public class HznlmInvokeServiceImpl implements IHznlmInvokeService {
|
|
|
|
|
params.put("chat_id", sessionId); |
|
|
|
|
params.put("user_id", userId); |
|
|
|
|
params.put("query", question); |
|
|
|
|
params.put("q_id", UUID.randomUUID().toString()); |
|
|
|
|
params.put("knowledge", knowledge); |
|
|
|
|
params.put("q_id", UUID.randomUUID()); |
|
|
|
|
Map<String, String[]> authDataIds = this.getAuthDataIds(userId); |
|
|
|
|
params.putAll(authDataIds); |
|
|
|
|
RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getAssistantKnowledgeAsk(), params); |
|
|
|
@ -107,17 +114,17 @@ public class HznlmInvokeServiceImpl implements IHznlmInvokeService {
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void knowledgeAsk(QuestionDTO question) { |
|
|
|
|
Map<String, Object> questionMap = JsonUtil.toMap(JSON.toJSONString(question)); |
|
|
|
|
questionMap.put("q_id", UUID.randomUUID()); |
|
|
|
|
RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getAssistantKnowledgeAsk(), JSON.toJSONString(questionMap)); |
|
|
|
|
Map<String, Object> params = Func.toMap(question); |
|
|
|
|
params.put("q_id", UUID.randomUUID().toString()); |
|
|
|
|
RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getAssistantKnowledgeAsk(), params); |
|
|
|
|
sessionRedisManager.addSessionId(question.getChatId()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void analyseAsk(QuestionDTO question) { |
|
|
|
|
Map<String, Object> questionMap = JsonUtil.toMap(JSON.toJSONString(question)); |
|
|
|
|
questionMap.put("q_id", UUID.randomUUID()); |
|
|
|
|
RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getAssistantAnalyseAsk(), JSON.toJSONString(questionMap)); |
|
|
|
|
Map<String, Object> params = Func.toMap(question); |
|
|
|
|
params.put("q_id", UUID.randomUUID().toString()); |
|
|
|
|
RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getAssistantAnalyseAsk(), params); |
|
|
|
|
sessionRedisManager.addSessionId(question.getChatId()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -172,6 +179,7 @@ public class HznlmInvokeServiceImpl implements IHznlmInvokeService {
|
|
|
|
|
params.put("user_id", CommonConstant.SYSTEM_USER.toString()); |
|
|
|
|
params.put("data", req.getAnalyseDTOS()); |
|
|
|
|
params.put("query", ""); |
|
|
|
|
params.put("q_id", UUID.randomUUID().toString()); |
|
|
|
|
RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getSmartReportGeneratePower(), params); |
|
|
|
|
// 将sessionId存入redis,拿到数据之后输入月报中
|
|
|
|
|
JSONObject report = new JSONObject(); |
|
|
|
@ -190,11 +198,31 @@ public class HznlmInvokeServiceImpl implements IHznlmInvokeService {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void identifyForm(String formStructure, MultipartFile file, String content, String chatId, Long userId) { |
|
|
|
|
// 若 file 不为空,则转换为base64编码格式字符串传给大模型
|
|
|
|
|
String pic = null; |
|
|
|
|
if(Func.isNotEmpty(file)) { |
|
|
|
|
pic = MultipartFileToBase64Converter.convertToBase64(file); |
|
|
|
|
} |
|
|
|
|
Map<String,Object> param = new HashMap<>(5); |
|
|
|
|
Map<String,Object> data = new HashMap<>(3); |
|
|
|
|
data.put("form",JSONObject.parseObject(formStructure)); |
|
|
|
|
data.put("pic", pic); |
|
|
|
|
data.put("content", content); |
|
|
|
|
param.put("chat_id", chatId); |
|
|
|
|
param.put("user_id", userId.toString()); |
|
|
|
|
param.put("query", ""); |
|
|
|
|
param.put("data",data); |
|
|
|
|
param.put("q_id", UUID.randomUUID().toString()); |
|
|
|
|
RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getIdentifyForm(), param, new TypeReference<JSONObject>(){}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public List hotQuestions() { |
|
|
|
|
try { |
|
|
|
|
return RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getHotQuestion(), null, new TypeReference<List<String>>() { |
|
|
|
|
}); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
return RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getHotQuestion(), null, new TypeReference<List<String>>(){}); |
|
|
|
|
} |
|
|
|
|
catch (Exception e) { |
|
|
|
|
log.error("An error occurred",e); |
|
|
|
|
return Lists.newArrayList(); |
|
|
|
|
} |
|
|
|
@ -204,8 +232,7 @@ public class HznlmInvokeServiceImpl implements IHznlmInvokeService {
|
|
|
|
|
public List<AnswerVO> getAnswerBySessionIds(String sessionIds) { |
|
|
|
|
Map<String,Object> params = new HashMap<>(); |
|
|
|
|
params.put("chat_ids",Func.toStrList(",",sessionIds).toArray()); |
|
|
|
|
return RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getAssistantStatus(), params, new TypeReference<List<AnswerVO>>() { |
|
|
|
|
}); |
|
|
|
|
return RequestClientUtil.postCall(gglmUrl + bigModelInvokeApi.getAssistantStatus(), params, new TypeReference<List<AnswerVO>>(){}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private Map<String,String[]> getAuthDataIds(String userId) { |
|
|
|
|