diff --git a/pom.xml b/pom.xml index 931a44a..707d6a6 100644 --- a/pom.xml +++ b/pom.xml @@ -221,6 +221,13 @@ + + org.apache.maven.plugins + maven-surefire-plugin + + true + + io.fabric8 docker-maven-plugin diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/controller/SpiderController.java b/src/main/java/com/zsc/edu/dify/modules/dify/controller/SpiderController.java new file mode 100644 index 0000000..d7319b5 --- /dev/null +++ b/src/main/java/com/zsc/edu/dify/modules/dify/controller/SpiderController.java @@ -0,0 +1,63 @@ +package com.zsc.edu.dify.modules.dify.controller; + +import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.zsc.edu.dify.modules.dify.dto.SpiderDto; +import jakarta.annotation.Resource; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.reactive.function.client.WebClient; + +import java.util.Collections; + +@RestController +@RequestMapping("/api/spider") +public class SpiderController { + + @Resource + private ObjectMapper objectMapper; + + private static final String SPIDER_URL = "http://47.112.173.8:6806/api/v1"; + private static final String API_KEY = "77c068fd-d5b6-4c33-97d8-db5511a09b26"; + + @PostMapping("/run") + public JSONObject run(@RequestBody SpiderDto dto) throws JsonProcessingException { + dto.setLlm_api_key(API_KEY); + String body = objectMapper.writeValueAsString(dto); + return WebClient.create(SPIDER_URL).post().uri("/start_crawl") + .contentType(MediaType.APPLICATION_JSON) + .bodyValue(body) + .retrieve() + .bodyToMono(JSONObject.class) + .block(); + } + + @PostMapping("/status") + public JSONObject status() { + return WebClient.create(SPIDER_URL).post().uri("/crawl_status") + .retrieve() + .bodyToMono(JSONObject.class) + .block(); + } + + @PostMapping("/logs") + public JSONObject logs() { + return WebClient.create(SPIDER_URL).post().uri("/logs") + .retrieve() + .bodyToMono(JSONObject.class) + .block(); + } + + @PostMapping("/stop") + public JSONObject stop() { + return WebClient.create(SPIDER_URL).post().uri("/stop_crawl") + .retrieve() + .bodyToMono(JSONObject.class) + .block(); + } + +} diff --git a/src/main/java/com/zsc/edu/dify/modules/dify/dto/SpiderDto.java b/src/main/java/com/zsc/edu/dify/modules/dify/dto/SpiderDto.java new file mode 100644 index 0000000..7d45260 --- /dev/null +++ b/src/main/java/com/zsc/edu/dify/modules/dify/dto/SpiderDto.java @@ -0,0 +1,15 @@ +package com.zsc.edu.dify.modules.dify.dto; + +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +@Data +public class SpiderDto { + @NotBlank + private String publish_start_time; + @NotBlank + private String publish_end_time; + private String keyword; + private Integer[] site_codes; + private String llm_api_key; +}