Commit 8e3164ec authored by alex yao's avatar alex yao

feat(ai): 添加Markdown转Word功能

parent 3caad275
package cn.com.poc.thirdparty.resource.demand.ai.aggregate;
import cn.com.poc.thirdparty.resource.demand.ai.entity.md2word.Md2WordResponse;
import cn.com.poc.thirdparty.resource.demand.ai.entity.md2word.Md2WordResult;
/**
* @author alex.yao
* @date 2025/7/28
*/
public interface MD2WordService {
/**
* markdown转word
*
* @param response
* @return
*/
Md2WordResult md2Word(Md2WordResponse response);
}
package cn.com.poc.thirdparty.resource.demand.ai.aggregate.impl;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import cn.com.poc.thirdparty.resource.demand.ai.aggregate.MD2WordService;
import cn.com.poc.thirdparty.resource.demand.ai.entity.md2word.Md2WordResponse;
import cn.com.poc.thirdparty.resource.demand.ai.entity.md2word.Md2WordResult;
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 org.apache.http.Header;
import org.apache.http.message.BasicHeader;
import org.springframework.stereotype.Service;
/**
* @author alex.yao
* @date 2025/7/28
*/
@Service
public class Md2WordServiceImpl implements MD2WordService {
@Resource
private DgtoolsAbstractHttpClient dgToolsAbstractHttpClient;
@Resource
private DemandAuthService demandAuthService;
@Override
public Md2WordResult md2Word(Md2WordResponse response) {
String url = DgtoolsApiRoute.DgtoolsAI.MD_2_WORD_FILE;
List<Header> headers = new ArrayList<Header>() {{
add(DgtoolsApiRoute.JSON_HEADER);
add(DgtoolsApiRoute.AI_HEADER);
add(new BasicHeader(DgtoolsApiRoute.HEADER_X_PLATFORM_AUTHORIZATION, demandAuthService.getToken()));
}};
return dgToolsAbstractHttpClient.doRequest(url, response, headers);
}
}
package cn.com.poc.thirdparty.resource.demand.ai.entity.md2word;
import java.io.Serializable;
import cn.com.poc.thirdparty.resource.demand.dgTools.request.AbstractRequest;
/**
* @author alex.yao
* @date 2025/7/28
*/
public class Md2WordResponse extends AbstractRequest<Md2WordResult> implements Serializable {
private String filePath;
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
@Override
public String getMethod() throws Exception {
return null;
}
}
package cn.com.poc.thirdparty.resource.demand.ai.entity.md2word;
import cn.com.poc.thirdparty.resource.demand.dgTools.result.AbstractResult;
/**
* @author alex.yao
* @date 2025/7/28
*/
public class Md2WordResult extends AbstractResult {
private String filePath;
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
}
...@@ -301,6 +301,11 @@ public interface DgtoolsApiRoute { ...@@ -301,6 +301,11 @@ public interface DgtoolsApiRoute {
* 法律卷宗文件导出 * 法律卷宗文件导出
*/ */
String LEGAL_FILE = "largeModelRest/legalFile.json"; String LEGAL_FILE = "largeModelRest/legalFile.json";
/**
* Markdown转Word
*/
String MD_2_WORD_FILE = "largeModelRest/md2WordFile.json";
} }
interface ClickHouse { interface ClickHouse {
......
package cn.com.poc.thirdparty.resource.demand.ai.service; package cn.com.poc.thirdparty.resource.demand.ai.service;
import cn.com.poc.common.utils.JsonUtils; import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.thirdparty.resource.demand.ai.aggregate.MD2WordService;
import cn.com.poc.thirdparty.resource.demand.ai.entity.csvchain.CSVChainResponse; import cn.com.poc.thirdparty.resource.demand.ai.entity.csvchain.CSVChainResponse;
import cn.com.poc.thirdparty.resource.demand.ai.entity.csvchain.CSVChainResult; import cn.com.poc.thirdparty.resource.demand.ai.entity.csvchain.CSVChainResult;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResponse; import cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResponse;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResult; import cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResult;
import cn.com.poc.thirdparty.resource.demand.ai.entity.md2word.Md2WordResponse;
import cn.com.poc.thirdparty.resource.demand.ai.entity.md2word.Md2WordResult;
import cn.com.poc.thirdparty.service.ChainService; import cn.com.poc.thirdparty.service.ChainService;
import cn.com.yict.framemax.core.spring.SingleContextInitializer; import cn.com.yict.framemax.core.spring.SingleContextInitializer;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
...@@ -28,6 +31,17 @@ public class ChainServiceTest { ...@@ -28,6 +31,17 @@ public class ChainServiceTest {
@Resource @Resource
private ChainService chainService; private ChainService chainService;
@Resource
private MD2WordService md2WordService;
@Test
public void test_md2Word() {
Md2WordResponse response = new Md2WordResponse();
response.setFilePath("https://gsst-poe-sit.gz.bcebos.com/v1/software-copyright/%E6%8A%80%E6%9C%AF%E6%9E%B6%E6%9E%84.md");
Md2WordResult md2WordResult = md2WordService.md2Word(response);
System.out.println(md2WordResult.getFilePath());
}
@Test @Test
public void test_dbChain() { public void test_dbChain() {
......
package cn.com.poc.utils; package cn.com.poc.utils;
import cn.com.poc.ai_software_copyright.contant.AiSoftWareCopyRightRedisKey;
import cn.com.poc.common.service.BosConfigService; import cn.com.poc.common.service.BosConfigService;
import cn.com.poc.common.service.RedisService;
import cn.com.poc.common.utils.DocumentLoad; import cn.com.poc.common.utils.DocumentLoad;
import cn.com.poc.common.utils.FileUtils; import cn.com.poc.common.utils.FileUtils;
import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.common.utils.UUIDTool; import cn.com.poc.common.utils.UUIDTool;
import cn.com.yict.framemax.core.spring.SingleContextInitializer; import cn.com.yict.framemax.core.spring.SingleContextInitializer;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.crypto.digest.MD5; import cn.hutool.crypto.digest.MD5;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper; import org.apache.pdfbox.text.PDFTextStripper;
import org.junit.Test; import org.junit.Test;
...@@ -29,6 +34,32 @@ public class FileUtilsTest { ...@@ -29,6 +34,32 @@ public class FileUtilsTest {
@Resource @Resource
private BosConfigService bosConfigService; private BosConfigService bosConfigService;
@Resource
private RedisService redisService;
@Test
public void test_md() throws IOException {
String result = redisService.get(AiSoftWareCopyRightRedisKey.CALL_BACK + "10:source_code").toString();
JSONObject jsonObject = JSONObject.parseObject(result.toString());
JSONArray jsonArray = jsonObject.getJSONArray("result");
System.out.println(jsonArray.toString());
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < jsonArray.size(); i++) {
String content = jsonArray.getString(i);
stringBuilder.append(content);
}
File file = new File("C:\\Users\\52747\\Desktop\\source_code.md");
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(stringBuilder.toString().getBytes());
fileOutputStream.flush();
fileOutputStream.close();
}
@Test @Test
public void test_wordConvertPDF() throws Exception { public void test_wordConvertPDF() throws Exception {
String content = "hello world"; String content = "hello world";
...@@ -88,7 +119,8 @@ public class FileUtilsTest { ...@@ -88,7 +119,8 @@ public class FileUtilsTest {
@Test @Test
public void test_pdf() { public void test_pdf() {
File file = new File("D:\\项目\\【W-001】万讯\\【001】香港机场\\Sample Data_2025-10-17\\Sample Document\\WP Data\\WP057940\\1. Work Method Statement - 1.BCJV-3408-Z-00685C Method Statement for Installation of VDC Works(A.pdf"); File file = new File(
"D:\\项目\\【W-001】万讯\\【001】香港机场\\Sample Data_2025-10-17\\Sample Document\\WP Data\\WP057940\\1. Work Method Statement - 1.BCJV-3408-Z-00685C Method Statement for Installation of VDC Works(A.pdf");
String pdfResult = DocumentLoad.documentToText(file); String pdfResult = DocumentLoad.documentToText(file);
System.out.println(pdfResult); System.out.println(pdfResult);
} }
......
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