Commit db37edc2 authored by alex yao's avatar alex yao

feat:更新MinerU 响应实体

parent 993879d8
......@@ -60,33 +60,33 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
@Override
@Consumer(topic = AirportTopic.AIRPORT_PDF_PAPER_TOPIC)
public void pdfPaper(AirportPDFPaperMessage message) throws Exception {
List<String> results = new CopyOnWriteArrayList<>();
List<Integer> ruleIdList = message.getRuleIdList();
AiDataAuditRuleQueryCondition aiDataAuditRuleQueryCondition = new AiDataAuditRuleQueryCondition();
aiDataAuditRuleQueryCondition.setIds(ruleIdList.toArray(new Long[ruleIdList.size()]));
List<AiDataAuditRuleQueryItem> aiDataAuditRuleQueryItems = bizAiDataAuditRuleService.aiDataAuditRuleQueryItemList(aiDataAuditRuleQueryCondition, null);
CountDownLatch countDownLatch = new CountDownLatch(aiDataAuditRuleQueryItems.size());
try {
//
for (AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem : aiDataAuditRuleQueryItems) {
String ruleType = aiDataAuditRuleQueryItem.getDataAuditRuleType();
if (ruleType.equals("c2c")) {
c2c(aiDataAuditRuleQueryItem, results, countDownLatch);
} else if (ruleType.equals("c2f")) {
c2f(aiDataAuditRuleQueryItem, results, countDownLatch);
} else if (ruleType.equals("f2f")) {
f2f(aiDataAuditRuleQueryItem, results, countDownLatch);
} else {
countDownLatch.countDown();
}
}
countDownLatch.await();
} catch (Exception e) {
throw new BusinessException(e.getMessage());
}
// List<String> results = new CopyOnWriteArrayList<>();
//
// List<Integer> ruleIdList = message.getRuleIdList();
// AiDataAuditRuleQueryCondition aiDataAuditRuleQueryCondition = new AiDataAuditRuleQueryCondition();
// aiDataAuditRuleQueryCondition.setIds(ruleIdList.toArray(new Long[ruleIdList.size()]));
// List<AiDataAuditRuleQueryItem> aiDataAuditRuleQueryItems = bizAiDataAuditRuleService.aiDataAuditRuleQueryItemList(aiDataAuditRuleQueryCondition, null);
//
//
// CountDownLatch countDownLatch = new CountDownLatch(aiDataAuditRuleQueryItems.size());
// try {
// //
// for (AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem : aiDataAuditRuleQueryItems) {
// String ruleType = aiDataAuditRuleQueryItem.getDataAuditRuleType();
// if (ruleType.equals("c2c")) {
// c2c(aiDataAuditRuleQueryItem, results, countDownLatch);
// } else if (ruleType.equals("c2f")) {
// c2f(aiDataAuditRuleQueryItem, results, countDownLatch);
// } else if (ruleType.equals("f2f")) {
// f2f(aiDataAuditRuleQueryItem, results, countDownLatch);
// } else {
// countDownLatch.countDown();
// }
// }
// countDownLatch.await();
// } catch (Exception e) {
// throw new BusinessException(e.getMessage());
// }
}
// 字段对字段
......
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.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.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.api.MinerUAPI;
import org.apache.http.Header;
import org.apache.http.message.BasicHeader;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/**
* @author alex.yao
......@@ -37,6 +25,6 @@ public class MinerUOcrServiceImpl implements MinerUOcrService {
public MinerUOcrResult fileParse(File file){
MinerUResponse minerUResponse = new MinerUResponse();
minerUResponse.setFiles(file);
return (MinerUOcrResult)minerUAPI.parsePDF(minerUResponse);
return (MinerUOcrResult) minerUAPI.parsePDF(minerUResponse);
}
}
package cn.com.poc.thirdparty.resource.demand.ai.entity.orc.minerU;
import cn.com.poc.thirdparty.resource.minerU.MinerUResult;
/**
* @Author:Roger Wu
* @name:MinerUOcrResult
* @Date:2025-10-30 2:26
*/
public class MinerUOcrResult {
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 class MinerUOcrResult extends MinerUResult {
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 {
private File files;
private String output_dir = "./output";
private String output_dir = "/hy-tmp/output";
private String lang_list = "ch";
private String backend = "vlm-vllm-async-engine";
private String parse_method = "auto";
private String parse_method = "ocr";
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;
import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.StringUtils;
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.minerU.MinerUResponse;
import cn.com.poc.thirdparty.resource.minerU.MinerUResult;
import cn.com.yict.framemax.core.exception.BusinessException;
import com.google.gson.Gson;
import okhttp3.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.core.parameters.P;
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
......@@ -27,11 +30,11 @@ public class MinerUAPI {
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";
public Object parsePDF(MinerUResponse minerUResponse) {
public MinerUResult parsePDF(MinerUResponse minerUResponse) {
MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
File file = minerUResponse.getFiles();
try {
......@@ -60,7 +63,11 @@ public class MinerUAPI {
.method("POST", body)
.addHeader("Content-Type", "multipart/form-data")
.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) {
logger.error("MinerU 调用失败", e);
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