1. 重构代码结构,去除不必要的测试类

topo_dev
xueqingkun 9 months ago
parent b593075fe4
commit 9d04f3dcad

@ -1,17 +1,17 @@
package com.supervision.springaidemo.controller;
package com.supervision.demo.controller;
import cn.hutool.core.io.FileUtil;
import com.supervision.demo.service.ModelMetricService;
import com.supervision.police.domain.ModelRecordType;
import com.supervision.police.domain.NoteRecordSplit;
import com.supervision.springaidemo.dto.QARecordNodeDTO;
import com.supervision.demo.dto.QARecordNodeDTO;
import com.supervision.police.mapper.ModelRecordTypeMapper;
import com.supervision.police.mapper.NoteRecordSplitMapper;
import com.supervision.police.service.ModelRecordTypeService;
import com.supervision.springaidemo.service.ModelMetricService;
import com.supervision.police.service.NoteRecordSplitService;
import com.supervision.police.service.NoteCheckRecordService;
import com.supervision.springaidemo.util.RecordRegexUtil;
import com.supervision.springaidemo.util.WordReadUtil;
import com.supervision.utils.RecordRegexUtil;
import com.supervision.utils.WordReadUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param;
import org.json.JSONObject;

@ -1,18 +1,18 @@
package com.supervision.springaidemo.domain;
package com.supervision.demo.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
/**
* 0
* @TableName model_metric
*/
@TableName(value = "model_metric")
@TableName(value ="model_metric")
@Data
public class ModelMetric implements Serializable {
/**
@ -31,30 +31,45 @@ public class ModelMetric implements Serializable {
*/
private Integer metricId;
/**
*
*/
private Integer score;
/**
*
*/
private String metricName;
/**
*
*/
private String metricTrueDesc;
/**
*
*/
private String metricFalseDesc;
/**
* ,
*/
private String metricDetailTemplate;
/**
* ,,
* ()
*/
private String example;
/**
*
*
*/
private String metricTrueDesc;
private String result;
/**
*
*
*/
private String metricFalseDesc;
private String newResult;
/**
*
@ -71,6 +86,26 @@ public class ModelMetric implements Serializable {
*/
private String promptTemplate;
/**
* ID
*/
private String createUserId;
/**
*
*/
private LocalDateTime createTime;
/**
*
*/
private String updateUserId;
/**
*
*/
private LocalDateTime updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

@ -1,6 +1,5 @@
package com.supervision.springaidemo.domain;
package com.supervision.demo.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

@ -1,6 +1,5 @@
package com.supervision.springaidemo.domain;
package com.supervision.demo.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

@ -1,4 +1,4 @@
package com.supervision.springaidemo.dto;
package com.supervision.demo.dto;
import lombok.Data;

@ -1,6 +1,6 @@
package com.supervision.springaidemo.mapper;
package com.supervision.demo.mapper;
import com.supervision.springaidemo.domain.ModelMetricExample;
import com.supervision.demo.domain.ModelMetricExample;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**

@ -0,0 +1,18 @@
package com.supervision.demo.mapper;
import com.supervision.demo.domain.ModelMetric;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author Administrator
* @description model_metric(0)Mapper
* @createDate 2024-08-07 10:28:54
* @Entity com.supervision.demo.domain.ModelMetric
*/
public interface ModelMetricMapper extends BaseMapper<ModelMetric> {
}

@ -1,6 +1,6 @@
package com.supervision.springaidemo.service;
package com.supervision.demo.service;
import com.supervision.springaidemo.domain.ModelMetricExample;
import com.supervision.demo.domain.ModelMetricExample;
import com.baomidou.mybatisplus.extension.service.IService;
/**

@ -0,0 +1,13 @@
package com.supervision.demo.service;
import com.supervision.demo.domain.ModelMetric;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author Administrator
* @description model_metric(0)Service
* @createDate 2024-08-07 10:28:54
*/
public interface ModelMetricService extends IService<ModelMetric> {
}

@ -1,9 +1,9 @@
package com.supervision.springaidemo.service.impl;
package com.supervision.demo.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.springaidemo.domain.ModelMetricExample;
import com.supervision.springaidemo.service.ModelMetricExampleService;
import com.supervision.springaidemo.mapper.ModelMetricExampleMapper;
import com.supervision.demo.domain.ModelMetricExample;
import com.supervision.demo.service.ModelMetricExampleService;
import com.supervision.demo.mapper.ModelMetricExampleMapper;
import org.springframework.stereotype.Service;
/**

@ -0,0 +1,22 @@
package com.supervision.demo.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.demo.domain.ModelMetric;
import com.supervision.demo.service.ModelMetricService;
import com.supervision.demo.mapper.ModelMetricMapper;
import org.springframework.stereotype.Service;
/**
* @author Administrator
* @description model_metric(0)Service
* @createDate 2024-08-07 10:28:54
*/
@Service
public class ModelMetricServiceImpl extends ServiceImpl<ModelMetricMapper, ModelMetric>
implements ModelMetricService{
}

@ -1,6 +1,6 @@
package com.supervision.police.mapper;
import com.supervision.springaidemo.domain.NoteCheckRecord;
import com.supervision.demo.domain.NoteCheckRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**

@ -1,11 +1,7 @@
package com.supervision.police.service;
import com.supervision.police.domain.NoteRecordSplit;
import com.supervision.springaidemo.domain.NoteCheckRecord;
import com.supervision.demo.domain.NoteCheckRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author flevance

@ -2,7 +2,6 @@ package com.supervision.police.service;
import com.supervision.police.domain.ModelRecordType;
import com.supervision.police.domain.NoteRecordSplit;
import com.supervision.springaidemo.dto.QARecordNodeDTO;
import java.util.List;

@ -1,14 +1,11 @@
package com.supervision.police.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.police.domain.NoteRecordSplit;
import com.supervision.springaidemo.domain.NoteCheckRecord;
import com.supervision.demo.domain.NoteCheckRecord;
import com.supervision.police.service.NoteCheckRecordService;
import com.supervision.police.mapper.NoteCheckRecordMapper;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author flevance
* @description note_check_record()Service

@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.common.utils.IPages;
import com.supervision.common.utils.ListUtils;
import com.supervision.common.utils.StringUtils;
import com.supervision.config.BusinessException;
import com.supervision.minio.domain.MinioFile;
import com.supervision.minio.mapper.MinioFileMapper;
import com.supervision.minio.service.MinioService;
@ -17,13 +16,12 @@ import com.supervision.neo4j.service.Neo4jService;
import com.supervision.police.domain.*;
import com.supervision.police.dto.NoteRecordDTO;
import com.supervision.police.dto.NoteRecordDetailDTO;
import com.supervision.police.mapper.ModelCaseMapper;
import com.supervision.police.mapper.NoteRecordSplitMapper;
import com.supervision.police.mapper.NoteRecordMapper;
import com.supervision.police.service.*;
import com.supervision.springaidemo.dto.QARecordNodeDTO;
import com.supervision.springaidemo.util.RecordRegexUtil;
import com.supervision.springaidemo.util.WordReadUtil;
import com.supervision.demo.dto.QARecordNodeDTO;
import com.supervision.utils.RecordRegexUtil;
import com.supervision.utils.WordReadUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

@ -1,16 +1,13 @@
package com.supervision.police.service.impl;
import cn.hutool.core.collection.ConcurrentHashSet;
import cn.hutool.core.util.StrUtil;
import com.supervision.police.domain.CaseTaskRecord;
import com.supervision.police.domain.ModelRecordType;
import com.supervision.police.domain.NoteRecordSplit;
import com.supervision.police.domain.TripleInfo;
import com.supervision.police.service.CaseTaskRecordService;
import com.supervision.police.service.ExtractTripleInfoService;
import com.supervision.police.service.NoteRecordSplitService;
import com.supervision.police.service.RecordSplitTypeService;
import com.supervision.springaidemo.dto.QARecordNodeDTO;
import com.supervision.thread.RecordSplitTypeThread;
import com.supervision.thread.RecordSplitTypeThreadPool;
import lombok.RequiredArgsConstructor;
@ -21,12 +18,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
@Service
@Slf4j

@ -5,8 +5,6 @@ import cn.hutool.core.collection.ConcurrentHashSet;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObjectIter;
import cn.hutool.json.JSONUtil;
import com.supervision.config.BusinessException;
import com.supervision.minio.domain.MinioFile;
import com.supervision.minio.service.MinioService;
@ -16,20 +14,16 @@ import com.supervision.prompt.vo.ParamTestDTO;
import com.supervision.prompt.vo.PromptRequestVO;
import com.supervision.prompt.vo.ExecResultDTO;
import com.supervision.prompt.vo.ResultResVO;
import com.supervision.springaidemo.dto.QARecordNodeDTO;
import com.supervision.springaidemo.util.RecordRegexUtil;
import com.supervision.springaidemo.util.WordReadUtil;
import lombok.Data;
import com.supervision.demo.dto.QARecordNodeDTO;
import com.supervision.utils.RecordRegexUtil;
import com.supervision.utils.WordReadUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.formula.functions.Rank;
import org.springframework.ai.ollama.OllamaChatClient;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;

@ -1,146 +0,0 @@
package com.supervision.springaidemo.controller;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.json.JSONUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import com.supervision.springaidemo.domain.VpAskTemplateQuestionLibrary;
import com.supervision.springaidemo.domain.VpCommonDic;
import com.supervision.springaidemo.service.VpAskTemplateQuestionLibraryService;
import com.supervision.springaidemo.service.VpCommonDicService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.document.Document;
import org.springframework.ai.embedding.EmbeddingClient;
import org.springframework.ai.ollama.OllamaChatClient;
import org.springframework.ai.ollama.OllamaEmbeddingClient;
import org.springframework.ai.ollama.api.OllamaOptions;
import org.springframework.ai.vectorstore.SimpleVectorStore;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.File;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@Slf4j
@RequestMapping("similarity")
@RestController
public class SimilarityController {
private final SimpleVectorStore store;
private final OllamaChatClient chatClient;
@Autowired
private VpCommonDicService vpCommonDicService;
@Autowired
private VpAskTemplateQuestionLibraryService libraryService;
@Autowired
public SimilarityController(OllamaEmbeddingClient ollamaEmbeddingClient, OllamaChatClient chatClient) {
store = new SimpleVectorStore(ollamaEmbeddingClient.withDefaultOptions(OllamaOptions.create().withModel("llama3-chinese:8b")));
this.chatClient = chatClient;
// File file = FileUtil.file("/Users/flevance/Java/spring-ai-demo/spring-ai-demo/data/storeData.json");
// if (FileUtil.isNotEmpty(file)) {
// store.load(file);
// }
}
@GetMapping("init")
public void init() {
// 从数据库中加载向量数据
List<VpAskTemplateQuestionLibrary> list = libraryService.lambdaQuery().list();
for (VpAskTemplateQuestionLibrary vpAskTemplateQuestionLibrary : list) {
String questionJsonStr = vpAskTemplateQuestionLibrary.getQuestion();
List<String> questionList = JSONUtil.toList(questionJsonStr, String.class);
questionList.add(vpAskTemplateQuestionLibrary.getDescription());
for (String question : questionList) {
Map<String, Object> meta = MapUtil.of("dictId", vpAskTemplateQuestionLibrary.getDictId());
meta.put("id", vpAskTemplateQuestionLibrary.getId());
Document document = new Document(question, meta);
store.add(ListUtil.of(document));
log.info("{}已添加到向量数据库", question);
}
}
log.info("向量化完成");
// 加载完成之后,保存到本地
store.save(FileUtil.newFile("/Users/flevance/Java/spring-ai-demo/spring-ai-demo/data/storeData.json"));
log.info("保存完成");
}
@GetMapping("similarity")
public void similarity(String userQuestion) {
List<Document> documents = store.similaritySearch(userQuestion);
for (Document document : documents) {
log.info("{}", document.getContent());
}
}
@GetMapping("itemCheck")
public void itemCheck() {
File file = FileUtil.file("/Users/flevance/Desktop/虚拟病人/副本副本医生临床问诊问题收集v1.xlsx");
ExcelReader reader = ExcelUtil.getReader(file, 1);
ExcelWriter writer = ExcelUtil.getWriter(file, "match");
List<VpCommonDic> list = vpCommonDicService.lambdaQuery().like(VpCommonDic::getNameZhPath, "/").eq(VpCommonDic::getGroupCode, "AQT").list();
Set<String> databaseExistSet = new HashSet<>();
for (VpCommonDic vpCommonDic : list) {
databaseExistSet.add(vpCommonDic.getNameZhPath());
}
List<List<Object>> objects = reader.read(1);
for (int i = 0; i < objects.size(); i++) {
List<Object> list1 = objects.get(i);
String s = (String) list1.get(0);
String s1 = (String) list1.get(1);
// 如果不存在,则记录
if (!databaseExistSet.contains(s + "/" + s1)) {
writer.writeCellValue(1, i + 1, "不存在");
} else {
writer.writeCellValue(1, i + 1, "存在");
}
}
writer.flush();
}
@GetMapping("similarityBatch")
public void similarityBatch() {
init();
Map<Long, VpCommonDic> dicMap = vpCommonDicService.list().stream().collect(Collectors.toMap(VpCommonDic::getId, Function.identity()));
// 从Excel中获取数据
File file = FileUtil.file("/Users/flevance/Desktop/虚拟病人/副本副本医生临床问诊问题收集v1.xlsx");
ExcelReader reader = ExcelUtil.getReader(file, 2);
ExcelWriter writer = ExcelUtil.getWriter(file, "result");
List<Object> objects = reader.readColumn(2, 1);
for (int i = 0; i < objects.size(); i++) {
int rowIndex = i + 1;
String question = objects.get(i).toString();
try {
List<Document> documents = store.similaritySearch(question);
Optional<Document> first = documents.stream().findFirst();
if (first.isPresent()) {
Map<String, Object> meta = first.get().getMetadata();
String dictId = meta.get("dictId").toString();
VpCommonDic vpCommonDic = dicMap.get(Long.parseLong(dictId));
writer.writeCellValue(8, rowIndex, question);
writer.writeCellValue(9, rowIndex, "");
writer.writeCellValue(10, rowIndex, vpCommonDic.getNameZhPath());
writer.writeCellValue(11, rowIndex, dictId);
}
} catch (Exception e) {
log.error("出现错误", e);
}
log.info("{}匹配完成.", question);
}
writer.flush();
}
}

@ -1,44 +0,0 @@
package com.supervision.springaidemo.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.chat.ChatResponse;
import org.springframework.ai.chat.Generation;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.ollama.OllamaChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@Slf4j
@RequestMapping("question")
public class SimilarityQuestionController {
private static final String template = """
,,:
10,,
""";
private final OllamaChatClient chatClient;
@Autowired
public SimilarityQuestionController(OllamaChatClient chatClient) {
this.chatClient = chatClient;
}
@GetMapping("test")
public void test() {
Prompt prompt = new Prompt(List.of(new UserMessage(template)));
ChatResponse call = chatClient.call(prompt);
Generation result = call.getResult();
String content = result.getOutput().getContent();
log.info("结果是:{}", content);
}
}

@ -1,83 +0,0 @@
package com.supervision.springaidemo.controller;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.supervision.springaidemo.dto.AnswerDTO;
import com.supervision.springaidemo.dto.GlobalResult;
import com.supervision.springaidemo.util.TtsUtil;
import org.springframework.ai.chat.ChatResponse;
import org.springframework.ai.chat.Generation;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.SystemMessage;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.ollama.OllamaChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
*
*/
@RequestMapping("vp-test")
@RestController
public class VPTestController {
private final OllamaChatClient chatClient;
// 使用多线程进行提交
@Autowired
public VPTestController(OllamaChatClient chatClient) {
this.chatClient = chatClient;
}
public static final String userPromptTemplate = """
,,
---
:{userQuestion}
---
1:{dataBaseQuestion1},ID:1761963909201268731
2:{dataBaseQuestion2},ID:1761963909201268732
3:{dataBaseQuestion3},ID:1761963909201268733
4:{dataBaseQuestion4},ID:1761963909201268734
5:{dataBaseQuestion5},ID:1761963909201268735
---
json:{"id":"对应的问题ID","question":"匹配到的预设问题"}
""";
// private static final String systemPrompt = """
// 你现在扮演一个医生,以医生的角度从预设问题列表中找到与给定问题最匹配的一项
// """;
@GetMapping("test")
public String test(String userQuestion) {
List<Message> messageHistoryList = new ArrayList<>();
// messageHistoryList.add(new SystemMessage(systemPrompt));
HashMap<String, String> map = new HashMap<>();
map.put("userQuestion", userQuestion);
map.put("dataBaseQuestion1", "您有什么症状?");
map.put("dataBaseQuestion2", "您有什么不舒服的?");
map.put("dataBaseQuestion3", "您是否有腹痛?");
map.put("dataBaseQuestion4", "您还有什么不舒服的?");
map.put("dataBaseQuestion5", "您还有其他什么症状吗?");
StrUtil.format(userPromptTemplate, map);
messageHistoryList.add(new UserMessage(StrUtil.format(userPromptTemplate, map)));
Prompt prompt = new Prompt(messageHistoryList);
ChatResponse call = chatClient.call(prompt);
Generation result = call.getResult();
return result.getOutput().getContent();
}
}

@ -1,90 +0,0 @@
package com.supervision.springaidemo.controller;
import cn.hutool.json.JSONUtil;
import com.supervision.springaidemo.dto.AnswerDTO;
import com.supervision.springaidemo.dto.GlobalResult;
import com.supervision.springaidemo.util.TtsUtil;
import org.springframework.ai.chat.ChatResponse;
import org.springframework.ai.chat.Generation;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.SystemMessage;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.ollama.OllamaChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
@RequestMapping("virtual-patient")
@RestController
public class VirtualPatientTestController {
private final OllamaChatClient chatClient;
// 使用多线程进行提交
@Autowired
public VirtualPatientTestController(OllamaChatClient chatClient) {
this.chatClient = chatClient;
}
public static final String userPromptTemplate = """
---
:xxx
:xxx
:
:
:
:
:饿
便:便3便
:饿
---
json:{"answer":"根据病例情况回复的内容"}
""";
private static final String systemPrompt = """
(),
,
'//'",!
'',','!!!
""";
private static final List<Message> messageHistoryList = new ArrayList<>();
static {
messageHistoryList.add(new SystemMessage(systemPrompt));
messageHistoryList.add(new UserMessage(userPromptTemplate));
messageHistoryList.add(new AssistantMessage("好的,已了解我要扮演病人的基本情况。已准备好对话了。"));
}
@GetMapping("talk")
public String talk(String question) {
messageHistoryList.add(new UserMessage(question));
Prompt prompt = new Prompt(messageHistoryList);
ChatResponse call = chatClient.call(prompt);
Generation result = call.getResult();
String content = result.getOutput().getContent();
messageHistoryList.add(new AssistantMessage(content));
return content;
}
@GetMapping("chatVoice")
public GlobalResult<AnswerDTO> chatVoice(String question){
String talk = talk(question);
AnswerDTO answer = JSONUtil.toBean(talk, AnswerDTO.class);
String answerBase64 = TtsUtil.ttsTransform(answer.getAnswer());
answer.setAnswerBase64(answerBase64);
return GlobalResult.ok(answer);
}
}

@ -1,81 +0,0 @@
package com.supervision.springaidemo.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
* @TableName vp_ask_template_question_library
*/
@TableName(value ="vp_ask_template_question_library")
@Data
public class VpAskTemplateQuestionLibrary implements Serializable {
/**
*
*/
@TableId
private String id;
/**
* ID(common_dictID)
*/
private Long dictId;
/**
*
*/
private String code;
/**
*
*/
private String description;
/**
*
*/
private String question;
/**
*
*/
private String defaultAnswerCode;
/**
*
*/
private String defaultAnswer;
/**
* id
*/
private String defaultAnswerResourceId;
/**
* ID
*/
private String createUserId;
/**
*
*/
private Date createTime;
/**
*
*/
private String updateUserId;
/**
*
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

@ -1,86 +0,0 @@
package com.supervision.springaidemo.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
* @TableName vp_common_dic
*/
@TableName(value ="vp_common_dic")
@Data
public class VpCommonDic implements Serializable {
/**
*
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
*
*/
private String code;
/**
*
*/
private String nameZh;
/**
*
*/
private String nameEn;
/**
* code
*/
private String groupCode;
/**
* id
*/
private Long parentId;
/**
* ,
*/
private Integer priority;
/**
*
*/
private String nameZhPath;
/**
*
*/
private String description;
/**
*
*/
private String createUserId;
/**
*
*/
private Date createTime;
/**
*
*/
private String updateUserId;
/**
*
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

@ -1,11 +0,0 @@
package com.supervision.springaidemo.dto;
import lombok.Data;
@Data
public class AnswerDTO {
private String answer;
private String answerBase64;
}

@ -1,45 +0,0 @@
package com.supervision.springaidemo.dto;
import lombok.Data;
import org.springframework.http.HttpStatus;
@Data
public class GlobalResult<T> {
private int code = 200;
private String msg = "success";
private T data;
public static <T> GlobalResult<T> ok() {
return ok(null);
}
public static <T> GlobalResult<T> ok(T data) {
GlobalResult<T> globalResult = new GlobalResult<>();
globalResult.setData(data);
return globalResult;
}
public static <T> GlobalResult<T> ok(T data, String message) {
GlobalResult<T> globalResult = new GlobalResult<>();
globalResult.setMsg(message);
globalResult.setData(data);
return globalResult;
}
public static <T> GlobalResult<T> error(String msg) {
return error(HttpStatus.INTERNAL_SERVER_ERROR.value(), null, msg);
}
public static <T> GlobalResult<T> error(int code, T data, String msg) {
GlobalResult<T> globalResult = new GlobalResult<>();
globalResult.setCode(code);
globalResult.setData(data);
globalResult.setMsg(msg);
return globalResult;
}
}

@ -1,13 +0,0 @@
package com.supervision.springaidemo.dto;
import lombok.Data;
@Data
public class MetricResultDTO {
private String result;
private String originalContext;
private String reason;
}

@ -1,21 +0,0 @@
package com.supervision.springaidemo.dto.paddlespeech.req;
import lombok.Data;
@Data
public class AsrReqDTO {
private final String audio;
private final String audio_format = "wav";
private final Integer sample_rate = 16000;
private final String lang = "zh_cn";
private final Integer punc = 0;
public AsrReqDTO(String audio) {
this.audio = audio;
}
}

@ -1,23 +0,0 @@
package com.supervision.springaidemo.dto.paddlespeech.req;
import lombok.Data;
@Data
public class TtsReqDTO {
private final String text;
private final Integer spk_id = 0;
private final Double speed = 1.0;
private final Double volume = 1.0;
private final Integer sample_rate = 16000;
private final String save_path = "./tts.wav";
public TtsReqDTO(String text) {
this.text = text;
}
}

@ -1,10 +0,0 @@
package com.supervision.springaidemo.dto.paddlespeech.res;
import lombok.Data;
@Data
public class AsrResultDTO {
private String transcription;
}

@ -1,15 +0,0 @@
package com.supervision.springaidemo.dto.paddlespeech.res;
import lombok.Data;
@Data
public class PaddleSpeechResDTO<T> {
private Boolean success;
private Integer code;
private Object message;
private T result;
}

@ -1,23 +0,0 @@
package com.supervision.springaidemo.dto.paddlespeech.res;
import lombok.Data;
@Data
public class TtsResultDTO {
private String lang;
private String spk_id;
private String speed;
private String volume;
private String sample_rate;
private String duration;
private String save_path;
private String audio;
}

@ -1,18 +0,0 @@
package com.supervision.springaidemo.mapper;
import com.supervision.springaidemo.domain.ModelMetric;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author flevance
* @description model_metricMapper
* @createDate 2024-05-10 16:40:18
* @Entity com.supervision.domain.ModelMetric
*/
public interface ModelMetricMapper extends BaseMapper<ModelMetric> {
}

@ -1,18 +0,0 @@
package com.supervision.springaidemo.mapper;
import com.supervision.springaidemo.domain.VpAskTemplateQuestionLibrary;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author flevance
* @description vp_ask_template_question_library()Mapper
* @createDate 2024-05-22 17:40:02
* @Entity com.supervision.springaidemo.domain.VpAskTemplateQuestionLibrary
*/
public interface VpAskTemplateQuestionLibraryMapper extends BaseMapper<VpAskTemplateQuestionLibrary> {
}

@ -1,18 +0,0 @@
package com.supervision.springaidemo.mapper;
import com.supervision.springaidemo.domain.VpCommonDic;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author flevance
* @description vp_common_dic()Mapper
* @createDate 2024-05-23 10:24:49
* @Entity com.supervision.springaidemo.domain.VpCommonDic
*/
public interface VpCommonDicMapper extends BaseMapper<VpCommonDic> {
}

@ -1,13 +0,0 @@
package com.supervision.springaidemo.service;
import com.supervision.springaidemo.domain.ModelMetric;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author flevance
* @description model_metricService
* @createDate 2024-05-10 16:40:18
*/
public interface ModelMetricService extends IService<ModelMetric> {
}

@ -1,13 +0,0 @@
package com.supervision.springaidemo.service;
import com.supervision.springaidemo.domain.VpAskTemplateQuestionLibrary;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author flevance
* @description vp_ask_template_question_library()Service
* @createDate 2024-05-22 17:40:02
*/
public interface VpAskTemplateQuestionLibraryService extends IService<VpAskTemplateQuestionLibrary> {
}

@ -1,13 +0,0 @@
package com.supervision.springaidemo.service;
import com.supervision.springaidemo.domain.VpCommonDic;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author flevance
* @description vp_common_dic()Service
* @createDate 2024-05-23 10:24:49
*/
public interface VpCommonDicService extends IService<VpCommonDic> {
}

@ -1,22 +0,0 @@
package com.supervision.springaidemo.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.springaidemo.domain.ModelMetric;
import com.supervision.springaidemo.service.ModelMetricService;
import com.supervision.springaidemo.mapper.ModelMetricMapper;
import org.springframework.stereotype.Service;
/**
* @author flevance
* @description model_metricService
* @createDate 2024-05-10 16:40:18
*/
@Service
public class ModelMetricServiceImpl extends ServiceImpl<ModelMetricMapper, ModelMetric>
implements ModelMetricService{
}

@ -1,22 +0,0 @@
package com.supervision.springaidemo.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.springaidemo.domain.VpAskTemplateQuestionLibrary;
import com.supervision.springaidemo.service.VpAskTemplateQuestionLibraryService;
import com.supervision.springaidemo.mapper.VpAskTemplateQuestionLibraryMapper;
import org.springframework.stereotype.Service;
/**
* @author flevance
* @description vp_ask_template_question_library()Service
* @createDate 2024-05-22 17:40:02
*/
@Service
public class VpAskTemplateQuestionLibraryServiceImpl extends ServiceImpl<VpAskTemplateQuestionLibraryMapper, VpAskTemplateQuestionLibrary>
implements VpAskTemplateQuestionLibraryService{
}

@ -1,22 +0,0 @@
package com.supervision.springaidemo.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.springaidemo.domain.VpCommonDic;
import com.supervision.springaidemo.service.VpCommonDicService;
import com.supervision.springaidemo.mapper.VpCommonDicMapper;
import org.springframework.stereotype.Service;
/**
* @author flevance
* @description vp_common_dic()Service
* @createDate 2024-05-23 10:24:49
*/
@Service
public class VpCommonDicServiceImpl extends ServiceImpl<VpCommonDicMapper, VpCommonDic>
implements VpCommonDicService{
}

@ -1,33 +0,0 @@
package com.supervision.springaidemo.util;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.supervision.springaidemo.dto.paddlespeech.req.TtsReqDTO;
import com.supervision.springaidemo.dto.paddlespeech.res.PaddleSpeechResDTO;
import com.supervision.springaidemo.dto.paddlespeech.res.TtsResultDTO;
public class TtsUtil {
private static final String TTS_URL = "http://192.168.10.137:8090/paddlespeech/tts";
private static final ObjectMapper objectMapper = new ObjectMapper();
public static String ttsTransform(String str) {
// 构建
String post = HttpUtil.post(TTS_URL, JSONUtil.toJsonStr(new TtsReqDTO(str)));
try {
PaddleSpeechResDTO<TtsResultDTO> response = objectMapper.readValue(post, new TypeReference<PaddleSpeechResDTO<TtsResultDTO>>() {
});
if (!response.getSuccess() || ObjectUtil.isEmpty(response.getResult())) {
throw new RuntimeException("文字转换语音失败");
}
return response.getResult().getAudio();
} catch (Exception e) {
throw new RuntimeException("语音转换文字失败", e);
}
}
}

@ -1,17 +1,13 @@
package com.supervision.thread;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.supervision.police.domain.ModelRecordType;
import com.supervision.police.domain.NoteRecordSplit;
import com.supervision.police.service.CaseTaskRecordService;
import com.supervision.police.service.NoteRecordSplitService;
import com.supervision.springaidemo.dto.QARecordNodeDTO;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.json.JSONObject;
import org.springframework.ai.chat.ChatResponse;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.prompt.Prompt;
@ -23,7 +19,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.stream.Collectors;
/**

@ -1,8 +1,8 @@
package com.supervision.springaidemo.util;
package com.supervision.utils;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.StrUtil;
import com.supervision.springaidemo.dto.QARecordNodeDTO;
import com.supervision.demo.dto.QARecordNodeDTO;
import java.util.ArrayList;
import java.util.List;

@ -1,4 +1,4 @@
package com.supervision.springaidemo.util;
package com.supervision.utils;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

@ -2,9 +2,9 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.supervision.springaidemo.mapper.ModelMetricExampleMapper">
<mapper namespace="com.supervision.demo.mapper.ModelMetricExampleMapper">
<resultMap id="BaseResultMap" type="com.supervision.springaidemo.domain.ModelMetricExample">
<resultMap id="BaseResultMap" type="com.supervision.demo.domain.ModelMetricExample">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="metricCode" column="metric_code" jdbcType="VARCHAR"/>
<result property="example" column="example" jdbcType="VARCHAR"/>

@ -2,22 +2,35 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.supervision.springaidemo.mapper.ModelMetricMapper">
<mapper namespace="com.supervision.demo.mapper.ModelMetricMapper">
<resultMap id="BaseResultMap" type="com.supervision.springaidemo.domain.ModelMetric">
<resultMap id="BaseResultMap" type="com.supervision.demo.domain.ModelMetric">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="metricCode" column="metric_code" jdbcType="VARCHAR"/>
<result property="metricId" column="metric_id" jdbcType="INTEGER"/>
<result property="score" column="score" jdbcType="INTEGER"/>
<result property="metricName" column="metric_name" jdbcType="VARCHAR"/>
<result property="metricTrueDesc" column="metric_true_desc" jdbcType="VARCHAR"/>
<result property="metricFalseDesc" column="metric_false_desc" jdbcType="VARCHAR"/>
<result property="metricDetailTemplate" column="metric_detail_template" jdbcType="VARCHAR"/>
<result property="example" column="example" jdbcType="VARCHAR"/>
<result property="result" column="result" jdbcType="VARCHAR"/>
<result property="newResult" column="new_result" jdbcType="VARCHAR"/>
<result property="metricDesc" column="metric_desc" jdbcType="VARCHAR"/>
<result property="metricType" column="metric_type" jdbcType="INTEGER"/>
<result property="promptTemplate" column="prompt_template" jdbcType="VARCHAR"/>
<result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,metric_code,metric_name,
metric_true_desc,metric_false_desc,
metric_desc,metric_type,prompt_template
id,metric_code,metric_id,
score,metric_name,metric_true_desc,
metric_false_desc,metric_detail_template,example,
result,new_result,metric_desc,
metric_type,prompt_template,create_user_id,
create_time,update_user_id,update_time
</sql>
</mapper>

@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.supervision.police.mapper.NoteCheckRecordMapper">
<resultMap id="BaseResultMap" type="com.supervision.springaidemo.domain.NoteCheckRecord">
<resultMap id="BaseResultMap" type="com.supervision.demo.domain.NoteCheckRecord">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="personName" column="person_name" jdbcType="VARCHAR"/>
<result property="noteName" column="note_name" jdbcType="VARCHAR"/>

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.supervision.springaidemo.mapper.VpCommonDicMapper">
<resultMap id="BaseResultMap" type="com.supervision.springaidemo.domain.VpCommonDic">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="code" column="code" jdbcType="VARCHAR"/>
<result property="nameZh" column="name_zh" jdbcType="VARCHAR"/>
<result property="nameEn" column="name_en" jdbcType="VARCHAR"/>
<result property="groupCode" column="group_code" jdbcType="VARCHAR"/>
<result property="parentId" column="parent_id" jdbcType="BIGINT"/>
<result property="priority" column="priority" jdbcType="INTEGER"/>
<result property="nameZhPath" column="name_zh_path" jdbcType="VARCHAR"/>
<result property="description" column="description" jdbcType="VARCHAR"/>
<result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,code,name_zh,
name_en,group_code,parent_id,
priority,name_zh_path,description,
create_user_id,create_time,update_user_id,
update_time
</sql>
</mapper>

@ -1,4 +1,4 @@
package com.supervision.springaidemo;
package com.supervision.demo;
import com.alibaba.druid.sql.ast.SQLStatement;
import com.alibaba.druid.sql.ast.statement.*;

@ -1,9 +1,9 @@
package com.supervision.springaidemo;
package com.supervision.demo;
import com.supervision.common.domain.R;
import com.supervision.neo4j.controller.Neo4jController;
import com.supervision.neo4j.domain.CaseNode;
import com.supervision.springaidemo.controller.ExampleChatController;
import com.supervision.demo.controller.ExampleChatController;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.ai.chat.ChatResponse;

@ -1,4 +1,4 @@
package com.supervision.springaidemo;
package com.supervision.demo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.UUID;

@ -1,12 +1,7 @@
package com.supervision.springaidemo;
package com.supervision.demo;
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
import net.sf.jsqlparser.statement.Statement;
import net.sf.jsqlparser.statement.select.PlainSelect;
import net.sf.jsqlparser.statement.select.Select;
import net.sf.jsqlparser.statement.select.SelectBody;
import net.sf.jsqlparser.statement.select.SubSelect;
import net.sf.jsqlparser.schema.Table;
import net.sf.jsqlparser.util.TablesNamesFinder;
import net.sf.jsqlparser.JSQLParserException;

@ -1,4 +1,4 @@
package com.supervision.springaidemo;
package com.supervision.demo;
import com.deepoove.poi.XWPFTemplate;
import com.supervision.police.dto.caseScore.CaseScoreDetailDTO;
Loading…
Cancel
Save