123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package cn.cslg.pas.controller.outApi;
- import cn.cslg.pas.common.core.base.Constants;
- import cn.cslg.pas.common.model.dify.ChatMessageDTO;
- import cn.cslg.pas.common.model.dify.DifyChatMessageDTO;
- import cn.cslg.pas.common.model.dify.DifyHistoryMessageDTO;
- import cn.cslg.pas.common.model.dify.OAMessageDTO;
- import cn.cslg.pas.common.model.dify.GenerateClaimDTO;
- import cn.cslg.pas.common.utils.CacheUtils;
- import cn.cslg.pas.common.utils.LoginUtils;
- import cn.cslg.pas.common.utils.Response;
- import cn.cslg.pas.domain.business.ProjectTask;
- import cn.cslg.pas.domain.business.ReportProject;
- import cn.cslg.pas.domain.business.TaskCode;
- import cn.cslg.pas.service.business.ProjectTaskService;
- import cn.cslg.pas.service.business.ReportProjectService;
- import cn.cslg.pas.service.business.TaskCodeService;
- import cn.cslg.pas.service.business.es.EsPatentVectorService;
- import cn.cslg.pas.service.common.DifyService;
- import cn.cslg.pas.service.common.POIService;
- import cn.cslg.pas.service.dify.DifySessionService;
- import com.alibaba.fastjson2.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.fasterxml.jackson.databind.JsonNode;
- import com.google.gson.JsonObject;
- import io.swagger.v3.oas.annotations.Operation;
- import io.swagger.v3.oas.annotations.tags.Tag;
- import jakarta.servlet.http.HttpServletRequest;
- import jakarta.servlet.http.HttpServletResponse;
- import lombok.RequiredArgsConstructor;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Lazy;
- import org.springframework.core.io.InputStreamResource;
- import org.springframework.http.MediaType;
- import org.springframework.http.ResponseEntity;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RestController;
- import org.springframework.web.context.request.RequestAttributes;
- import org.springframework.web.context.request.RequestContextHolder;
- import org.springframework.web.context.request.ServletRequestAttributes;
- import org.springframework.web.multipart.MultipartFile;
- import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
- import reactor.core.publisher.Flux;
- import java.io.IOException;
- import java.util.List;
- @SuppressWarnings({"all"})
- @Tag(name = "外部人员调用接口")
- @RestController
- @RequestMapping(Constants.API_XiaoSHI + "/dify")
- @RequiredArgsConstructor(onConstructor_ = {@Lazy})
- public class DifyController {
- private final DifyService difyService;
- private final DifySessionService difySessionService;
- private final POIService poiService;
- @Autowired
- private CacheUtils cacheUtils;
- @Autowired
- private LoginUtils loginUtils;
- @RequestMapping(value = "/chatMessage", method = RequestMethod.POST, produces = MediaType.TEXT_EVENT_STREAM_VALUE)
- @Operation(summary = "发送对话")
- public Flux<String> chatMessage(@RequestBody ChatMessageDTO chatMessageDTO) throws IOException {
- return difyService.getOkhttp(chatMessageDTO);
- }
- @RequestMapping(value = "/queryHistoryMessage", method = RequestMethod.POST)
- @Operation(summary = "查询历史会话")
- public Response queryHistoryMessage(@RequestBody DifyHistoryMessageDTO difyHistoryMessageDTO) throws IOException {
- String jsons = difyService.queryHistoryMessage(difyHistoryMessageDTO);
- JSONObject jsonObject = JSONObject.parseObject(jsons);
- return Response.success(jsonObject);
- }
- @RequestMapping(value = "/querySessionId", method = RequestMethod.GET)
- @Operation(summary = "查询会话id")
- public Response querySessionId(Integer projectId) throws IOException {
- String userId = loginUtils.getId().toString();
- return Response.success(difySessionService.getSessionId(projectId, userId));
- }
- @RequestMapping(value = "/stopMessage", method = RequestMethod.GET)
- @Operation(summary = "停止会话")
- public Response stopMessage(String taskId) throws IOException {
- return Response.success(difyService.stopMessage(taskId));
- }
- @RequestMapping(value = "/generateInventionPoint", method = RequestMethod.POST)
- @Operation(summary = "生成发明点")
- public Response generateInventionPoint(@RequestBody ChatMessageDTO chatMessageDTO) throws IOException {
- return Response.success(difyService.generateInventionPoint(chatMessageDTO));
- }
- @RequestMapping(value = "/generateClaimExplain", method = RequestMethod.POST)
- @Operation(summary = "生成权利要求解释和有益效果")
- public Response generateClaimExplain(@RequestBody GenerateClaimDTO generateClaimDTO) throws Exception {
- return Response.success(difyService.generateClaimExplain(generateClaimDTO));
- }
- @RequestMapping(value = "/sendOADefense", method = RequestMethod.GET, produces = MediaType.TEXT_EVENT_STREAM_VALUE)
- @Operation(summary = "OA答辩")
- public Flux<String> sendOADefense(Integer confessionSessionId) throws IOException {
- return difyService.successGetOAHttp(confessionSessionId);
- }
- @RequestMapping(value = "/getCheckFile", method = RequestMethod.POST)
- @Operation(summary = "获取质检文件")
- public ResponseEntity<InputStreamResource> addConfessionSession(MultipartFile file) throws Exception {
- RequestAttributes ra = RequestContextHolder.getRequestAttributes();
- ServletRequestAttributes sra = (ServletRequestAttributes) ra;
- HttpServletRequest httpRequest = sra.getRequest();
- String a= httpRequest.getHeader("Content-Type");
- System.out.println(a);
- return poiService.exportCheckFile(file);
- }
- }
|