Эх сурвалжийг харах

springai取消ts.zip接口鉴权

Taohongrun 5 сар өмнө
parent
commit
f1772a6e17

+ 6 - 0
pom.xml

@@ -179,6 +179,12 @@
             <artifactId>jakarta.json-api</artifactId>
             <version>2.0.1</version>
         </dependency>
+
+        <dependency>
+            <groupId>com.tencentcloudapi</groupId>
+            <artifactId>tencentcloud-sdk-java-asr</artifactId>
+            <version>3.1.1208</version>
+        </dependency>
     </dependencies>
     <dependencyManagement>
         <dependencies>

+ 45 - 0
src/main/java/io/github/qifan777/knowledge/ai/message/AiMessageController.java

@@ -2,6 +2,14 @@ package io.github.qifan777.knowledge.ai.message;
 
 import com.baomidou.mybatisplus.extension.toolkit.Db;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.tencentcloudapi.asr.v20190614.AsrClient;
+import com.tencentcloudapi.asr.v20190614.models.SentenceRecognitionRequest;
+import com.tencentcloudapi.asr.v20190614.models.SentenceRecognitionResponse;
+import com.tencentcloudapi.common.AbstractModel;
+import com.tencentcloudapi.common.Credential;
+import com.tencentcloudapi.common.exception.TencentCloudSDKException;
+import com.tencentcloudapi.common.profile.ClientProfile;
+import com.tencentcloudapi.common.profile.HttpProfile;
 import io.github.qifan777.knowledge.ai.agent.Agent;
 import io.github.qifan777.knowledge.ai.message.dto.AiMessageInput;
 import io.github.qifan777.knowledge.ai.message.dto.AiMessageWrapper;
@@ -180,4 +188,41 @@ public class AiMessageController {
         spec.text(message.getText());
     }
 
+    @PostMapping("/asr")
+    public String asr(@RequestParam  String base64Data ) {
+        try{
+            // 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
+            // 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性
+            // 以下代码示例仅供参考,建议采用更安全的方式来使用密钥
+            // 请参见:https://cloud.tencent.com/document/product/1278/85305
+            // 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
+            Credential cred = new Credential("AKIDAC4jM2eDlAOVRAmBNMAmBThlOAoGbjeO", "lMlz0oPo13tWxBIDwWyFLG3iEamlX8Vl");
+            // 实例化一个http选项,可选的,没有特殊需求可以跳过
+            HttpProfile httpProfile = new HttpProfile();
+            httpProfile.setEndpoint("asr.tencentcloudapi.com");
+            // 实例化一个client选项,可选的,没有特殊需求可以跳过
+            ClientProfile clientProfile = new ClientProfile();
+            clientProfile.setHttpProfile(httpProfile);
+            // 实例化要请求产品的client对象,clientProfile是可选的
+            AsrClient client = new AsrClient(cred, "", clientProfile);
+            // 实例化一个请求对象,每个接口都会对应一个request对象
+            SentenceRecognitionRequest req = new SentenceRecognitionRequest();
+
+            req.setEngSerViceType("16k_zh");
+            req.setSourceType(1L);
+            req.setVoiceFormat("wav");
+            req.setData(base64Data);
+            req.setFilterModal(1L);
+
+            // 返回的resp是一个SentenceRecognitionResponse的实例,与请求对象对应
+            SentenceRecognitionResponse resp = client.SentenceRecognition(req);
+            // 输出json格式的字符串回包
+            System.out.println(AbstractModel.toJsonString(resp));
+
+            return resp.getResult();
+        } catch (TencentCloudSDKException e) {
+            System.out.println(e.toString());
+        }
+        return "";
+    }
 }

+ 1 - 1
src/main/java/io/github/qifan777/knowledge/config/MVCConfig.java

@@ -33,7 +33,7 @@ public class MVCConfig implements WebMvcConfigurer {
 
         registry.addInterceptor(new LoginInterceptor(valueOperations))
                 .addPathPatterns("/**")
-                .excludePathPatterns("/user/login")
+                .excludePathPatterns("/user/login","/ts.zip")
                 .order(2);
 //        registry.addInterceptor(new RefreshInterceptor(hashOperations,redisTemplate))
 //                .addPathPatterns("/**")