fix: 补齐L09的MinerU自动装配配置类
- 新增 MinerU Spring Boot 配置属性类 - 新增 PDF 文档解析自动装配并暴露统一 DocumentParseService
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
package com.easyagents.spring.boot.document.pdf.mineru;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* MinerU Spring Boot 配置。
|
||||
*
|
||||
* @author Codex
|
||||
* @since 2026-04-14
|
||||
*/
|
||||
@ConfigurationProperties(prefix = "easy-agents.document.pdf.mineru")
|
||||
public class MineruDocumentProperties {
|
||||
|
||||
private String baseUrl;
|
||||
private Integer connectTimeoutMs = 3000;
|
||||
private Integer readTimeoutMs = 600000;
|
||||
private Integer writeTimeoutMs = 600000;
|
||||
private Integer pollIntervalMs = 1000;
|
||||
private Integer resultTimeoutMs = 1800000;
|
||||
private String defaultBackend = "vlm-http-client";
|
||||
private String defaultParseMethod = "auto";
|
||||
private List<String> defaultLangList = new ArrayList<String>(Arrays.asList("ch"));
|
||||
private Boolean defaultFormulaEnable = true;
|
||||
private Boolean defaultTableEnable = true;
|
||||
|
||||
public String getBaseUrl() {
|
||||
return baseUrl;
|
||||
}
|
||||
|
||||
public void setBaseUrl(String baseUrl) {
|
||||
this.baseUrl = baseUrl;
|
||||
}
|
||||
|
||||
public Integer getConnectTimeoutMs() {
|
||||
return connectTimeoutMs;
|
||||
}
|
||||
|
||||
public void setConnectTimeoutMs(Integer connectTimeoutMs) {
|
||||
this.connectTimeoutMs = connectTimeoutMs;
|
||||
}
|
||||
|
||||
public Integer getReadTimeoutMs() {
|
||||
return readTimeoutMs;
|
||||
}
|
||||
|
||||
public void setReadTimeoutMs(Integer readTimeoutMs) {
|
||||
this.readTimeoutMs = readTimeoutMs;
|
||||
}
|
||||
|
||||
public Integer getWriteTimeoutMs() {
|
||||
return writeTimeoutMs;
|
||||
}
|
||||
|
||||
public void setWriteTimeoutMs(Integer writeTimeoutMs) {
|
||||
this.writeTimeoutMs = writeTimeoutMs;
|
||||
}
|
||||
|
||||
public Integer getPollIntervalMs() {
|
||||
return pollIntervalMs;
|
||||
}
|
||||
|
||||
public void setPollIntervalMs(Integer pollIntervalMs) {
|
||||
this.pollIntervalMs = pollIntervalMs;
|
||||
}
|
||||
|
||||
public Integer getResultTimeoutMs() {
|
||||
return resultTimeoutMs;
|
||||
}
|
||||
|
||||
public void setResultTimeoutMs(Integer resultTimeoutMs) {
|
||||
this.resultTimeoutMs = resultTimeoutMs;
|
||||
}
|
||||
|
||||
public String getDefaultBackend() {
|
||||
return defaultBackend;
|
||||
}
|
||||
|
||||
public void setDefaultBackend(String defaultBackend) {
|
||||
this.defaultBackend = defaultBackend;
|
||||
}
|
||||
|
||||
public String getDefaultParseMethod() {
|
||||
return defaultParseMethod;
|
||||
}
|
||||
|
||||
public void setDefaultParseMethod(String defaultParseMethod) {
|
||||
this.defaultParseMethod = defaultParseMethod;
|
||||
}
|
||||
|
||||
public List<String> getDefaultLangList() {
|
||||
return defaultLangList;
|
||||
}
|
||||
|
||||
public void setDefaultLangList(List<String> defaultLangList) {
|
||||
this.defaultLangList = defaultLangList == null
|
||||
? new ArrayList<String>(Arrays.asList("ch"))
|
||||
: defaultLangList;
|
||||
}
|
||||
|
||||
public Boolean getDefaultFormulaEnable() {
|
||||
return defaultFormulaEnable;
|
||||
}
|
||||
|
||||
public void setDefaultFormulaEnable(Boolean defaultFormulaEnable) {
|
||||
this.defaultFormulaEnable = defaultFormulaEnable;
|
||||
}
|
||||
|
||||
public Boolean getDefaultTableEnable() {
|
||||
return defaultTableEnable;
|
||||
}
|
||||
|
||||
public void setDefaultTableEnable(Boolean defaultTableEnable) {
|
||||
this.defaultTableEnable = defaultTableEnable;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.easyagents.spring.boot.document.pdf.mineru;
|
||||
|
||||
import com.easyagents.document.core.DocumentParseService;
|
||||
import com.easyagents.document.pdf.PdfDocumentParseService;
|
||||
import com.easyagents.document.pdf.mineru.MineruPdfDocumentParseService;
|
||||
import com.easyagents.document.pdf.mineru.MineruProperties;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* MinerU PDF 文档解析自动装配。
|
||||
*
|
||||
* @author Codex
|
||||
* @since 2026-04-14
|
||||
*/
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
@ConditionalOnClass(MineruPdfDocumentParseService.class)
|
||||
@ConditionalOnProperty(prefix = "easy-agents.document.pdf", name = "provider", havingValue = "mineru")
|
||||
@EnableConfigurationProperties(MineruDocumentProperties.class)
|
||||
public class MineruPdfAutoConfiguration {
|
||||
|
||||
/**
|
||||
* 注册统一 PDF 解析服务。
|
||||
*
|
||||
* @param properties Spring Boot 配置
|
||||
* @return PDF 解析服务
|
||||
*/
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(PdfDocumentParseService.class)
|
||||
public PdfDocumentParseService pdfDocumentParseService(MineruDocumentProperties properties) {
|
||||
return new MineruPdfDocumentParseService(toMineruProperties(properties));
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 PDF 服务以统一文档解析服务类型暴露,便于调用方直接按抽象注入。
|
||||
*
|
||||
* @param pdfDocumentParseService PDF 解析服务
|
||||
* @return 统一文档解析服务
|
||||
*/
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(DocumentParseService.class)
|
||||
public DocumentParseService documentParseService(PdfDocumentParseService pdfDocumentParseService) {
|
||||
return pdfDocumentParseService;
|
||||
}
|
||||
|
||||
private MineruProperties toMineruProperties(MineruDocumentProperties properties) {
|
||||
MineruProperties mineruProperties = new MineruProperties();
|
||||
mineruProperties.setBaseUrl(properties.getBaseUrl());
|
||||
mineruProperties.setConnectTimeoutMs(properties.getConnectTimeoutMs());
|
||||
mineruProperties.setReadTimeoutMs(properties.getReadTimeoutMs());
|
||||
mineruProperties.setWriteTimeoutMs(properties.getWriteTimeoutMs());
|
||||
mineruProperties.setPollIntervalMs(properties.getPollIntervalMs());
|
||||
mineruProperties.setResultTimeoutMs(properties.getResultTimeoutMs());
|
||||
mineruProperties.setDefaultBackend(properties.getDefaultBackend());
|
||||
mineruProperties.setDefaultParseMethod(properties.getDefaultParseMethod());
|
||||
mineruProperties.setDefaultLangList(properties.getDefaultLangList());
|
||||
mineruProperties.setDefaultFormulaEnable(properties.getDefaultFormulaEnable());
|
||||
mineruProperties.setDefaultTableEnable(properties.getDefaultTableEnable());
|
||||
return mineruProperties;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user