diff --git a/server/src/main/java/com/emotion/config/ShortNovelConfig.java b/server/src/main/java/com/emotion/config/ShortNovelConfig.java new file mode 100644 index 0000000..21c5e9c --- /dev/null +++ b/server/src/main/java/com/emotion/config/ShortNovelConfig.java @@ -0,0 +1,29 @@ +package com.emotion.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +/** + * 短篇小说外部服务配置 + * + * @author huazhongmin + * @date 2026-07-19 + */ +@Data +@Configuration +@ConfigurationProperties(prefix = "short-novel") +public class ShortNovelConfig { + + /** 外部服务基础 URL */ + private String apiBaseUrl; + + /** 外部服务 API Token */ + private String apiToken; + + /** 连接超时(毫秒) */ + private Integer connectTimeout = 10000; + + /** 读取超时(毫秒) */ + private Integer readTimeout = 300000; +} \ No newline at end of file diff --git a/server/src/main/java/com/emotion/dto/request/ShortNovelFollowupRequest.java b/server/src/main/java/com/emotion/dto/request/ShortNovelFollowupRequest.java new file mode 100644 index 0000000..3e30c1c --- /dev/null +++ b/server/src/main/java/com/emotion/dto/request/ShortNovelFollowupRequest.java @@ -0,0 +1,29 @@ +package com.emotion.dto.request; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import java.util.Map; + +/** + * 短篇小说后续轮次请求(澄清回答、大纲确认/修改等) + * + * @author huazhongmin + * @date 2026-07-19 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ShortNovelFollowupRequest extends BaseRequest { + + /** 外部服务返回的 session_id */ + @NotBlank(message = "sessionId 不能为空") + private String sessionId; + + /** 操作类型:answer_clarification | confirm_outline | modify_outline | retry */ + @NotBlank(message = "action 不能为空") + private String action; + + /** 操作载荷(如回答内容、修改意见) */ + private Map payload; +} \ No newline at end of file diff --git a/server/src/main/java/com/emotion/dto/request/ShortNovelStreamRequest.java b/server/src/main/java/com/emotion/dto/request/ShortNovelStreamRequest.java new file mode 100644 index 0000000..04f22dd --- /dev/null +++ b/server/src/main/java/com/emotion/dto/request/ShortNovelStreamRequest.java @@ -0,0 +1,23 @@ +package com.emotion.dto.request; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; + +/** + * 短篇小说首次发起请求 + * + * @author huazhongmin + * @date 2026-07-19 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ShortNovelStreamRequest extends BaseRequest { + + /** 用户的心愿文本 */ + @NotBlank(message = "心愿文本不能为空") + @Size(max = 500, message = "心愿文本不能超过 500 字") + private String query; +} \ No newline at end of file diff --git a/server/src/main/resources/application.yml b/server/src/main/resources/application.yml index 1414dcd..8aad290 100644 --- a/server/src/main/resources/application.yml +++ b/server/src/main/resources/application.yml @@ -142,3 +142,10 @@ async: queue-capacity: 200 keep-alive-seconds: 60 thread-name-prefix: single-async- + +# 短篇小说外部服务配置 +short-novel: + api-base-url: http://49.232.138.53:8010 + api-token: c67d4a95b0bb92470a24d534302c0d40 + connect-timeout: 10000 + read-timeout: 300000