Skip to content
On this page

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;
    }

}