diff --git a/src/main/java/com/aida/lanecarford/common/constant/CommonConstants.java b/src/main/java/com/aida/lanecarford/common/constant/CommonConstants.java index 0c368ea..ad084ad 100644 --- a/src/main/java/com/aida/lanecarford/common/constant/CommonConstants.java +++ b/src/main/java/com/aida/lanecarford/common/constant/CommonConstants.java @@ -2,11 +2,13 @@ package com.aida.lanecarford.common.constant; public class CommonConstants { - public static final String REQUEST_OUTFIT = "http://18.167.251.121:10004/api/v1/chatbot"; + public static final String REQUEST_OUTFIT = "http://18.167.251.121:10004/api/v1/agent"; - public static final String CHAT = "http://18.167.251.121:10004/api/v1/agent"; + public static final String CHAT = "http://18.167.251.121:10004/api/v1/chatbot"; public static final int MINIO_PATH_TIMEOUT = 7 * 24 * 60 * 60; // minio图片临时访问地址 7 天过期(second) + public static final int CONN_TIMEOUT = 30000; // (milliseconds) + } diff --git a/src/main/java/com/aida/lanecarford/common/enums/StatusEnum.java b/src/main/java/com/aida/lanecarford/common/enums/StatusEnum.java index 3611fed..768bfcc 100644 --- a/src/main/java/com/aida/lanecarford/common/enums/StatusEnum.java +++ b/src/main/java/com/aida/lanecarford/common/enums/StatusEnum.java @@ -1,13 +1,28 @@ package com.aida.lanecarford.common.enums; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.stream.Stream; + +@Getter +@AllArgsConstructor public enum StatusEnum { - SUCCEEDED, + PENDING(0), - FAILED, + SUCCEEDED(1), + + FAILED(2), + + RUNNING(3); + + private int code; + + public static StatusEnum of(int code) { + return Stream.of(StatusEnum.values()).filter(v -> v.getCode() == code).findFirst().orElse(null); + } - PENDING, - RUNNING } diff --git a/src/main/java/com/aida/lanecarford/common/enums/StylistPathEnum.java b/src/main/java/com/aida/lanecarford/common/enums/StylistPathEnum.java index 9f50235..79c1785 100644 --- a/src/main/java/com/aida/lanecarford/common/enums/StylistPathEnum.java +++ b/src/main/java/com/aida/lanecarford/common/enums/StylistPathEnum.java @@ -18,7 +18,7 @@ public enum StylistPathEnum { private String path; public static StylistPathEnum of(String name) { - return Stream.of(StylistPathEnum.values()).filter(v -> v.name().equals(name)).findFirst().orElse(null); + return Stream.of(StylistPathEnum.values()).filter(v -> v.getName().equals(name)).findFirst().orElse(null); } diff --git a/src/main/java/com/aida/lanecarford/config/WebConfig.java b/src/main/java/com/aida/lanecarford/config/WebConfig.java index c38c17e..6417d72 100644 --- a/src/main/java/com/aida/lanecarford/config/WebConfig.java +++ b/src/main/java/com/aida/lanecarford/config/WebConfig.java @@ -40,8 +40,7 @@ public class WebConfig implements WebMvcConfigurer { registry.addInterceptor(jwtInterceptor) .addPathPatterns("/api/**/**") // 保护这些路径 .excludePathPatterns(Arrays.asList("/api/auth/precheckAndSendEmail", "/api/auth/register", - "/api/auth/login", "/api/auth/forgotPwd", "/api/style/callback","/api/try-on-effects","/api/customer-photos","/api/visit-records")); // 排除登录接口 - + "/api/auth/login", "/api/auth/forgotPwd", "/api/style/callback")); // 排除登录接口 } /** diff --git a/src/main/java/com/aida/lanecarford/controller/ChatController.java b/src/main/java/com/aida/lanecarford/controller/ChatController.java new file mode 100644 index 0000000..fff3509 --- /dev/null +++ b/src/main/java/com/aida/lanecarford/controller/ChatController.java @@ -0,0 +1,27 @@ +package com.aida.lanecarford.controller; + +import com.aida.lanecarford.service.ChatService; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + + +@Slf4j +@RestController +@RequestMapping("/api/llm") +public class ChatController { + + @Resource + private ChatService chatService; + + @CrossOrigin + @GetMapping(value = "/streamChat", produces = MediaType.TEXT_EVENT_STREAM_VALUE) + public SseEmitter streamChat(@RequestParam(required = false) String message, + @RequestParam Long sessionId, + @RequestParam String gender) { + return chatService.streamChat(message, sessionId, gender ); + } + +} diff --git a/src/main/java/com/aida/lanecarford/controller/StyleController.java b/src/main/java/com/aida/lanecarford/controller/StyleController.java index f223988..93eb876 100644 --- a/src/main/java/com/aida/lanecarford/controller/StyleController.java +++ b/src/main/java/com/aida/lanecarford/controller/StyleController.java @@ -1,13 +1,16 @@ package com.aida.lanecarford.controller; +import com.aida.lanecarford.common.ApiResponse; import com.aida.lanecarford.dto.OutfitCallbackDTO; +import com.aida.lanecarford.dto.RequestOutfitDTO; import com.aida.lanecarford.service.StyleService; +import com.aida.lanecarford.vo.OutfitResultVO; +import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 风格配置控制器 @@ -23,9 +26,19 @@ public class StyleController { private final StyleService styleService; + @PostMapping("/requestOutfit") + public ApiResponse> requestOutfit(@Valid @RequestBody RequestOutfitDTO requestOutfitDTO) { + return ApiResponse.success(styleService.requestOutfit(requestOutfitDTO)); + } + @PostMapping("/callback") public void callback(@RequestBody OutfitCallbackDTO callbackDTO) { styleService.callback(callbackDTO); } + @GetMapping("/getOutfitResult") + public ApiResponse> getOutfitResult(@RequestParam List requestIDs) { + return ApiResponse.success(styleService.getOutfitResult(requestIDs)); + } + } \ No newline at end of file diff --git a/src/main/java/com/aida/lanecarford/entity/OutfitRequest.java b/src/main/java/com/aida/lanecarford/entity/OutfitRequest.java index d1e7133..493573d 100644 --- a/src/main/java/com/aida/lanecarford/entity/OutfitRequest.java +++ b/src/main/java/com/aida/lanecarford/entity/OutfitRequest.java @@ -1,8 +1,10 @@ package com.aida.lanecarford.entity; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @Data +@TableName("outfit_request") public class OutfitRequest extends BaseEntity{ /** @@ -28,5 +30,5 @@ public class OutfitRequest extends BaseEntity{ /** * 当前任务状态 */ - private String status; + private int status; } diff --git a/src/main/java/com/aida/lanecarford/entity/Style.java b/src/main/java/com/aida/lanecarford/entity/Style.java index 27640c8..b90fc12 100644 --- a/src/main/java/com/aida/lanecarford/entity/Style.java +++ b/src/main/java/com/aida/lanecarford/entity/Style.java @@ -67,7 +67,7 @@ public class Style extends BaseEntity { * 生成状态(pending-等待中,processing-处理中,completed-已完成,failed-失败) */ @TableField("generation_status") - private String generationStatus; + private int generationStatus; /** * 错误信息 diff --git a/src/main/java/com/aida/lanecarford/service/ChatService.java b/src/main/java/com/aida/lanecarford/service/ChatService.java index 6d1df7c..4dadc8c 100644 --- a/src/main/java/com/aida/lanecarford/service/ChatService.java +++ b/src/main/java/com/aida/lanecarford/service/ChatService.java @@ -1,4 +1,8 @@ package com.aida.lanecarford.service; +import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; + public interface ChatService { + + SseEmitter streamChat(String message, Long sessionId, String gender); } diff --git a/src/main/java/com/aida/lanecarford/service/StyleService.java b/src/main/java/com/aida/lanecarford/service/StyleService.java index 0603623..780e462 100644 --- a/src/main/java/com/aida/lanecarford/service/StyleService.java +++ b/src/main/java/com/aida/lanecarford/service/StyleService.java @@ -1,17 +1,22 @@ package com.aida.lanecarford.service; import com.aida.lanecarford.dto.OutfitCallbackDTO; +import com.aida.lanecarford.dto.RequestOutfitDTO; import com.aida.lanecarford.entity.Style; +import com.aida.lanecarford.vo.OutfitResultVO; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * 风格配置服务接口 - * - * @author AI Assistant - * @since 2024-01-01 */ public interface StyleService extends IService