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