Appearance
java
java
// maven 依赖
/**
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.10</version>
</dependency>
*/
// Demo
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;
public class Demo {
private static final String VERSION = "v1";
private static final String APP_KEY = "登录 https://openai.wesuresoft.com 获取";
private static final String APP_SECRET = "登录 https://openai.wesuresoft.com 获取";
private static final String BASE_URL = "https://openai.wesuresoft.com/api";
public static void main(String[] args) {
String base64 = "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAM";
System.out.println("========================================> OCR响应内容为:" + ocrReport(base64));
String json = "{\"diseases\": [1306]," +
"\"items\": {\"gender\": 1, \"age\": 58, \"RBC\": 4.33, \"MCV\": 95.9, \"PDW\": 16.7, \"WBC\": 6.12, \"NEUT%\": 61.7, " +
"\"LYMPH%\": 31.9, \"EO%\": 1.8, \"BASO%\": 0.2, \"NEUT#\": 3.78, \"LYMPH#\": 1.95, \"BASO#\": 0.01, " +
"\"HGB\": 137, \"HCT\": 0.415, \"MCH\": 31.6, \"MCHC\": 330, \"R-CV\": 13.3, \"PLT\": 147, " +
"\"MPV\": 11, \"PCT\": 0.16, \"MONO#\": 0.27, \"MONO%\": 4.4, \"EO#\": 0.11}, \"scene\": 300010}";
String predict = predict(json);
System.out.println("========================================> 疾病预测响应内容为:" + predict);
JSONObject jsonObject = JSONUtil.parseObj(predict);
String requestId = jsonObject.getStr("requestId");
String json2 = "{\"requestId\":\"" + requestId + "\"}";
System.out.println("========================================> 结果分析响应内容为:" + explainer(json2));
String json3 = "{\"code\":\"1302\"}";
System.out.println("========================================> 疾病科普响应内容为:" + knowledge(json3));
}
java
/**
* ocr识别
*
* @param base64 /
*/
public static String ocrReport(String base64) {
Map<String, Object> param = new HashMap<>();
param.put("imgContents", base64);
long timestamp = System.currentTimeMillis();
HttpResponse execute = HttpRequest
.post(BASE_URL + "/ocr/report")
.header("Authorization", APP_KEY + ":" + md5Hex(VERSION + timestamp + APP_SECRET))
.header("Version", "v1")
.header("Timestamp", String.valueOf(timestamp))
.contentType("multipart/form-data")
.form(param)
.execute();
return execute.body();
}
/**
* 疾病预测
*
* @param json 请求体json
*/
public static String predict(String json) {
long timestamp = System.currentTimeMillis();
HttpResponse execute = HttpRequest
.post(BASE_URL + "/dis/predict")
.header("Authorization", APP_KEY + ":" + md5Hex(VERSION + timestamp + APP_SECRET))
.header("Version", "v1")
.header("Timestamp", String.valueOf(timestamp))
.contentType("application/json;charset=utf8")
.body(json)
.execute();
return execute.body();
}
/**
* 结果分析
*
* @param json 请求体json
*/
public static String explainer(String json) {
long timestamp = System.currentTimeMillis();
HttpResponse execute = HttpRequest
.post(BASE_URL + "/dis/explainer")
.header("Authorization", APP_KEY + ":" + md5Hex(VERSION + timestamp + APP_SECRET))
.header("Version", "v1")
.header("Timestamp", String.valueOf(timestamp))
.contentType("application/json;charset=utf8")
.body(json)
.execute();
return execute.body();
}
/**
* 疾病科普
*
* @param json 请求体json
*/
public static String knowledge(String json) {
long timestamp = System.currentTimeMillis();
HttpResponse execute = HttpRequest
.post(BASE_URL + "/dis/knowledge")
.header("Authorization", APP_KEY + ":" + md5Hex(VERSION + timestamp + APP_SECRET))
.header("Version", "v1")
.header("Timestamp", String.valueOf(timestamp))
.contentType("application/json;charset=utf8")
.body(json)
.execute();
return execute.body();
}
/**
* 32位md5
*/
private static String md5Hex(String str) {
try {
byte[] secretBytes = MessageDigest.getInstance("md5").digest(str.getBytes(StandardCharsets.UTF_8));
StringBuilder md5code = new StringBuilder(new BigInteger(1, secretBytes).toString(16));
for (int i = 0; i < 32 - md5code.length(); i++) {
md5code.insert(0, "0");
}
return md5code.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
}