diff --git a/service-ai/service-ai-core/src/main/java/com/lanyuanxiaoyao/service/ai/core/entity/amis/AmisCrudResponse.java b/service-ai/service-ai-core/src/main/java/com/lanyuanxiaoyao/service/ai/core/entity/amis/AmisCrudResponse.java new file mode 100644 index 0000000..2fa082b --- /dev/null +++ b/service-ai/service-ai-core/src/main/java/com/lanyuanxiaoyao/service/ai/core/entity/amis/AmisCrudResponse.java @@ -0,0 +1,30 @@ +package com.lanyuanxiaoyao.service.ai.core.entity.amis; + +/** + * Crud 响应 + * + * @author lanyuanxiaoyao + * @date 2023-07-06 + */ +public class AmisCrudResponse extends AmisMapResponse { + public void setData(Iterable list) { + getData().put("items", list); + } + + public void setTotal(Long total) { + getData().put("total", total); + } + + public void setTotal(Integer total) { + setTotal(total.longValue()); + } + + public void setData(Iterable list, Long total) { + setData(list); + setTotal(total); + } + + public void setData(Iterable list, Integer total) { + setData(list, total.longValue()); + } +} diff --git a/service-ai/service-ai-core/src/main/java/com/lanyuanxiaoyao/service/ai/core/entity/amis/AmisDetailResponse.java b/service-ai/service-ai-core/src/main/java/com/lanyuanxiaoyao/service/ai/core/entity/amis/AmisDetailResponse.java new file mode 100644 index 0000000..de7f215 --- /dev/null +++ b/service-ai/service-ai-core/src/main/java/com/lanyuanxiaoyao/service/ai/core/entity/amis/AmisDetailResponse.java @@ -0,0 +1,13 @@ +package com.lanyuanxiaoyao.service.ai.core.entity.amis; + +/** + * Crud 响应 + * + * @author lanyuanxiaoyao + * @date 2023-07-06 + */ +public class AmisDetailResponse extends AmisMapResponse { + public void setDetail(Object detail) { + getData().put("detail", detail); + } +} diff --git a/service-ai/service-ai-core/src/main/java/com/lanyuanxiaoyao/service/ai/core/entity/amis/AmisMapResponse.java b/service-ai/service-ai-core/src/main/java/com/lanyuanxiaoyao/service/ai/core/entity/amis/AmisMapResponse.java new file mode 100644 index 0000000..ae778c3 --- /dev/null +++ b/service-ai/service-ai-core/src/main/java/com/lanyuanxiaoyao/service/ai/core/entity/amis/AmisMapResponse.java @@ -0,0 +1,21 @@ +package com.lanyuanxiaoyao.service.ai.core.entity.amis; + +import java.util.HashMap; +import java.util.Map; + +/** + * Map 响应 + * + * @author lanyuanxiaoyao + * @date 2023-07-06 + */ +public class AmisMapResponse extends AmisResponse> { + public AmisMapResponse() { + setData(new HashMap<>()); + } + + public AmisMapResponse setData(String key, Object value) { + getData().put(key, value); + return this; + } +} diff --git a/service-ai/service-ai-core/src/main/java/com/lanyuanxiaoyao/service/ai/core/entity/amis/AmisResponse.java b/service-ai/service-ai-core/src/main/java/com/lanyuanxiaoyao/service/ai/core/entity/amis/AmisResponse.java new file mode 100644 index 0000000..0f51f2e --- /dev/null +++ b/service-ai/service-ai-core/src/main/java/com/lanyuanxiaoyao/service/ai/core/entity/amis/AmisResponse.java @@ -0,0 +1,138 @@ +package com.lanyuanxiaoyao.service.ai.core.entity.amis; + +import java.util.Map; + +/** + * Amis 组件结构化返回值 + * + * @author lanyuanxiaoyao + * @date 2022-09-21 + */ +public class AmisResponse { + private static final int SUCCESS_STATUS = 0; + private static final int ERROR_STATUS = 500; + private static final String SUCCESS_MESSAGE = "OK"; + private static final String ERROR_MESSAGE = "ERROR"; + private Integer status; + private String message; + private T data; + + public static AmisResponse responseError() { + return responseError(ERROR_MESSAGE); + } + + public static AmisResponse responseError(String message) { + AmisResponse response = new AmisResponse<>(); + response.setStatus(ERROR_STATUS); + response.setMessage(message); + return response; + } + + public static AmisResponse responseSuccess() { + AmisResponse response = new AmisResponse<>(); + response.setStatus(SUCCESS_STATUS); + response.setMessage(SUCCESS_MESSAGE); + return response; + } + + public static AmisResponse responseSuccess(String message) { + AmisResponse response = new AmisResponse<>(); + response.setStatus(SUCCESS_STATUS); + response.setMessage(message); + return response; + } + + public static AmisResponse responseSuccess(String message, E data) { + AmisResponse response = new AmisResponse<>(); + response.setStatus(SUCCESS_STATUS); + response.setMessage(message); + response.setData(data); + return response; + } + + public static AmisResponse responseSuccess(E data) { + AmisResponse response = new AmisResponse<>(); + response.setStatus(SUCCESS_STATUS); + response.setMessage(SUCCESS_MESSAGE); + response.setData(data); + return response; + } + + public static AmisMapResponse responseMapData() { + AmisMapResponse response = new AmisMapResponse(); + response.setStatus(SUCCESS_STATUS); + response.setMessage(SUCCESS_MESSAGE); + return response; + } + + public static AmisMapResponse responseMapData(Map data) { + AmisMapResponse response = responseMapData(); + response.setData(data); + return response; + } + + public static AmisMapResponse responseMapData(String key, Object value) { + AmisMapResponse response = responseMapData(); + response.setData(key, value); + return response; + } + + public static AmisCrudResponse responseCrudData(Iterable data) { + AmisCrudResponse response = new AmisCrudResponse(); + response.setStatus(SUCCESS_STATUS); + response.setMessage(SUCCESS_MESSAGE); + response.setData(data); + return response; + } + + public static AmisCrudResponse responseCrudData(Iterable data, Integer total) { + AmisCrudResponse response = responseCrudData(data); + response.setTotal(total); + return response; + } + + public static AmisCrudResponse responseCrudData(Iterable data, Long total) { + AmisCrudResponse response = responseCrudData(data); + response.setTotal(total); + return response; + } + + public static AmisDetailResponse responseDetailData(Object detail) { + AmisDetailResponse response = new AmisDetailResponse(); + response.setDetail(detail); + return response; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + @Override + public String toString() { + return "AmisResponse{" + + "status=" + status + + ", message='" + message + '\'' + + ", data=" + data + + '}'; + } +} diff --git a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/KnowledgeController.java b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/KnowledgeController.java index 688637a..d764510 100644 --- a/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/KnowledgeController.java +++ b/service-ai/service-ai-knowledge/src/main/java/com/lanyuanxiaoyao/service/ai/knowledge/controller/KnowledgeController.java @@ -1,6 +1,7 @@ package com.lanyuanxiaoyao.service.ai.knowledge.controller; -import com.lanyuanxiaoyao.service.ai.knowledge.entity.vo.KnowledgeVO; +import com.lanyuanxiaoyao.service.ai.core.entity.amis.AmisMapResponse; +import com.lanyuanxiaoyao.service.ai.core.entity.amis.AmisResponse; import com.lanyuanxiaoyao.service.ai.knowledge.entity.vo.PointVO; import com.lanyuanxiaoyao.service.ai.knowledge.service.EmbeddingService; import com.lanyuanxiaoyao.service.ai.knowledge.service.KnowledgeService; @@ -56,8 +57,8 @@ public class KnowledgeController { } @GetMapping("list") - public ImmutableList list() { - return knowledgeService.list(); + public AmisResponse list() { + return AmisResponse.responseCrudData(knowledgeService.list()); } @GetMapping("list_points") @@ -89,19 +90,20 @@ public class KnowledgeController { } @PostMapping("preview_text") - public ImmutableList previewText( + public AmisResponse previewText( @RequestParam(value = "mode", defaultValue = "NORMAL") String mode, @RequestParam(value = "type", defaultValue = "text") String type, @RequestParam("content") String content ) { - return embeddingService.split(mode, content) - .collect(doc -> { - PointVO vo = new PointVO(); - vo.setId(doc.getId()); - vo.setText(doc.getText()); - return vo; - }) - .toImmutable(); + return AmisResponse.responseCrudData( + embeddingService.split(mode, content) + .collect(doc -> { + PointVO vo = new PointVO(); + vo.setId(doc.getId()); + vo.setText(doc.getText()); + return vo; + }) + ); } @PostMapping(value = "process_text", consumes = "text/plain;charset=utf-8")