@dofe/infra-clients 0.1.16 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/internal/sms/sms-aliyun.client.d.ts +2 -1
- package/dist/internal/sms/sms-aliyun.client.d.ts.map +1 -1
- package/dist/internal/sms/sms-volcengine.client.d.ts +2 -2
- package/package.json +72 -7
- package/dist/internal/openspeech/index.d.ts +0 -35
- package/dist/internal/openspeech/index.d.ts.map +0 -1
- package/dist/internal/openspeech/index.js +0 -56
- package/dist/internal/openspeech/index.js.map +0 -1
- package/dist/internal/openspeech/openspeech.client.d.ts +0 -304
- package/dist/internal/openspeech/openspeech.client.d.ts.map +0 -1
- package/dist/internal/openspeech/openspeech.client.js +0 -405
- package/dist/internal/openspeech/openspeech.client.js.map +0 -1
- package/dist/internal/openspeech/openspeech.factory.d.ts +0 -247
- package/dist/internal/openspeech/openspeech.factory.d.ts.map +0 -1
- package/dist/internal/openspeech/openspeech.factory.js +0 -406
- package/dist/internal/openspeech/openspeech.factory.js.map +0 -1
- package/dist/internal/openspeech/openspeech.module.d.ts +0 -45
- package/dist/internal/openspeech/openspeech.module.d.ts.map +0 -1
- package/dist/internal/openspeech/openspeech.module.js +0 -68
- package/dist/internal/openspeech/openspeech.module.js.map +0 -1
- package/dist/internal/openspeech/providers/aliyun.provider.d.ts +0 -125
- package/dist/internal/openspeech/providers/aliyun.provider.d.ts.map +0 -1
- package/dist/internal/openspeech/providers/aliyun.provider.js +0 -274
- package/dist/internal/openspeech/providers/aliyun.provider.js.map +0 -1
- package/dist/internal/openspeech/providers/base.provider.d.ts +0 -98
- package/dist/internal/openspeech/providers/base.provider.d.ts.map +0 -1
- package/dist/internal/openspeech/providers/base.provider.js +0 -87
- package/dist/internal/openspeech/providers/base.provider.js.map +0 -1
- package/dist/internal/openspeech/providers/index.d.ts +0 -10
- package/dist/internal/openspeech/providers/index.d.ts.map +0 -1
- package/dist/internal/openspeech/providers/index.js +0 -26
- package/dist/internal/openspeech/providers/index.js.map +0 -1
- package/dist/internal/openspeech/providers/volcengine-streaming.provider.d.ts +0 -291
- package/dist/internal/openspeech/providers/volcengine-streaming.provider.d.ts.map +0 -1
- package/dist/internal/openspeech/providers/volcengine-streaming.provider.js +0 -1358
- package/dist/internal/openspeech/providers/volcengine-streaming.provider.js.map +0 -1
- package/dist/internal/openspeech/providers/volcengine.provider.d.ts +0 -144
- package/dist/internal/openspeech/providers/volcengine.provider.d.ts.map +0 -1
- package/dist/internal/openspeech/providers/volcengine.provider.js +0 -337
- package/dist/internal/openspeech/providers/volcengine.provider.js.map +0 -1
- package/dist/internal/openspeech/types.d.ts +0 -408
- package/dist/internal/openspeech/types.d.ts.map +0 -1
- package/dist/internal/openspeech/types.js +0 -11
- package/dist/internal/openspeech/types.js.map +0 -1
- package/dist/internal/volcengine-tts/dto/tts.dto.d.ts +0 -52
- package/dist/internal/volcengine-tts/dto/tts.dto.d.ts.map +0 -1
- package/dist/internal/volcengine-tts/dto/tts.dto.js +0 -59
- package/dist/internal/volcengine-tts/dto/tts.dto.js.map +0 -1
- package/dist/internal/volcengine-tts/index.d.ts +0 -4
- package/dist/internal/volcengine-tts/index.d.ts.map +0 -1
- package/dist/internal/volcengine-tts/index.js +0 -20
- package/dist/internal/volcengine-tts/index.js.map +0 -1
- package/dist/internal/volcengine-tts/volcengine-tts.client.d.ts +0 -104
- package/dist/internal/volcengine-tts/volcengine-tts.client.d.ts.map +0 -1
- package/dist/internal/volcengine-tts/volcengine-tts.client.js +0 -690
- package/dist/internal/volcengine-tts/volcengine-tts.client.js.map +0 -1
- package/dist/internal/volcengine-tts/volcengine-tts.module.d.ts +0 -3
- package/dist/internal/volcengine-tts/volcengine-tts.module.d.ts.map +0 -1
- package/dist/internal/volcengine-tts/volcengine-tts.module.js +0 -34
- package/dist/internal/volcengine-tts/volcengine-tts.module.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -9,11 +9,9 @@ export * from './internal/file-storage';
|
|
|
9
9
|
export * from './internal/ip-info';
|
|
10
10
|
export * from './internal/ocr';
|
|
11
11
|
export * from './internal/openai';
|
|
12
|
-
export * from './internal/openspeech';
|
|
13
12
|
export * from './internal/sms';
|
|
14
13
|
export * from './internal/sse';
|
|
15
14
|
export * from './internal/third-party-sse';
|
|
16
15
|
export * from './internal/verify';
|
|
17
|
-
export * from './internal/volcengine-tts';
|
|
18
16
|
export * from './internal/wechat';
|
|
19
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/clients/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/clients/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -25,11 +25,9 @@ __exportStar(require("./internal/file-storage"), exports);
|
|
|
25
25
|
__exportStar(require("./internal/ip-info"), exports);
|
|
26
26
|
__exportStar(require("./internal/ocr"), exports);
|
|
27
27
|
__exportStar(require("./internal/openai"), exports);
|
|
28
|
-
__exportStar(require("./internal/openspeech"), exports);
|
|
29
28
|
__exportStar(require("./internal/sms"), exports);
|
|
30
29
|
__exportStar(require("./internal/sse"), exports);
|
|
31
30
|
__exportStar(require("./internal/third-party-sse"), exports);
|
|
32
31
|
__exportStar(require("./internal/verify"), exports);
|
|
33
|
-
__exportStar(require("./internal/volcengine-tts"), exports);
|
|
34
32
|
__exportStar(require("./internal/wechat"), exports);
|
|
35
33
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/clients/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,oDAAkC;AAClC,gDAA8B;AAC9B,yDAAuC;AACvC,mDAAiC;AACjC,mDAAiC;AACjC,2DAAyC;AACzC,0DAAwC;AACxC,qDAAmC;AACnC,iDAA+B;AAC/B,oDAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../packages/clients/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,oDAAkC;AAClC,gDAA8B;AAC9B,yDAAuC;AACvC,mDAAiC;AACjC,mDAAiC;AACjC,2DAAyC;AACzC,0DAAwC;AACxC,qDAAmC;AACnC,iDAA+B;AAC/B,oDAAkC;AAClC,iDAA+B;AAC/B,iDAA+B;AAC/B,6DAA2C;AAC3C,oDAAkC;AAClC,oDAAkC"}
|
|
@@ -7,12 +7,13 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { Logger } from 'winston';
|
|
9
9
|
import { SmsProviderConfig, SmsDefaultTemplate } from './dto/sms.dto';
|
|
10
|
+
import * as $Dysmsapi20170525 from '@alicloud/dysmsapi20170525';
|
|
10
11
|
export declare class SmsAliyunClient {
|
|
11
12
|
protected readonly config: SmsProviderConfig;
|
|
12
13
|
protected readonly logger: Logger;
|
|
13
14
|
private client;
|
|
14
15
|
constructor(config: SmsProviderConfig, logger: Logger);
|
|
15
16
|
private createClient;
|
|
16
|
-
sendSmsCode(phone: string, code: string, template: SmsDefaultTemplate): Promise
|
|
17
|
+
sendSmsCode(phone: string, code: string, template: SmsDefaultTemplate): Promise<$Dysmsapi20170525.SendSmsResponse>;
|
|
17
18
|
}
|
|
18
19
|
//# sourceMappingURL=sms-aliyun.client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sms-aliyun.client.d.ts","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sms/sms-aliyun.client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"sms-aliyun.client.d.ts","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/sms/sms-aliyun.client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAyB,KAAK,iBAAiB,MAAM,4BAA4B,CAAC;AAGlF,qBAAa,eAAe;IAIxB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,iBAAiB;IAC5C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAJnC,OAAO,CAAC,MAAM,CAAmB;gBAGZ,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,MAAM;IAKnC,OAAO,CAAC,YAAY;IASd,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB;CAoB5E"}
|
|
@@ -17,8 +17,8 @@ export declare class SmsVolcengineClient {
|
|
|
17
17
|
private readonly defaultSmsAccount;
|
|
18
18
|
private readonly defaultTemplateId;
|
|
19
19
|
constructor(config: SmsProviderConfig, redis: RedisService, logger: Logger);
|
|
20
|
-
sendVerifyCode(phone: string, template: SmsVolcengineTemplate): Promise<
|
|
21
|
-
sendSmsCode(phone: string, code: string, template: SmsVolcengineTemplate): Promise<
|
|
20
|
+
sendVerifyCode(phone: string, template: SmsVolcengineTemplate): Promise<import("@volcengine/openapi/lib/base/types").OpenApiResponse<import("@volcengine/openapi/lib/services/sms/types").SendVerifyCodeResponse>>;
|
|
21
|
+
sendSmsCode(phone: string, code: string, template: SmsVolcengineTemplate): Promise<import("@volcengine/openapi/lib/base/types").OpenApiResponse<import("@volcengine/openapi/lib/services/sms/types").SendVerifyCodeResponse>>;
|
|
22
22
|
checkVerifyCode(phoneNumber: string, code: string, template: SmsVolcengineTemplate): Promise<{
|
|
23
23
|
success: boolean;
|
|
24
24
|
result: VerifyCodeResult;
|
package/package.json
CHANGED
|
@@ -1,15 +1,80 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dofe/infra-clients",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.18",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"default": "./dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"./crypt": {
|
|
12
|
+
"types": "./dist/internal/crypt/index.d.ts",
|
|
13
|
+
"default": "./dist/internal/crypt/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./sms": {
|
|
16
|
+
"types": "./dist/internal/sms/index.d.ts",
|
|
17
|
+
"default": "./dist/internal/sms/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./email": {
|
|
20
|
+
"types": "./dist/internal/email/index.d.ts",
|
|
21
|
+
"default": "./dist/internal/email/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./file-storage": {
|
|
24
|
+
"types": "./dist/internal/file-storage/index.d.ts",
|
|
25
|
+
"default": "./dist/internal/file-storage/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./agentx": {
|
|
28
|
+
"types": "./dist/internal/agentx/index.d.ts",
|
|
29
|
+
"default": "./dist/internal/agentx/index.js"
|
|
30
|
+
},
|
|
31
|
+
"./ai": {
|
|
32
|
+
"types": "./dist/internal/ai/index.d.ts",
|
|
33
|
+
"default": "./dist/internal/ai/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./ai-provider": {
|
|
36
|
+
"types": "./dist/internal/ai-provider/index.d.ts",
|
|
37
|
+
"default": "./dist/internal/ai-provider/index.js"
|
|
38
|
+
},
|
|
39
|
+
"./exchange-rate": {
|
|
40
|
+
"types": "./dist/internal/exchange-rate/index.d.ts",
|
|
41
|
+
"default": "./dist/internal/exchange-rate/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./ip-info": {
|
|
44
|
+
"types": "./dist/internal/ip-info/index.d.ts",
|
|
45
|
+
"default": "./dist/internal/ip-info/index.js"
|
|
46
|
+
},
|
|
47
|
+
"./ocr": {
|
|
48
|
+
"types": "./dist/internal/ocr/index.d.ts",
|
|
49
|
+
"default": "./dist/internal/ocr/index.js"
|
|
50
|
+
},
|
|
51
|
+
"./openai": {
|
|
52
|
+
"types": "./dist/internal/openai/index.d.ts",
|
|
53
|
+
"default": "./dist/internal/openai/index.js"
|
|
54
|
+
},
|
|
55
|
+
"./sse": {
|
|
56
|
+
"types": "./dist/internal/sse/index.d.ts",
|
|
57
|
+
"default": "./dist/internal/sse/index.js"
|
|
58
|
+
},
|
|
59
|
+
"./third-party-sse": {
|
|
60
|
+
"types": "./dist/internal/third-party-sse/index.d.ts",
|
|
61
|
+
"default": "./dist/internal/third-party-sse/index.js"
|
|
62
|
+
},
|
|
63
|
+
"./verify": {
|
|
64
|
+
"types": "./dist/internal/verify/index.d.ts",
|
|
65
|
+
"default": "./dist/internal/verify/index.js"
|
|
66
|
+
},
|
|
67
|
+
"./wechat": {
|
|
68
|
+
"types": "./dist/internal/wechat/index.d.ts",
|
|
69
|
+
"default": "./dist/internal/wechat/index.js"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
6
72
|
"peerDependencies": {
|
|
7
73
|
"@aws-sdk/client-s3": "^3.978.0",
|
|
8
74
|
"@aws-sdk/client-sts": "^3.1024.0",
|
|
9
75
|
"@aws-sdk/s3-request-presigner": "^3.978.0",
|
|
10
|
-
"@dofe/infra-contracts": "^0.1.
|
|
11
|
-
"@dofe/infra-docker": "^0.1.
|
|
12
|
-
"@dofe/infra-shared-services": "^0.1.14",
|
|
76
|
+
"@dofe/infra-contracts": "^0.1.18",
|
|
77
|
+
"@dofe/infra-docker": "^0.1.18",
|
|
13
78
|
"@google-cloud/storage": "^7.12.0",
|
|
14
79
|
"@nestjs/axios": "^4.0.0",
|
|
15
80
|
"@nestjs/common": "^11.0.0",
|
|
@@ -34,9 +99,9 @@
|
|
|
34
99
|
"zod": "^4.3.6"
|
|
35
100
|
},
|
|
36
101
|
"dependencies": {
|
|
37
|
-
"@dofe/infra-common": "^0.1.
|
|
38
|
-
"@dofe/infra-redis": "^0.1.
|
|
39
|
-
"@dofe/infra-utils": "^0.1.
|
|
102
|
+
"@dofe/infra-common": "^0.1.18",
|
|
103
|
+
"@dofe/infra-redis": "^0.1.18",
|
|
104
|
+
"@dofe/infra-utils": "^0.1.18"
|
|
40
105
|
},
|
|
41
106
|
"devDependencies": {
|
|
42
107
|
"rimraf": "^6.1.3",
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview OpenSpeech 语音识别服务导出
|
|
3
|
-
*
|
|
4
|
-
* 本模块提供多云服务商语音识别能力的统一封装。
|
|
5
|
-
*
|
|
6
|
-
* 支持的云服务商:
|
|
7
|
-
* - 阿里云 NLS 录音文件识别
|
|
8
|
-
* - 火山引擎大模型录音文件识别
|
|
9
|
-
*
|
|
10
|
-
* @module openspeech
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```typescript
|
|
14
|
-
* // 导入模块
|
|
15
|
-
* import { OpenspeechModule, OpenspeechClient } from '@dofe/infra-clients';
|
|
16
|
-
*
|
|
17
|
-
* // 在 NestJS 模块中使用
|
|
18
|
-
* @Module({
|
|
19
|
-
* imports: [OpenspeechModule],
|
|
20
|
-
* })
|
|
21
|
-
* export class MyModule {}
|
|
22
|
-
*
|
|
23
|
-
* // 在服务中注入使用
|
|
24
|
-
* @Injectable()
|
|
25
|
-
* class MyService {
|
|
26
|
-
* constructor(private readonly openspeech: OpenspeechClient) {}
|
|
27
|
-
* }
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
export * from './openspeech.module';
|
|
31
|
-
export * from './openspeech.client';
|
|
32
|
-
export * from './openspeech.factory';
|
|
33
|
-
export * from './types';
|
|
34
|
-
export * from './providers';
|
|
35
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/openspeech/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @fileoverview OpenSpeech 语音识别服务导出
|
|
4
|
-
*
|
|
5
|
-
* 本模块提供多云服务商语音识别能力的统一封装。
|
|
6
|
-
*
|
|
7
|
-
* 支持的云服务商:
|
|
8
|
-
* - 阿里云 NLS 录音文件识别
|
|
9
|
-
* - 火山引擎大模型录音文件识别
|
|
10
|
-
*
|
|
11
|
-
* @module openspeech
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```typescript
|
|
15
|
-
* // 导入模块
|
|
16
|
-
* import { OpenspeechModule, OpenspeechClient } from '@dofe/infra-clients';
|
|
17
|
-
*
|
|
18
|
-
* // 在 NestJS 模块中使用
|
|
19
|
-
* @Module({
|
|
20
|
-
* imports: [OpenspeechModule],
|
|
21
|
-
* })
|
|
22
|
-
* export class MyModule {}
|
|
23
|
-
*
|
|
24
|
-
* // 在服务中注入使用
|
|
25
|
-
* @Injectable()
|
|
26
|
-
* class MyService {
|
|
27
|
-
* constructor(private readonly openspeech: OpenspeechClient) {}
|
|
28
|
-
* }
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
32
|
-
if (k2 === undefined) k2 = k;
|
|
33
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
34
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
35
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
36
|
-
}
|
|
37
|
-
Object.defineProperty(o, k2, desc);
|
|
38
|
-
}) : (function(o, m, k, k2) {
|
|
39
|
-
if (k2 === undefined) k2 = k;
|
|
40
|
-
o[k2] = m[k];
|
|
41
|
-
}));
|
|
42
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
43
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
44
|
-
};
|
|
45
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
|
-
// 模块导出
|
|
47
|
-
__exportStar(require("./openspeech.module"), exports);
|
|
48
|
-
// 客户端导出
|
|
49
|
-
__exportStar(require("./openspeech.client"), exports);
|
|
50
|
-
// 工厂导出
|
|
51
|
-
__exportStar(require("./openspeech.factory"), exports);
|
|
52
|
-
// 类型导出
|
|
53
|
-
__exportStar(require("./types"), exports);
|
|
54
|
-
// 提供商导出(用于高级场景)
|
|
55
|
-
__exportStar(require("./providers"), exports);
|
|
56
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/openspeech/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;;;;;;;;;;;;;;;AAEH,OAAO;AACP,sDAAoC;AAEpC,QAAQ;AACR,sDAAoC;AAEpC,OAAO;AACP,uDAAqC;AAErC,OAAO;AACP,0CAAwB;AAExB,gBAAgB;AAChB,8CAA4B"}
|
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview OpenSpeech 语音识别服务客户端
|
|
3
|
-
*
|
|
4
|
-
* 本文件是语音识别服务的统一入口(Facade 模式),提供了简洁的 API 接口,
|
|
5
|
-
* 内部通过工厂模式委托给具体的云服务商实现。
|
|
6
|
-
*
|
|
7
|
-
* 架构说明:
|
|
8
|
-
* ```
|
|
9
|
-
* ┌─────────────────────────────────────────────────────────────┐
|
|
10
|
-
* │ OpenspeechClient │
|
|
11
|
-
* │ (Facade 门面) │
|
|
12
|
-
* └─────────────────────────────┬───────────────────────────────┘
|
|
13
|
-
* │
|
|
14
|
-
* ▼
|
|
15
|
-
* ┌─────────────────────────────────────────────────────────────┐
|
|
16
|
-
* │ OpenspeechProviderFactory │
|
|
17
|
-
* │ (工厂模式) │
|
|
18
|
-
* └──────────────┬──────────────────────────────┬───────────────┘
|
|
19
|
-
* │ │
|
|
20
|
-
* ▼ ▼
|
|
21
|
-
* ┌──────────────────────────┐ ┌──────────────────────────────┐
|
|
22
|
-
* │ AliyunOpenspeechProvider │ │ VolcengineOpenspeechProvider │
|
|
23
|
-
* │ (阿里云实现) │ │ (火山引擎实现) │
|
|
24
|
-
* └──────────────────────────┘ └──────────────────────────────┘
|
|
25
|
-
* ```
|
|
26
|
-
*
|
|
27
|
-
* @module openspeech/client
|
|
28
|
-
*/
|
|
29
|
-
import { Logger } from 'winston';
|
|
30
|
-
import { FileBucketVendor, FileSource } from '@prisma/client';
|
|
31
|
-
import { FileStorageService } from '@dofe/infra-shared-services';
|
|
32
|
-
import { OpenspeechProviderFactory } from './openspeech.factory';
|
|
33
|
-
import { SubmitTaskResult, TaskStatusResult, StreamingConnectParams, StreamingAsrCallbacks, StreamingAsrStatus, IStreamingAsrProvider } from './types';
|
|
34
|
-
/**
|
|
35
|
-
* OpenSpeech 语音识别服务客户端
|
|
36
|
-
*
|
|
37
|
-
* @description 作为语音识别服务的统一门面,提供以下核心功能:
|
|
38
|
-
*
|
|
39
|
-
* 1. **任务提交** - `submitTranscribeTask`
|
|
40
|
-
* 根据 FileKey 自动选择云服务商,提交语音识别任务
|
|
41
|
-
*
|
|
42
|
-
* 2. **状态查询** - `queryTranscribeTaskStatus`
|
|
43
|
-
* 查询指定任务的处理状态和结果
|
|
44
|
-
*
|
|
45
|
-
* 3. **同步识别** - `transcribeFromFileKey`
|
|
46
|
-
* 提交任务并轮询等待结果(阻塞式,向后兼容)
|
|
47
|
-
*
|
|
48
|
-
* 云服务商选择逻辑:
|
|
49
|
-
* - 优先使用 `preferVendor` 参数指定的云服务商
|
|
50
|
-
* - 默认根据 FileKey 的 vendor 字段选择
|
|
51
|
-
* - oss -> 阿里云, tos -> 火山引擎
|
|
52
|
-
*
|
|
53
|
-
* @class OpenspeechClient
|
|
54
|
-
*
|
|
55
|
-
* @example
|
|
56
|
-
* ```typescript
|
|
57
|
-
* // 注入客户端
|
|
58
|
-
* @Injectable()
|
|
59
|
-
* class VideoService {
|
|
60
|
-
* constructor(private readonly openspeech: OpenspeechClient) {}
|
|
61
|
-
*
|
|
62
|
-
* // 异步任务模式(推荐)
|
|
63
|
-
* async startTranscription(fileKey: FileKey) {
|
|
64
|
-
* const { vendor, vendorTaskId } = await this.openspeech.submitTranscribeTask(fileKey);
|
|
65
|
-
* // 保存 vendorTaskId,通过回调或轮询获取结果
|
|
66
|
-
* return { vendor, vendorTaskId };
|
|
67
|
-
* }
|
|
68
|
-
*
|
|
69
|
-
* // 查询任务状态
|
|
70
|
-
* async checkStatus(vendor: FileBucketVendor, taskId: string) {
|
|
71
|
-
* return await this.openspeech.queryTranscribeTaskStatus(vendor, taskId);
|
|
72
|
-
* }
|
|
73
|
-
*
|
|
74
|
-
* // 同步模式(阻塞等待,适用于简单场景)
|
|
75
|
-
* async transcribeSync(fileKey: FileKey) {
|
|
76
|
-
* return await this.openspeech.transcribeFromFileKey(fileKey);
|
|
77
|
-
* }
|
|
78
|
-
* }
|
|
79
|
-
* ```
|
|
80
|
-
*/
|
|
81
|
-
export declare class OpenspeechClient {
|
|
82
|
-
private readonly fileApi;
|
|
83
|
-
private readonly providerFactory;
|
|
84
|
-
private readonly logger;
|
|
85
|
-
/**
|
|
86
|
-
* 构造函数
|
|
87
|
-
*
|
|
88
|
-
* @param {FileStorageService} fileApi - 文件存储服务
|
|
89
|
-
* @param {OpenspeechProviderFactory} providerFactory - 提供商工厂
|
|
90
|
-
* @param {Logger} logger - Winston 日志记录器
|
|
91
|
-
*/
|
|
92
|
-
constructor(fileApi: FileStorageService, providerFactory: OpenspeechProviderFactory, logger: Logger);
|
|
93
|
-
/**
|
|
94
|
-
* 根据 FileKey 提交语音识别任务
|
|
95
|
-
*
|
|
96
|
-
* @description 根据文件信息自动选择云服务商并提交识别任务。
|
|
97
|
-
*
|
|
98
|
-
* 处理流程:
|
|
99
|
-
* 1. 验证 FileKey 的必要字段
|
|
100
|
-
* 2. 根据视频 key 推导音频 key
|
|
101
|
-
* 3. 获取存储桶配置,拼接音频 HTTP URL
|
|
102
|
-
* 4. 选择云服务商(优先级:preferVendor > vendor)
|
|
103
|
-
* 5. 调用对应提供商提交任务
|
|
104
|
-
*
|
|
105
|
-
* @param {Partial<FileKey>} fileKey - 文件信息
|
|
106
|
-
* @param {FileBucketVendor} [fileKey.vendor] - 存储服务商(必填)
|
|
107
|
-
* @param {string} [fileKey.bucket] - 存储桶名称(必填)
|
|
108
|
-
* @param {string} [fileKey.key] - 文件路径(必填)
|
|
109
|
-
* @param {FileBucketVendor} [(fileKey as any).preferVendor] - 优先使用的云服务商
|
|
110
|
-
* @returns {Promise<SubmitTaskResult>} 任务提交结果
|
|
111
|
-
* @throws {Error} FileKey 无效或提交失败时抛出异常
|
|
112
|
-
*
|
|
113
|
-
* @example
|
|
114
|
-
* ```typescript
|
|
115
|
-
* // 基本用法
|
|
116
|
-
* const result = await client.submitTranscribeTask({
|
|
117
|
-
* vendor: 'oss',
|
|
118
|
-
* bucket: 'my-bucket',
|
|
119
|
-
* key: 'videos/example.mp4',
|
|
120
|
-
* });
|
|
121
|
-
* console.log('Task ID:', result.vendorTaskId);
|
|
122
|
-
*
|
|
123
|
-
* // 指定使用火山引擎
|
|
124
|
-
* const result = await client.submitTranscribeTask({
|
|
125
|
-
* vendor: 'oss',
|
|
126
|
-
* bucket: 'my-bucket',
|
|
127
|
-
* key: 'videos/example.mp4',
|
|
128
|
-
* preferVendor: 'tos',
|
|
129
|
-
* } as any);
|
|
130
|
-
* ```
|
|
131
|
-
*/
|
|
132
|
-
submitTranscribeTask(fileKey: Partial<FileSource>): Promise<SubmitTaskResult>;
|
|
133
|
-
/**
|
|
134
|
-
* 查询语音识别任务状态
|
|
135
|
-
*
|
|
136
|
-
* @description 根据云服务商和任务 ID 查询识别任务的状态和结果。
|
|
137
|
-
*
|
|
138
|
-
* 返回状态说明:
|
|
139
|
-
* - `processing`: 任务正在处理中,需要继续轮询
|
|
140
|
-
* - `success`: 识别成功,text 字段包含识别结果
|
|
141
|
-
* - `error`: 识别失败,error 字段包含错误信息
|
|
142
|
-
*
|
|
143
|
-
* @param {FileBucketVendor} vendor - 云服务商类型
|
|
144
|
-
* @param {string} vendorTaskId - 云服务商返回的任务 ID
|
|
145
|
-
* @returns {Promise<TaskStatusResult>} 任务状态和结果
|
|
146
|
-
* @throws {Error} 不支持的 vendor 类型时抛出异常
|
|
147
|
-
*
|
|
148
|
-
* @example
|
|
149
|
-
* ```typescript
|
|
150
|
-
* const result = await client.queryTranscribeTaskStatus('oss', 'task-123');
|
|
151
|
-
*
|
|
152
|
-
* if (result.status === 'success') {
|
|
153
|
-
* console.log('识别文本:', result.text);
|
|
154
|
-
* } else if (result.status === 'processing') {
|
|
155
|
-
* // 稍后重试
|
|
156
|
-
* setTimeout(() => this.checkStatus(), 3000);
|
|
157
|
-
* } else {
|
|
158
|
-
* console.error('识别失败:', result.error);
|
|
159
|
-
* }
|
|
160
|
-
* ```
|
|
161
|
-
*/
|
|
162
|
-
queryTranscribeTaskStatus(vendor: FileBucketVendor, vendorTaskId: string): Promise<TaskStatusResult>;
|
|
163
|
-
/**
|
|
164
|
-
* 根据 FileKey 进行语音识别(同步阻塞模式)
|
|
165
|
-
*
|
|
166
|
-
* @description 提交任务并轮询等待结果,直到识别完成或失败。
|
|
167
|
-
* 此方法会阻塞直到获得最终结果,适用于简单场景。
|
|
168
|
-
*
|
|
169
|
-
* **注意**:对于生产环境,建议使用异步模式:
|
|
170
|
-
* 1. 调用 `submitTranscribeTask` 提交任务
|
|
171
|
-
* 2. 配置回调 URL 接收结果,或定时调用 `queryTranscribeTaskStatus` 查询
|
|
172
|
-
*
|
|
173
|
-
* @deprecated 建议使用异步模式(submitTranscribeTask + queryTranscribeTaskStatus)
|
|
174
|
-
* @param {Partial<FileKey>} fileKey - 文件信息
|
|
175
|
-
* @returns {Promise<string>} 识别出的文本内容
|
|
176
|
-
* @throws {Error} 识别失败时抛出异常
|
|
177
|
-
*
|
|
178
|
-
* @example
|
|
179
|
-
* ```typescript
|
|
180
|
-
* try {
|
|
181
|
-
* const text = await client.transcribeFromFileKey({
|
|
182
|
-
* vendor: 'oss',
|
|
183
|
-
* bucket: 'my-bucket',
|
|
184
|
-
* key: 'videos/example.mp4',
|
|
185
|
-
* });
|
|
186
|
-
* console.log('识别结果:', text);
|
|
187
|
-
* } catch (error) {
|
|
188
|
-
* console.error('识别失败:', error.message);
|
|
189
|
-
* }
|
|
190
|
-
* ```
|
|
191
|
-
*/
|
|
192
|
-
transcribeFromFileKey(fileKey: Partial<FileSource>): Promise<string>;
|
|
193
|
-
/**
|
|
194
|
-
* 建立流式语音识别连接
|
|
195
|
-
*
|
|
196
|
-
* @description 建立 WebSocket 连接用于实时语音识别。
|
|
197
|
-
* 目前仅支持火山引擎 (tos) 流式识别。
|
|
198
|
-
*
|
|
199
|
-
* @param {FileBucketVendor} vendor - 云服务商类型(目前仅支持 'tos')
|
|
200
|
-
* @param {StreamingConnectParams} params - 连接参数
|
|
201
|
-
* @param {StreamingAsrCallbacks} callbacks - 事件回调
|
|
202
|
-
* @returns {Promise<string>} 连接 ID
|
|
203
|
-
* @throws {Error} 不支持的 vendor 类型或连接失败时抛出异常
|
|
204
|
-
*
|
|
205
|
-
* @example
|
|
206
|
-
* ```typescript
|
|
207
|
-
* const connectionId = await client.connectStreaming(
|
|
208
|
-
* 'tos',
|
|
209
|
-
* { sessionId: 'session-123', audioFormat: 'pcm' },
|
|
210
|
-
* {
|
|
211
|
-
* onResult: (result) => console.log('识别结果:', result.text),
|
|
212
|
-
* onConnected: () => console.log('已连接'),
|
|
213
|
-
* onError: (error) => console.error('错误:', error),
|
|
214
|
-
* }
|
|
215
|
-
* );
|
|
216
|
-
* ```
|
|
217
|
-
*/
|
|
218
|
-
connectStreaming(vendor: FileBucketVendor, params: StreamingConnectParams, callbacks: StreamingAsrCallbacks): Promise<string>;
|
|
219
|
-
/**
|
|
220
|
-
* 发送音频数据到流式识别连接
|
|
221
|
-
*
|
|
222
|
-
* @description 将音频数据发送到已建立的流式识别连接。
|
|
223
|
-
*
|
|
224
|
-
* @param {FileBucketVendor} vendor - 云服务商类型
|
|
225
|
-
* @param {string} connectionId - 连接 ID
|
|
226
|
-
* @param {Buffer} audioData - 音频数据
|
|
227
|
-
* @param {boolean} [isLast=false] - 是否为最后一帧
|
|
228
|
-
* @throws {Error} 连接不存在或发送失败时抛出异常
|
|
229
|
-
*
|
|
230
|
-
* @example
|
|
231
|
-
* ```typescript
|
|
232
|
-
* // 发送音频数据
|
|
233
|
-
* await client.sendStreamingAudio('tos', connectionId, audioBuffer);
|
|
234
|
-
*
|
|
235
|
-
* // 发送最后一帧
|
|
236
|
-
* await client.sendStreamingAudio('tos', connectionId, lastBuffer, true);
|
|
237
|
-
* ```
|
|
238
|
-
*/
|
|
239
|
-
sendStreamingAudio(vendor: FileBucketVendor, connectionId: string, audioData: Buffer, isLast?: boolean): Promise<void>;
|
|
240
|
-
/**
|
|
241
|
-
* 关闭流式识别连接
|
|
242
|
-
*
|
|
243
|
-
* @param {FileBucketVendor} vendor - 云服务商类型
|
|
244
|
-
* @param {string} connectionId - 连接 ID
|
|
245
|
-
*
|
|
246
|
-
* @example
|
|
247
|
-
* ```typescript
|
|
248
|
-
* await client.disconnectStreaming('tos', connectionId);
|
|
249
|
-
* ```
|
|
250
|
-
*/
|
|
251
|
-
disconnectStreaming(vendor: FileBucketVendor, connectionId: string): Promise<void>;
|
|
252
|
-
/**
|
|
253
|
-
* 获取流式识别连接状态
|
|
254
|
-
*
|
|
255
|
-
* @param {FileBucketVendor} vendor - 云服务商类型
|
|
256
|
-
* @param {string} connectionId - 连接 ID
|
|
257
|
-
* @returns {StreamingAsrStatus} 连接状态
|
|
258
|
-
*
|
|
259
|
-
* @example
|
|
260
|
-
* ```typescript
|
|
261
|
-
* const status = client.getStreamingStatus('tos', connectionId);
|
|
262
|
-
* if (status === 'streaming') {
|
|
263
|
-
* // 正在识别中
|
|
264
|
-
* }
|
|
265
|
-
* ```
|
|
266
|
-
*/
|
|
267
|
-
getStreamingStatus(vendor: FileBucketVendor, connectionId: string): StreamingAsrStatus;
|
|
268
|
-
/**
|
|
269
|
-
* 获取流式识别提供商实例
|
|
270
|
-
*
|
|
271
|
-
* @description 直接获取流式识别提供商,用于高级操作。
|
|
272
|
-
*
|
|
273
|
-
* @param {FileBucketVendor} vendor - 云服务商类型
|
|
274
|
-
* @returns {IStreamingAsrProvider} 流式识别提供商实例
|
|
275
|
-
*
|
|
276
|
-
* @example
|
|
277
|
-
* ```typescript
|
|
278
|
-
* const provider = client.getStreamingProvider('tos');
|
|
279
|
-
* const transcript = provider.getTranscript(connectionId);
|
|
280
|
-
* ```
|
|
281
|
-
*/
|
|
282
|
-
getStreamingProvider(vendor: FileBucketVendor): IStreamingAsrProvider;
|
|
283
|
-
/**
|
|
284
|
-
* 检查指定云服务商是否支持流式识别
|
|
285
|
-
*
|
|
286
|
-
* @param {FileBucketVendor} vendor - 云服务商类型
|
|
287
|
-
* @returns {boolean} 是否支持流式识别
|
|
288
|
-
*
|
|
289
|
-
* @example
|
|
290
|
-
* ```typescript
|
|
291
|
-
* if (client.isStreamingAvailable('tos')) {
|
|
292
|
-
* // 使用流式识别
|
|
293
|
-
* }
|
|
294
|
-
* ```
|
|
295
|
-
*/
|
|
296
|
-
isStreamingAvailable(vendor: FileBucketVendor): boolean;
|
|
297
|
-
/**
|
|
298
|
-
* 获取所有支持流式识别的云服务商列表
|
|
299
|
-
*
|
|
300
|
-
* @returns {FileBucketVendor[]} 支持流式识别的云服务商列表
|
|
301
|
-
*/
|
|
302
|
-
getStreamingAvailableVendors(): FileBucketVendor[];
|
|
303
|
-
}
|
|
304
|
-
//# sourceMappingURL=openspeech.client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openspeech.client.d.ts","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/openspeech/openspeech.client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBACa,gBAAgB;IASzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe;IACC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAV1D;;;;;;OAMG;gBAEgB,OAAO,EAAE,kBAAkB,EAC3B,eAAe,EAAE,yBAAyB,EACT,MAAM,EAAE,MAAM;IAGlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACG,oBAAoB,CACxB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,OAAO,CAAC,gBAAgB,CAAC;IAuC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,yBAAyB,CAC7B,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC;IAK5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B1E;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,gBAAgB,CACpB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,sBAAsB,EAC9B,SAAS,EAAE,qBAAqB,GAC/B,OAAO,CAAC,MAAM,CAAC;IAWlB;;;;;;;;;;;;;;;;;;;OAmBG;IACG,kBAAkB,CACtB,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,IAAI,CAAC;IAKhB;;;;;;;;;;OAUG;IACG,mBAAmB,CACvB,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAUhB;;;;;;;;;;;;;;OAcG;IACH,kBAAkB,CAChB,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,MAAM,GACnB,kBAAkB;IAKrB;;;;;;;;;;;;;OAaG;IACH,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,qBAAqB;IAIrE;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;IAIvD;;;;OAIG;IACH,4BAA4B,IAAI,gBAAgB,EAAE;CAGnD"}
|