Commit 16ec52bd authored by R10's avatar R10

Merge branch 'release_gdghg' of ssh://gitlab.gsstcloud.com:10022/poc/poc-api into release_gdghg

# Conflicts:
#	src/main/java/cn/com/poc/message/service/impl/AirportConsumerServiceImpl.java
parents a2578fc8 db37edc2
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-1.gpushare.com:53412/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 调用失败");
......
package cn.com.poc.mineru;
import cn.com.poc.thirdparty.resource.minerU.MinerUResponse;
import cn.com.poc.thirdparty.resource.minerU.api.MinerUAPI;
import cn.com.yict.framemax.core.spring.SingleContextInitializer;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import javax.annotation.Resource;
import java.io.File;
/**
* @author alex.yao
* @date 2025/10/30 23:46
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(initializers = SingleContextInitializer.class)
@WebAppConfiguration
public class MinerUTest {
@Resource
private MinerUAPI minerUAPI;
@Test
public void test_minerU() {
File file = new File("C:\\Users\\Ayyy\\Desktop\\土地租赁合同2.pdf");
MinerUResponse minerUResponse = new MinerUResponse();
minerUResponse.setFiles(file);
System.out.println(minerUAPI.parsePDF(minerUResponse).toString());
}
}
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