|
@@ -39,9 +39,58 @@ public class DataWriteTest30zc {
|
|
|
@Autowired
|
|
|
EntityService entityService;
|
|
|
|
|
|
- private static String diseaseStr = "风湿性心脏病";
|
|
|
-
|
|
|
|
|
|
+ private static String diseaseStr = "霍乱" +
|
|
|
+ ",伤寒" +
|
|
|
+ ",副伤寒"+
|
|
|
+ ",细菌性痢疾" +
|
|
|
+ ",肠阿米巴病" +
|
|
|
+ ",感染性腹泻" +
|
|
|
+ ",急性肠炎" +
|
|
|
+ ",婴儿腹泻" +
|
|
|
+ ",肺结核" +
|
|
|
+ ",结核性胸膜炎" +
|
|
|
+ ",原发性肺结核" +
|
|
|
+ ",结核性脑膜炎" +
|
|
|
+ ",骨结核" +
|
|
|
+ ",颈椎结核" +
|
|
|
+ ",胸椎结核" +
|
|
|
+ ",腰椎结核" +
|
|
|
+ ",脊柱结核" +
|
|
|
+ ",骶髂关节结核" +
|
|
|
+ ",肾结核" +
|
|
|
+ ",子宫内膜结核" +
|
|
|
+ ",附睾结核" +
|
|
|
+ ",颈淋巴结结核" +
|
|
|
+ ",肠结核" +
|
|
|
+ ",结核性腹膜炎" +
|
|
|
+ ",鼠疫" +
|
|
|
+ ",钩端螺旋体病" +
|
|
|
+ ",麻风" +
|
|
|
+ ",皮肤白喉" +
|
|
|
+ ",白喉" +
|
|
|
+ ",猩红热" +
|
|
|
+ ",流行性脑脊髓膜炎" +
|
|
|
+ ",先天性梅毒" +
|
|
|
+ ",梅毒" +
|
|
|
+ ",淋病" +
|
|
|
+ ",流行性斑疹伤寒" +
|
|
|
+ ",狂犬病" +
|
|
|
+ ",流行性乙型脑炎" +
|
|
|
+ ",登革热" +
|
|
|
+ ",手足口病" +
|
|
|
+ ",乙型病毒性肝炎" +
|
|
|
+ ",慢性病毒性肝炎" +
|
|
|
+ ",艾滋病" +
|
|
|
+ ",疟疾" +
|
|
|
+ ",内脏利什曼病" +
|
|
|
+ ",黑热病" +
|
|
|
+ ",埃及血吸虫病" +
|
|
|
+ ",血吸虫病" +
|
|
|
+ ",肺血吸虫病" +
|
|
|
+ ",棘球蚴病" +
|
|
|
+ ",丝虫病" +
|
|
|
+ ",流行性感冒";
|
|
|
@Test
|
|
|
public void writeNeo4j() {
|
|
|
String startLabel = "疾病";
|
|
@@ -121,13 +170,19 @@ public class DataWriteTest30zc {
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
String accessToken = BaidubceUtil.getAccessToken();
|
|
|
- String propertyStr = "治疗药物\t的治疗药物或治疗药品归纳后有哪些药物或药品";
|
|
|
+ String propertyStr = "隔离期\t的隔离期或隔离观察期是多长时间" +
|
|
|
+ ",接触者检疫\t的接触者检疫措施有哪些";
|
|
|
|
|
|
- saveExel(propertyStr, accessToken,"优先");
|
|
|
+ saveExel(propertyStr, accessToken,"3.1传染");
|
|
|
}
|
|
|
|
|
|
static HSSFWorkbook workbook;
|
|
|
|
|
|
+ static Long totalCount = 0l;
|
|
|
+ static Long successCount = 0l;
|
|
|
+ static Long failCount = 0l;
|
|
|
+ static Long unkonwCount = 0l;
|
|
|
+
|
|
|
private static void saveExel(String propertyStr, String accessToken,String fileName) {
|
|
|
String[] properties = propertyStr.split(",");
|
|
|
workbook = new HSSFWorkbook();//这里也可以设置sheet的Name
|
|
@@ -148,7 +203,15 @@ public class DataWriteTest30zc {
|
|
|
row.createCell(6).setCellValue(temp.getRefenrece() == null ? "" : temp.getRefenrece());
|
|
|
}
|
|
|
}
|
|
|
+ String successRate = String.format("%.2f", Double.valueOf(successCount)/ Double.valueOf(totalCount));
|
|
|
+ String unkonwRate = String.format("%.2f", Double.valueOf(unkonwCount)/ Double.valueOf(totalCount));
|
|
|
+ sheet.getRow(rows-1).createCell(7).setCellValue(successRate);
|
|
|
+ sheet.getRow(rows-1).createCell(8).setCellValue(unkonwRate);
|
|
|
save(fileName);
|
|
|
+ totalCount = 0l;
|
|
|
+ successCount = 0l;
|
|
|
+ failCount = 0l;
|
|
|
+ unkonwCount = 0l;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -239,6 +302,30 @@ public class DataWriteTest30zc {
|
|
|
tempReferenceJA.add(referenceJO.getString("title"));
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ String llmQuestion = "你是一个资深的医学专家,请用“是”、“否”和“不确定”回答用户的问题回答。\n" +
|
|
|
+ "\n" +
|
|
|
+ "#要求\n" +
|
|
|
+ "1、只回答“是”、“否”和“不确定”,不要有额外的信息。\n" +
|
|
|
+ "\n" +
|
|
|
+ "#示例\n" +
|
|
|
+ "用户输入:急性上呼吸道感染的治疗药物是否包括“利巴韦林”?\n" +
|
|
|
+ "输出:是\n\n" +
|
|
|
+ "请回答:"+disease+"的"+relation+"是否包括“"+name+"”?";
|
|
|
+ String llmAnswer = BaidubceUtil.getChatResponse(llmQuestion, accessToken);
|
|
|
+ totalCount++;
|
|
|
+ temp.put("LLM-question",llmQuestion);
|
|
|
+ temp.put("LLM-answer",llmAnswer);
|
|
|
+ if(!StringUtils.isEmpty(llmAnswer) && llmAnswer.length()<7) {
|
|
|
+ if (llmAnswer.contains("是")) {
|
|
|
+ successCount++;
|
|
|
+ } else if (llmAnswer.contains("否")) {
|
|
|
+ failCount++;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ unkonwCount++;
|
|
|
+ }
|
|
|
+
|
|
|
temp.put("reference", tempReferenceJA);
|
|
|
if(tempReferenceJA.size()<1){
|
|
|
temp.put("defaultReferences", defaultReferences);
|