TASK:LLM;
This commit is contained in:
@@ -58,9 +58,10 @@ public class LLMController {
|
||||
@RequestParam Long projectId,
|
||||
@RequestParam(required = false) String fileUrl,
|
||||
@RequestParam(required = false) List<String> imageUrlList,
|
||||
@RequestParam(required = false) String process,
|
||||
@RequestParam String token,
|
||||
@RequestParam Boolean enableThinking) {
|
||||
return llmService.stream(prompt, projectId, fileUrl, imageUrlList, token, enableThinking);
|
||||
return llmService.stream(prompt, projectId, fileUrl, imageUrlList, token, enableThinking, process);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "对话创建项目")
|
||||
|
||||
@@ -31,7 +31,7 @@ import java.util.Set;
|
||||
*/
|
||||
public interface LLMService {
|
||||
|
||||
SseEmitter stream(String prompt, Long projectId, String fileUrl, List<String> imageUrlList, String token, Boolean enableThinking);
|
||||
SseEmitter stream(String prompt, Long projectId, String fileUrl, List<String> imageUrlList, String token, Boolean enableThinking, String process);
|
||||
|
||||
Long chatCreateProject(String prompt, String process, String fileUrl, List<String> imageUrlList);
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ public class LLMServiceImpl implements LLMService {
|
||||
private final ExecutorService executor = Executors.newCachedThreadPool();
|
||||
|
||||
@Override
|
||||
public SseEmitter stream(String prompt, Long projectId, String fileUrl, List<String> imageUrlList, String token, Boolean enableThinking) {
|
||||
public SseEmitter stream(String prompt, Long projectId, String fileUrl, List<String> imageUrlList, String token, Boolean enableThinking, String process) {
|
||||
SseEmitter emitter = new SseEmitter(0L); // 永不超时
|
||||
|
||||
executor.submit(() -> {
|
||||
@@ -92,6 +92,7 @@ public class LLMServiceImpl implements LLMService {
|
||||
jsonBodyObject.put("file", !StringUtils.isEmpty(fileUrl) ? Collections.singletonList(fileUrl) : new ArrayList<>());
|
||||
jsonBodyObject.put("message", prompt);
|
||||
jsonBodyObject.put("enable_thinking", enableThinking);
|
||||
// jsonBodyObject.put("process", process);
|
||||
|
||||
// 1. 存储用户输入
|
||||
ChatMessage userMessage = new ChatMessage();
|
||||
@@ -150,7 +151,7 @@ public class LLMServiceImpl implements LLMService {
|
||||
responseContentBuilder = new StringBuilder();
|
||||
}
|
||||
JSONObject toolsData = json.getJSONObject("tools_data");
|
||||
if (Objects.nonNull(toolsData) && !status.equals("[DESIGN_SIGNAL]")) {
|
||||
if (Objects.nonNull(toolsData) && !status.equals("[DESIGN_SIGNAL]") && !status.equals("[PROJECT_CREATE_SIGNAL]")) {
|
||||
boolean color = true;
|
||||
ReceiveDesignParam receiveDesignParam = JSONObject.parseObject(JSONObject.toJSONString(toolsData), ReceiveDesignParam.class);
|
||||
receiveDesignParam.setProjectId(projectId);
|
||||
@@ -177,6 +178,102 @@ public class LLMServiceImpl implements LLMService {
|
||||
systemImage.setAccountId(accountId);
|
||||
chatMessageMapper.insert(systemImage);
|
||||
}
|
||||
if (status.equals("[PROJECT_CREATE_SIGNAL]")) {
|
||||
JSONObject data = toolsData;
|
||||
Project project = new Project();
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
project.setUpdateTime(now);
|
||||
project.setCreateTime(now);
|
||||
project.setAccountId(accountId);
|
||||
project.setName(data.getString("project_name"));
|
||||
project.setOriginal(1);
|
||||
// String process = data.getString("process");
|
||||
// if (StringUtils.isEmpty(process)) {
|
||||
// project.setProcess(DesignProcess.SERIES_DESIGN.name());
|
||||
// }else {
|
||||
// if (DesignProcess.isValidName(process)) {
|
||||
// project.setProcess(process);
|
||||
// }else {
|
||||
// project.setProcess(DesignProcess.SERIES_DESIGN.name());
|
||||
// }
|
||||
// }
|
||||
project.setProcess(process);
|
||||
projectMapper.insert(project);
|
||||
|
||||
Workspace workspace = new Workspace();
|
||||
workspace.setAccountId(accountId);
|
||||
workspace.setCreateTime(now);
|
||||
String ageGroup = data.getString("ageGroup");
|
||||
if (StringUtils.isEmpty(ageGroup)) {
|
||||
workspace.setAgeGroup("Adult");
|
||||
}else {
|
||||
if (AgeGroup.isValidName(process)) {
|
||||
workspace.setAgeGroup(ageGroup);
|
||||
}else {
|
||||
workspace.setAgeGroup("Adult");
|
||||
}
|
||||
}
|
||||
String gender = data.getString("gender");
|
||||
if (StringUtils.isEmpty(gender)) {
|
||||
workspace.setSex("Female");
|
||||
}else {
|
||||
if (Sex.isValidName(gender)) {
|
||||
workspace.setSex(gender);
|
||||
}else {
|
||||
workspace.setSex("Female");
|
||||
}
|
||||
}
|
||||
String position = data.getString("position");
|
||||
if (StringUtils.isEmpty(position)) {
|
||||
workspace.setPosition("Overall");
|
||||
}else {
|
||||
if (Position.isValidName(position)) {
|
||||
workspace.setPosition(position);
|
||||
}else {
|
||||
workspace.setPosition("Overall");
|
||||
}
|
||||
}
|
||||
workspace.setSystemDesignerPercentage(30);
|
||||
workspace.setProjectId(project.getId());
|
||||
|
||||
String style = data.getString("style");
|
||||
String styleName = null;
|
||||
if (StringUtils.isEmpty(style)) {
|
||||
styleName = StyleEnum.NEW_CHINESE.name();
|
||||
}else {
|
||||
if (StyleEnum.isValidName(style)) {
|
||||
styleName = style;
|
||||
}else {
|
||||
styleName = StyleEnum.NEW_CHINESE.name();
|
||||
}
|
||||
}
|
||||
|
||||
SysFile sysFile = sysFileService.getOneBySex(styleName, workspace.getSex(), workspace.getAgeGroup());
|
||||
|
||||
if (workspace.getSex().equals(Sex.FEMALE.getValue())) {
|
||||
workspace.setMannequinFemaleId(sysFile.getId());
|
||||
workspace.setMannequinFemaleType("System");
|
||||
}else {
|
||||
workspace.setMannequinMaleId(sysFile.getId());
|
||||
workspace.setMannequinMaleType("System");
|
||||
}
|
||||
|
||||
workspaceMapper.insert(workspace);
|
||||
|
||||
if (!StringUtils.isEmpty(styleName)) {
|
||||
QueryWrapper<Style> qw = new QueryWrapper<>();
|
||||
qw.lambda().eq(Style::getName, styleName);
|
||||
Style style1 = styleMapper.selectOne(qw);
|
||||
if (Objects.nonNull(style1)) {
|
||||
WorkspaceRelStyle rel = new WorkspaceRelStyle();
|
||||
rel.setWorkspaceId(workspace.getId());
|
||||
rel.setStyleId(style1.getId());
|
||||
workspaceRelStyleMapper.insert(rel);
|
||||
}
|
||||
}
|
||||
toolsData.put("projectId", project.getId());
|
||||
json.put("tools_data", toolsData.toJSONString());
|
||||
}
|
||||
emitter.send(json.toJSONString());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user