From a079ef44e53acd9e8df51dbb31cf5aea4f9be5bd Mon Sep 17 00:00:00 2001 From: ageer <ageerle@163.com> Date: 星期二, 27 二月 2024 20:52:19 +0800 Subject: [PATCH] init v1.0.0 --- ruoyi-admin/src/main/java/com/xmzs/controller/ChatController.java | 70 ++++++++++++++++++++++++++--------- 1 files changed, 52 insertions(+), 18 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/xmzs/controller/ChatController.java b/ruoyi-admin/src/main/java/com/xmzs/controller/ChatController.java index 6f1ebb2..2ee3c47 100644 --- a/ruoyi-admin/src/main/java/com/xmzs/controller/ChatController.java +++ b/ruoyi-admin/src/main/java/com/xmzs/controller/ChatController.java @@ -3,7 +3,10 @@ import com.xmzs.common.chat.domain.request.ChatRequest; import com.xmzs.common.chat.domain.request.Dall3Request; +import com.xmzs.common.chat.domain.request.MjTaskRequest; +import com.xmzs.common.chat.entity.Tts.TextToSpeech; import com.xmzs.common.chat.entity.images.Item; +import com.xmzs.common.chat.entity.whisper.WhisperResponse; import com.xmzs.common.core.domain.R; import com.xmzs.common.core.domain.model.LoginUser; import com.xmzs.common.core.exception.base.BaseException; @@ -13,18 +16,29 @@ import com.xmzs.system.domain.bo.ChatMessageBo; import com.xmzs.system.domain.vo.ChatMessageVo; import com.xmzs.system.service.IChatMessageService; -import com.xmzs.system.service.SseService; +import com.xmzs.system.service.ISseService; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.core.io.InputStreamResource; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.mvc.method.annotation.SseEmitter; +import org.springframework.core.io.Resource; + +import java.io.IOException; +import java.io.InputStream; import java.util.List; + +import retrofit2.Response; /** * 鎻忚堪锛� @@ -37,38 +51,58 @@ @RequiredArgsConstructor public class ChatController { - private final SseService sseService; + private final ISseService ISseService; - private final IChatMessageService chatMessageService; + private final IChatMessageService chatMessageService; /** * 鑱婂ぉ鎺ュ彛 */ @PostMapping("/chat") @ResponseBody - public SseEmitter sseChat(@RequestBody @Valid ChatRequest chatRequest) { - if("gpt-4-all".equals(chatRequest.getModel()) - || chatRequest.getModel().startsWith("gpt-4-gizmo") - || chatRequest.getModel().startsWith("net-") - ){ - return sseService.transitChat(chatRequest); - } - if("azure-gpt-3.5".equals(chatRequest.getModel())){ - return sseService.azureChat(chatRequest); - } - return sseService.sseChat(chatRequest); + public SseEmitter sseChat(@RequestBody @Valid ChatRequest chatRequest, HttpServletResponse response) { + return ISseService.sseChat(chatRequest); } + + /** + * 璇煶杞枃鏈� + * + * @param file + */ + @PostMapping("/audio") + @ResponseBody + public WhisperResponse audio(@RequestParam("file") MultipartFile file) { + WhisperResponse whisperResponse = ISseService.speechToTextTranscriptionsV2(file); + return whisperResponse; + } + + /** + * 鏂囨湰杞闊� + * + * @param textToSpeech + */ + @PostMapping("/speech") + @ResponseBody + public ResponseEntity<Resource> speech(@RequestBody TextToSpeech textToSpeech) { + return ISseService.textToSpeed(textToSpeech); + } + @PostMapping("/dall3") @ResponseBody public R<List<Item>> dall3(@RequestBody @Valid Dall3Request request) { - return R.ok(sseService.dall3(request)); + return R.ok(ISseService.dall3(request)); } + /** + * 鎵i櫎mj缁樺浘璐圭敤 + * + * @return + */ @PostMapping("/mjTask") @ResponseBody - public R<String> mjTask() { - sseService.mjTask(); + public R<String> mjTask(@RequestBody MjTaskRequest mjTaskRequest) { + ISseService.mjTask(mjTaskRequest); return R.ok(); } @@ -77,7 +111,7 @@ */ @PostMapping("/chatList") @ResponseBody - public R<TableDataInfo<ChatMessageVo>> list(@RequestBody @Valid ChatMessageBo chatRequest,@RequestBody PageQuery pageQuery) { + public R<TableDataInfo<ChatMessageVo>> list(@RequestBody @Valid ChatMessageBo chatRequest, @RequestBody PageQuery pageQuery) { // 榛樿鏌ヨ褰撳墠鐧诲綍鐢ㄦ埛娑堟伅璁板綍 LoginUser loginUser = LoginHelper.getLoginUser(); if (loginUser == null) { -- Gitblit v1.9.3