Commit db37edc2 authored by alex yao's avatar alex yao

feat:更新MinerU 响应实体

parent 993879d8
...@@ -60,33 +60,33 @@ public class AirportConsumerServiceImpl implements AirportConsumerService { ...@@ -60,33 +60,33 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
@Override @Override
@Consumer(topic = AirportTopic.AIRPORT_PDF_PAPER_TOPIC) @Consumer(topic = AirportTopic.AIRPORT_PDF_PAPER_TOPIC)
public void pdfPaper(AirportPDFPaperMessage message) throws Exception { public void pdfPaper(AirportPDFPaperMessage message) throws Exception {
List<String> results = new CopyOnWriteArrayList<>(); // List<String> results = new CopyOnWriteArrayList<>();
//
List<Integer> ruleIdList = message.getRuleIdList(); // List<Integer> ruleIdList = message.getRuleIdList();
AiDataAuditRuleQueryCondition aiDataAuditRuleQueryCondition = new AiDataAuditRuleQueryCondition(); // AiDataAuditRuleQueryCondition aiDataAuditRuleQueryCondition = new AiDataAuditRuleQueryCondition();
aiDataAuditRuleQueryCondition.setIds(ruleIdList.toArray(new Long[ruleIdList.size()])); // aiDataAuditRuleQueryCondition.setIds(ruleIdList.toArray(new Long[ruleIdList.size()]));
List<AiDataAuditRuleQueryItem> aiDataAuditRuleQueryItems = bizAiDataAuditRuleService.aiDataAuditRuleQueryItemList(aiDataAuditRuleQueryCondition, null); // List<AiDataAuditRuleQueryItem> aiDataAuditRuleQueryItems = bizAiDataAuditRuleService.aiDataAuditRuleQueryItemList(aiDataAuditRuleQueryCondition, null);
//
//
CountDownLatch countDownLatch = new CountDownLatch(aiDataAuditRuleQueryItems.size()); // CountDownLatch countDownLatch = new CountDownLatch(aiDataAuditRuleQueryItems.size());
try { // try {
// // //
for (AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem : aiDataAuditRuleQueryItems) { // for (AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem : aiDataAuditRuleQueryItems) {
String ruleType = aiDataAuditRuleQueryItem.getDataAuditRuleType(); // String ruleType = aiDataAuditRuleQueryItem.getDataAuditRuleType();
if (ruleType.equals("c2c")) { // if (ruleType.equals("c2c")) {
c2c(aiDataAuditRuleQueryItem, results, countDownLatch); // c2c(aiDataAuditRuleQueryItem, results, countDownLatch);
} else if (ruleType.equals("c2f")) { // } else if (ruleType.equals("c2f")) {
c2f(aiDataAuditRuleQueryItem, results, countDownLatch); // c2f(aiDataAuditRuleQueryItem, results, countDownLatch);
} else if (ruleType.equals("f2f")) { // } else if (ruleType.equals("f2f")) {
f2f(aiDataAuditRuleQueryItem, results, countDownLatch); // f2f(aiDataAuditRuleQueryItem, results, countDownLatch);
} else { // } else {
countDownLatch.countDown(); // countDownLatch.countDown();
} // }
} // }
countDownLatch.await(); // countDownLatch.await();
} catch (Exception e) { // } catch (Exception e) {
throw new BusinessException(e.getMessage()); // throw new BusinessException(e.getMessage());
} // }
} }
// 字段对字段 // 字段对字段
......
package cn.com.poc.thirdparty.resource.demand.ai.aggregate.impl; package cn.com.poc.thirdparty.resource.demand.ai.aggregate.impl;
import cn.com.poc.thirdparty.resource.demand.ai.aggregate.LegalService;
import cn.com.poc.thirdparty.resource.demand.ai.aggregate.MinerUOcrService; import cn.com.poc.thirdparty.resource.demand.ai.aggregate.MinerUOcrService;
import cn.com.poc.thirdparty.resource.demand.ai.entity.legal.LegalFileResponse;
import cn.com.poc.thirdparty.resource.demand.ai.entity.legal.LegalFileResult;
import cn.com.poc.thirdparty.resource.demand.ai.entity.orc.minerU.MinerUOcrResponse;
import cn.com.poc.thirdparty.resource.demand.ai.entity.orc.minerU.MinerUOcrResult; import cn.com.poc.thirdparty.resource.demand.ai.entity.orc.minerU.MinerUOcrResult;
import cn.com.poc.thirdparty.resource.demand.ai.route.DgtoolsApiRoute;
import cn.com.poc.thirdparty.resource.demand.dgTools.DgtoolsAbstractHttpClient;
import cn.com.poc.thirdparty.resource.demand.member.service.DemandAuthService;
import cn.com.poc.thirdparty.resource.minerU.MinerUResponse; import cn.com.poc.thirdparty.resource.minerU.MinerUResponse;
import cn.com.poc.thirdparty.resource.minerU.api.MinerUAPI; import cn.com.poc.thirdparty.resource.minerU.api.MinerUAPI;
import org.apache.http.Header;
import org.apache.http.message.BasicHeader;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.File; import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/** /**
* @author alex.yao * @author alex.yao
...@@ -37,6 +25,6 @@ public class MinerUOcrServiceImpl implements MinerUOcrService { ...@@ -37,6 +25,6 @@ public class MinerUOcrServiceImpl implements MinerUOcrService {
public MinerUOcrResult fileParse(File file){ public MinerUOcrResult fileParse(File file){
MinerUResponse minerUResponse = new MinerUResponse(); MinerUResponse minerUResponse = new MinerUResponse();
minerUResponse.setFiles(file); minerUResponse.setFiles(file);
return (MinerUOcrResult)minerUAPI.parsePDF(minerUResponse); return (MinerUOcrResult) minerUAPI.parsePDF(minerUResponse);
} }
} }
package cn.com.poc.thirdparty.resource.demand.ai.entity.orc.minerU; package cn.com.poc.thirdparty.resource.demand.ai.entity.orc.minerU;
import cn.com.poc.thirdparty.resource.minerU.MinerUResult;
/** /**
* @Author:Roger Wu * @Author:Roger Wu
* @name:MinerUOcrResult * @name:MinerUOcrResult
* @Date:2025-10-30 2:26 * @Date:2025-10-30 2:26
*/ */
public class MinerUOcrResult { public class MinerUOcrResult extends MinerUResult {
private String backend;
private String version;
private Results results;
public String getBackend() {
return backend;
}
public void setBackend(String backend) {
this.backend = backend;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public Results getResults() {
return results;
}
public void setResults(Results results) {
this.results = results;
}
} }
package cn.com.poc.thirdparty.resource.minerU;
/**
* @author alex.yao
* @date 2025/10/31 0:36
*/
public class MdContent {
private String md_content;
public String getMd_content() {
return md_content;
}
public void setMd_content(String md_content) {
this.md_content = md_content;
}
@Override
public String toString() {
return "MdContent{" +
"md_content='" + md_content + '\'' +
'}';
}
}
...@@ -10,13 +10,13 @@ public class MinerUResponse { ...@@ -10,13 +10,13 @@ public class MinerUResponse {
private File files; private File files;
private String output_dir = "./output"; private String output_dir = "/hy-tmp/output";
private String lang_list = "ch"; private String lang_list = "ch";
private String backend = "vlm-vllm-async-engine"; private String backend = "vlm-vllm-async-engine";
private String parse_method = "auto"; private String parse_method = "ocr";
private boolean formula_enable = true; private boolean formula_enable = true;
......
package cn.com.poc.thirdparty.resource.minerU;
import java.util.Map;
public class MinerUResult {
private String backend;
private Map<String, MdContent> results;
private String version;
public String getBackend() {
return backend;
}
public void setBackend(String backend) {
this.backend = backend;
}
public Map<String, MdContent> getResults() {
return results;
}
public void setResults(Map<String, MdContent> results) {
this.results = results;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
@Override
public String toString() {
return "MinerUResult{" +
"backend='" + backend + '\'' +
", results=" + results +
", version='" + version + '\'' +
'}';
}
}
package cn.com.poc.thirdparty.resource.minerU.api; package cn.com.poc.thirdparty.resource.minerU.api;
import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.StringUtils; import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.thirdparty.resource.baidu.api.BaiduTextDiffApi; import cn.com.poc.thirdparty.resource.baidu.api.BaiduTextDiffApi;
import cn.com.poc.thirdparty.resource.baidu.entity.result.BaiduTextDiffResult; import cn.com.poc.thirdparty.resource.baidu.entity.result.BaiduTextDiffResult;
import cn.com.poc.thirdparty.resource.minerU.MinerUResponse; import cn.com.poc.thirdparty.resource.minerU.MinerUResponse;
import cn.com.poc.thirdparty.resource.minerU.MinerUResult;
import cn.com.yict.framemax.core.exception.BusinessException; import cn.com.yict.framemax.core.exception.BusinessException;
import com.google.gson.Gson; import com.google.gson.Gson;
import okhttp3.*; import okhttp3.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.Assert; import org.springframework.util.Assert;
...@@ -27,11 +30,11 @@ public class MinerUAPI { ...@@ -27,11 +30,11 @@ public class MinerUAPI {
private final Logger logger = LoggerFactory.getLogger(BaiduTextDiffApi.class); private final Logger logger = LoggerFactory.getLogger(BaiduTextDiffApi.class);
public final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().readTimeout(300, TimeUnit.SECONDS).build(); public final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().readTimeout(10 * 60, TimeUnit.SECONDS).build();
private String MinerU_URL = "http://i-2.gpushare.com:53865/file_parse"; private String MinerU_URL = "http://i-2.gpushare.com:53865/file_parse";
public Object parsePDF(MinerUResponse minerUResponse) { public MinerUResult parsePDF(MinerUResponse minerUResponse) {
MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM); MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
File file = minerUResponse.getFiles(); File file = minerUResponse.getFiles();
try { try {
...@@ -60,7 +63,11 @@ public class MinerUAPI { ...@@ -60,7 +63,11 @@ public class MinerUAPI {
.method("POST", body) .method("POST", body)
.addHeader("Content-Type", "multipart/form-data") .addHeader("Content-Type", "multipart/form-data")
.build(); .build();
return Objects.requireNonNull(HTTP_CLIENT.newCall(request).execute().body()).string(); String result = Objects.requireNonNull(HTTP_CLIENT.newCall(request).execute().body()).string();
if (StringUtils.isNotBlank(result)) {
return JsonUtils.deSerialize(result, MinerUResult.class);
}
return null;
} catch (IOException e) { } catch (IOException e) {
logger.error("MinerU 调用失败", e); logger.error("MinerU 调用失败", e);
throw new BusinessException("MinerU 调用失败"); throw new BusinessException("MinerU 调用失败");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment