diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/ChatController.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/ChatController.java index e9f8ab6b5..49fae6b62 100644 --- a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/ChatController.java +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/ChatController.java @@ -1,77 +1,77 @@ -package cn.iocoder.yudao.module.ai.controller.admin; - -import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; -import cn.iocoder.yudao.module.ai.ErrorCodeConstants; -import cn.iocoder.yudao.module.ai.controller.admin.vo.AiChatReqVO; -import cn.iocoder.yudao.module.ai.enums.OpenAiModelEnum; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.tags.Tag; -import jakarta.servlet.http.HttpServletResponse; -import lombok.extern.slf4j.Slf4j; -import org.springframework.ai.chat.ChatClient; -import org.springframework.ai.chat.ChatResponse; -import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.openai.OpenAiChatClient; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ApplicationContext; -import org.springframework.validation.annotation.Validated; -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 reactor.core.publisher.Flux; - -import java.util.function.Consumer; - -// TODO done @fansili:有了 swagger 注释,就不用类注释了 -@Tag(name = "AI模块") -@RestController -@RequestMapping("/ai-api") -@Slf4j -public class ChatController { - - @Autowired - private ApplicationContext applicationContext; - - @PostMapping("/chat") - @Operation(summary = "对话聊天", description = "简单的ai聊天") - public CommonResult chat(@RequestBody @Validated AiChatReqVO reqVO) { - ChatClient chatClient = getChatClient(reqVO.getAiModel()); - String res; - try { - res = chatClient.call(reqVO.getPrompt()); - } catch (Exception e) { - res = e.getMessage(); - } - return CommonResult.success(res); - } - - @PostMapping("/chatStream") - @Operation(summary = "对话聊天chatStream", description = "简单的ai聊天") - public CommonResult chatStream(HttpServletResponse response, @RequestBody @Validated AiChatReqVO reqVO) throws InterruptedException { - OpenAiChatClient chatClient = applicationContext.getBean(OpenAiChatClient.class); - Flux chatResponse = chatClient.stream(new Prompt(reqVO.getPrompt())); - chatResponse.subscribe(new Consumer() { - @Override - public void accept(ChatResponse chatResponse) { - System.err.println(chatResponse.getResults().get(0).getOutput().getContent()); - } - }); - return CommonResult.success(null); - } - - /** - * 根据 ai模型 获取对于的 模型实现类 - * - * @param aiModelEnum - * @return - */ - private ChatClient getChatClient(OpenAiModelEnum aiModelEnum) { - if (OpenAiModelEnum.OPEN_AI_GPT_3_5 == aiModelEnum) { - return applicationContext.getBean(OpenAiChatClient.class); - } - // AI模型暂不支持 - throw ServiceExceptionUtil.exception(ErrorCodeConstants.AI_MODULE_NOT_SUPPORTED); - } -} +//package cn.iocoder.yudao.module.ai.controller.admin; +// +//import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; +//import cn.iocoder.yudao.framework.common.pojo.CommonResult; +//import cn.iocoder.yudao.module.ai.ErrorCodeConstants; +//import cn.iocoder.yudao.module.ai.controller.admin.vo.AiChatReqVO; +//import cn.iocoder.yudao.module.ai.enums.OpenAiModelEnum; +//import io.swagger.v3.oas.annotations.Operation; +//import io.swagger.v3.oas.annotations.tags.Tag; +//import jakarta.servlet.http.HttpServletResponse; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.ai.chat.ChatClient; +//import org.springframework.ai.chat.ChatResponse; +//import org.springframework.ai.chat.prompt.Prompt; +//import org.springframework.ai.openai.OpenAiChatClient; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.context.ApplicationContext; +//import org.springframework.validation.annotation.Validated; +//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 reactor.core.publisher.Flux; +// +//import java.util.function.Consumer; +// +//// TODO done @fansili:有了 swagger 注释,就不用类注释了 +//@Tag(name = "AI模块") +//@RestController +//@RequestMapping("/ai-api") +//@Slf4j +//public class ChatController { +// +// @Autowired +// private ApplicationContext applicationContext; +// +// @PostMapping("/chat") +// @Operation(summary = "对话聊天", description = "简单的ai聊天") +// public CommonResult chat(@RequestBody @Validated AiChatReqVO reqVO) { +// ChatClient chatClient = getChatClient(reqVO.getAiModel()); +// String res; +// try { +// res = chatClient.call(reqVO.getPrompt()); +// } catch (Exception e) { +// res = e.getMessage(); +// } +// return CommonResult.success(res); +// } +// +// @PostMapping("/chatStream") +// @Operation(summary = "对话聊天chatStream", description = "简单的ai聊天") +// public CommonResult chatStream(HttpServletResponse response, @RequestBody @Validated AiChatReqVO reqVO) throws InterruptedException { +// OpenAiChatClient chatClient = applicationContext.getBean(OpenAiChatClient.class); +// Flux chatResponse = chatClient.stream(new Prompt(reqVO.getPrompt())); +// chatResponse.subscribe(new Consumer() { +// @Override +// public void accept(ChatResponse chatResponse) { +// System.err.println(chatResponse.getResults().get(0).getOutput().getContent()); +// } +// }); +// return CommonResult.success(null); +// } +// +// /** +// * 根据 ai模型 获取对于的 模型实现类 +// * +// * @param aiModelEnum +// * @return +// */ +// private ChatClient getChatClient(OpenAiModelEnum aiModelEnum) { +// if (OpenAiModelEnum.OPEN_AI_GPT_3_5 == aiModelEnum) { +// return applicationContext.getBean(OpenAiChatClient.class); +// } +// // AI模型暂不支持 +// throw ServiceExceptionUtil.exception(ErrorCodeConstants.AI_MODULE_NOT_SUPPORTED); +// } +//}