完善AI相关接口

This commit is contained in:
chenxudong 2025-04-01 10:25:00 +08:00
parent 0c84a91bc8
commit 48ad417e94
2 changed files with 8 additions and 6 deletions

View File

@ -1,6 +1,8 @@
package com.electromagnetic.industry.software.manage.controller;
import cn.hutool.core.io.FileUtil;
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil;
import com.electromagnetic.industry.software.manage.pojo.req.ChatQueryDTO;
import com.electromagnetic.industry.software.manage.service.serviceimpl.AiChatService;
import org.springframework.web.bind.annotation.RequestBody;
@ -26,6 +28,10 @@ public class AiChatController {
@RequestMapping(value = "addKnowledge")
public ElectromagneticResult<?> addKnowledge(@RequestParam("file") MultipartFile file) throws IOException {
String fileType = FileUtil.extName(file.getOriginalFilename());
if (!fileType.equals("pdf")) {
return ElectromagneticResultUtil.fail("-1", "当前仅支持pdf格式文件");
}
return aiChatService.addKnowledge(file);
}

View File

@ -1,9 +1,9 @@
package com.electromagnetic.industry.software.manage.service.serviceimpl;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.text.StrFormatter;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.electromagnetic.industry.software.common.parse.PdfParse;
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
import com.electromagnetic.industry.software.manage.config.ElePropertyConfig;
import lombok.extern.slf4j.Slf4j;
@ -12,7 +12,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.Map;
@ -25,17 +24,14 @@ public class AiChatService {
public ElectromagneticResult<?> chat(String message) {
Map<String, Object> map = new HashMap<>();
map.put("msg", message);
String url = StrFormatter.format("http://{}:{}/data/ed/ai/chat", elePropertyConfig.getAiRemoteHost(), elePropertyConfig.getAiRemotePort());
String res = HttpUtil.post(url, JSONUtil.toJsonStr(map), 5 * 60 * 1000);
log.info("answer is {}", res);
ElectromagneticResult<?> result = JSONUtil.toBean(res, ElectromagneticResult.class);
log.info("result ----------------------------->{}", result);
return result;
}
public ElectromagneticResult<?> addKnowledge(MultipartFile file) throws IOException {
String content = IoUtil.read(file.getInputStream(), Charset.defaultCharset());
String content = new PdfParse().parseAllText(file.getInputStream(), "pdf");
Map<String, Object> map = new HashMap<>();
map.put("content", content);
String url = StrFormatter.format("http://{}:{}/data/ed/ai/upload", elePropertyConfig.getAiRemoteHost(), elePropertyConfig.getAiRemotePort());