diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/ConversationController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/ConversationController.java index 787c34b61..ef70a8b7b 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/ConversationController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/conversation/ConversationController.java @@ -1,5 +1,9 @@ package cn.iocoder.yudao.module.llm.controller.admin.conversation; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import cn.iocoder.yudao.module.llm.service.http.vo.TextToImageReqVo; +import com.alibaba.fastjson.JSON; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -97,4 +101,9 @@ public class ConversationController { public CommonResult chat(@Valid @RequestBody ChatReqVO chatReqVO) { return success(conversationService.chat(chatReqVO)); } + @PostMapping("/text-to-image") + @Operation(summary = "文字转图片接口") + public CommonResult textToImage(@Valid @RequestBody TextToImageReqVo req) { + return success(conversationService.textToImage(req)); + } } \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/LLMBackendProperties.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/LLMBackendProperties.java index d2a9fe6b6..9c8e96007 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/LLMBackendProperties.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/framework/backend/config/LLMBackendProperties.java @@ -98,4 +98,5 @@ public class LLMBackendProperties { private String aigcFileUpload; private String autoEvaluation; + private String textToImage; } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationService.java index 2e3072cb8..7c582bb70 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationService.java @@ -2,10 +2,14 @@ package cn.iocoder.yudao.module.llm.service.conversation; import java.util.*; import javax.validation.*; + +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; import cn.iocoder.yudao.module.llm.controller.admin.conversation.vo.*; import cn.iocoder.yudao.module.llm.dal.dataobject.conversation.ConversationDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.module.llm.service.http.vo.TextToImageReqVo; /** * 大模型对话记录 Service 接口 @@ -53,4 +57,11 @@ public interface ConversationService { PageResult getConversationPage(ConversationPageReqVO pageReqVO); ChatRespVO chat(@Valid ChatReqVO chatReqVO); + + /** + * 文生图接口 + * @param req + * @return + */ + JSONArray textToImage(TextToImageReqVo req); } \ No newline at end of file diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java index 13c8a31f0..2cb9b6b31 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/conversation/ConversationServiceImpl.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.llm.service.conversation; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; import cn.iocoder.yudao.framework.common.util.json.JsonUtils; import cn.iocoder.yudao.module.llm.controller.admin.application.vo.ApplicationRespVO; import cn.iocoder.yudao.module.llm.controller.admin.application.vo.ApplicationSaveReqVO; @@ -14,6 +16,8 @@ import cn.iocoder.yudao.module.llm.service.datarefluxdata.DataRefluxDataService; import cn.iocoder.yudao.module.llm.service.http.ModelService; import cn.iocoder.yudao.module.llm.service.http.vo.ModelCompletionsReqVO; import cn.iocoder.yudao.module.llm.service.http.vo.ModelCompletionsRespVO; +import cn.iocoder.yudao.module.llm.service.http.vo.TextToImageReqVo; +import cn.iocoder.yudao.module.llm.service.http.vo.TextToImageRespVo; import cn.iocoder.yudao.module.llm.service.prompttemplates.PromptTemplatesService; import com.alibaba.excel.util.StringUtils; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; @@ -138,6 +142,12 @@ public class ConversationServiceImpl implements ConversationService { } } + @Override + public JSONArray textToImage(TextToImageReqVo req) { + TextToImageRespVo textToImageRespVo = modelService.textToImage(req); + return textToImageRespVo.getData(); + } + /** * 公共模型聊天 diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java index 05757bc5e..7fabf8db2 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/ModelService.java @@ -17,6 +17,7 @@ import javax.annotation.Resource; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -139,4 +140,20 @@ public class ModelService { return null; } } + + public TextToImageRespVo textToImage(TextToImageReqVo req) { + log.info("url: {}", llmBackendProperties.getTextToImage()); + log.info("request: {}", req); + String result = HttpUtils.post(llmBackendProperties.getTextToImage(),new HashMap<>(), JSON.toJSONString(req)); + log.info("response: {}", result); + if (StringUtils.isBlank(result)) { + return null; + } + try { + return JSON.parseObject(result, TextToImageRespVo.class); + }catch (Exception e){ + log.error("text to image error : {}",e.getMessage()); + } + return null; + } } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/vo/TextToImageReqVo.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/vo/TextToImageReqVo.java new file mode 100644 index 000000000..367e8aab3 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/vo/TextToImageReqVo.java @@ -0,0 +1,9 @@ +package cn.iocoder.yudao.module.llm.service.http.vo; + +import lombok.Data; + +@Data +public class TextToImageReqVo { + private String prompt; + private String Size; +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/vo/TextToImageRespVo.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/vo/TextToImageRespVo.java new file mode 100644 index 000000000..2f24d4936 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/vo/TextToImageRespVo.java @@ -0,0 +1,12 @@ +package cn.iocoder.yudao.module.llm.service.http.vo; + + +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import lombok.Data; + +@Data +public class TextToImageRespVo { + private String created; + private JSONArray data; +} diff --git a/yudao-server/src/main/resources/application-dev.yaml b/yudao-server/src/main/resources/application-dev.yaml index e806c44a1..94cf1b8d6 100644 --- a/yudao-server/src/main/resources/application-dev.yaml +++ b/yudao-server/src/main/resources/application-dev.yaml @@ -275,6 +275,8 @@ llm: optimize_prompt: http://36.133.1.230:5123/optimize-prompt auto_evaluation: http://36.133.1.230:5123/llm-eval + # 文生图 + text_to_image: http://36.133.1.230:5123/generate-image --- #################### iot相关配置 TODO 芋艿:再瞅瞅 #################### diff --git a/yudao-server/src/main/resources/application-local.yaml b/yudao-server/src/main/resources/application-local.yaml index 656460ad4..2345924ea 100644 --- a/yudao-server/src/main/resources/application-local.yaml +++ b/yudao-server/src/main/resources/application-local.yaml @@ -318,6 +318,9 @@ llm: auto_evaluation: http://36.133.1.230:5123/llm-eval + # 文生图 + text_to_image: http://36.133.1.230:5123/generate-image + --- #################### iot相关配置 TODO 芋艿:再瞅瞅 #################### iot: emq: