@eaziz/prepare 0.1.2 → 0.1.4
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/README.md +41 -6
- package/dist/async-job.d.ts +29 -0
- package/dist/async-job.d.ts.map +1 -0
- package/dist/async-job.js +29 -0
- package/dist/async-job.js.map +1 -0
- package/dist/contracts.d.ts +0 -45
- package/dist/contracts.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/protocol-registry.d.ts +8 -10
- package/dist/protocol-registry.d.ts.map +1 -1
- package/dist/protocol-registry.js +63 -2
- package/dist/protocol-registry.js.map +1 -1
- package/dist/protocols/catalog.d.ts +2 -2
- package/dist/protocols/catalog.d.ts.map +1 -1
- package/dist/protocols/catalog.js +2 -15
- package/dist/protocols/catalog.js.map +1 -1
- package/dist/protocols/images.d.ts +23 -2
- package/dist/protocols/images.d.ts.map +1 -1
- package/dist/protocols/images.js +88 -21
- package/dist/protocols/images.js.map +1 -1
- package/dist/protocols/realtime.d.ts +3 -3
- package/dist/protocols/realtime.d.ts.map +1 -1
- package/dist/protocols/realtime.js.map +1 -1
- package/dist/protocols/speech.d.ts +9 -8
- package/dist/protocols/speech.d.ts.map +1 -1
- package/dist/protocols/speech.js +26 -70
- package/dist/protocols/speech.js.map +1 -1
- package/dist/protocols/text.d.ts +11 -10
- package/dist/protocols/text.d.ts.map +1 -1
- package/dist/protocols/text.js +9 -306
- package/dist/protocols/text.js.map +1 -1
- package/dist/protocols/transcription.d.ts +9 -5
- package/dist/protocols/transcription.d.ts.map +1 -1
- package/dist/protocols/transcription.js +14 -26
- package/dist/protocols/transcription.js.map +1 -1
- package/dist/protocols/video.d.ts +5 -9
- package/dist/protocols/video.d.ts.map +1 -1
- package/dist/protocols/video.js +5 -18
- package/dist/protocols/video.js.map +1 -1
- package/dist/request-builders/multipart.d.ts +2 -2
- package/dist/request-builders/multipart.d.ts.map +1 -1
- package/dist/request-builders/multipart.js +3 -3
- package/dist/request-builders/multipart.js.map +1 -1
- package/dist/request-compiler.d.ts +1 -0
- package/dist/request-compiler.d.ts.map +1 -1
- package/dist/request-compiler.js.map +1 -1
- package/dist/request-types.d.ts +170 -72
- package/dist/request-types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/protocols/images.js
CHANGED
|
@@ -1,31 +1,19 @@
|
|
|
1
|
+
import { asyncJobLifecycle, } from "../async-job.js";
|
|
1
2
|
import { mediaBlob } from "../media-codecs.js";
|
|
2
3
|
import { multipartRequest } from "../request-builders/multipart.js";
|
|
3
4
|
import { jsonRequest } from "../request-builders/http.js";
|
|
4
5
|
export function prepareImageGeneration(request) {
|
|
5
|
-
|
|
6
|
-
? request.input.size
|
|
7
|
-
: request.input.size
|
|
8
|
-
? `${request.input.size.width}x${request.input.size.height}`
|
|
9
|
-
: undefined;
|
|
10
|
-
return jsonRequest(request, "/v1/images/generations", {
|
|
11
|
-
...request.input.extraBody,
|
|
12
|
-
model: request.model,
|
|
13
|
-
prompt: request.input.prompt,
|
|
14
|
-
...(size ? { size } : {}),
|
|
15
|
-
...(request.input.n !== undefined ? { n: request.input.n } : {}),
|
|
16
|
-
...(request.input.quality ? { quality: request.input.quality } : {}),
|
|
17
|
-
...(request.input.style ? { style: request.input.style } : {}),
|
|
18
|
-
...(request.input.responseFormat
|
|
19
|
-
? { response_format: request.input.responseFormat }
|
|
20
|
-
: {}),
|
|
21
|
-
});
|
|
6
|
+
return jsonRequest(request, "/v1/images/generations", { ...request.input, model: request.model }, {}, request.input.stream ? "http-stream" : "http");
|
|
22
7
|
}
|
|
23
8
|
export function prepareImageEditing(request) {
|
|
24
9
|
const form = new FormData();
|
|
25
10
|
form.set("model", request.model);
|
|
26
11
|
form.set("prompt", request.input.prompt);
|
|
27
|
-
const
|
|
28
|
-
|
|
12
|
+
const images = Array.isArray(request.input.image)
|
|
13
|
+
? request.input.image
|
|
14
|
+
: [request.input.image];
|
|
15
|
+
const imageField = images.length > 1 ? "image[]" : "image";
|
|
16
|
+
images.forEach((image, index) => {
|
|
29
17
|
form.append(imageField, mediaBlob(image), `image-${index + 1}`);
|
|
30
18
|
});
|
|
31
19
|
if (request.input.mask !== undefined)
|
|
@@ -34,10 +22,89 @@ export function prepareImageEditing(request) {
|
|
|
34
22
|
form.set("size", request.input.size);
|
|
35
23
|
if (request.input.n !== undefined)
|
|
36
24
|
form.set("n", String(request.input.n));
|
|
37
|
-
for (const [key, value] of Object.entries(request.input
|
|
25
|
+
for (const [key, value] of Object.entries(request.input)) {
|
|
26
|
+
if (["prompt", "image", "mask", "size", "n"].includes(key))
|
|
27
|
+
continue;
|
|
38
28
|
if (value !== undefined)
|
|
39
29
|
form.set(key, typeof value === "string" ? value : JSON.stringify(value));
|
|
40
30
|
}
|
|
41
|
-
return multipartRequest(request, "/v1/images/edits", form);
|
|
31
|
+
return multipartRequest(request, "/v1/images/edits", form, request.input.stream ? "http-stream" : "http");
|
|
32
|
+
}
|
|
33
|
+
export function prepareDashScopeImage(request) {
|
|
34
|
+
return jsonRequest(request, "/api/v1/services/aigc/multimodal-generation/generation", { ...request.input, model: request.model });
|
|
35
|
+
}
|
|
36
|
+
export function prepareDashScopeImageAsync(request, context) {
|
|
37
|
+
if (!context.lifecycle) {
|
|
38
|
+
throw new Error(`Protocol "${request.protocol}" requires lifecycle metadata.`);
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
...jsonRequest(request, "/api/v1/services/aigc/image-generation/generation", { ...request.input, model: request.model }, { "x-dashscope-async": "enable" }),
|
|
42
|
+
lifecycle: asyncJobLifecycle(request, context.lifecycle),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export function prepareVolcengineImage(request) {
|
|
46
|
+
return jsonRequest(request, "/api/v3/images/generations", { ...request.input, model: request.model }, {}, request.input.stream ? "http-stream" : "http");
|
|
47
|
+
}
|
|
48
|
+
export function prepareZhipuImage(request) {
|
|
49
|
+
return jsonRequest(request, "/paas/v4/images/generations", {
|
|
50
|
+
...request.input,
|
|
51
|
+
model: request.model,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
export function prepareZhipuImageAsync(request, context) {
|
|
55
|
+
if (!context.lifecycle) {
|
|
56
|
+
throw new Error(`Protocol "${request.protocol}" requires lifecycle metadata.`);
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
...jsonRequest(request, "/paas/v4/async/images/generations", {
|
|
60
|
+
...request.input,
|
|
61
|
+
model: request.model,
|
|
62
|
+
}),
|
|
63
|
+
lifecycle: asyncJobLifecycle(request, context.lifecycle),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export function prepareKlingImage(request, context) {
|
|
67
|
+
if (!context.lifecycle) {
|
|
68
|
+
throw new Error(`Protocol "${request.protocol}" requires lifecycle metadata.`);
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
...jsonRequest(request, "/v1/images/generations", {
|
|
72
|
+
...request.input,
|
|
73
|
+
model_name: request.model,
|
|
74
|
+
}),
|
|
75
|
+
lifecycle: asyncJobLifecycle(request, context.lifecycle),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
export function prepareBflImage(request, context) {
|
|
79
|
+
if (!context.lifecycle) {
|
|
80
|
+
throw new Error(`Protocol "${request.protocol}" requires lifecycle metadata.`);
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
...jsonRequest(request, `/v1/${encodeURIComponent(request.model)}`, request.input),
|
|
84
|
+
lifecycle: asyncJobLifecycle(request, context.lifecycle),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
export function prepareMiniMaxImage(request) {
|
|
88
|
+
return jsonRequest(request, "/v1/image_generation", {
|
|
89
|
+
...request.input,
|
|
90
|
+
model: request.model,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
export function prepareXfyunImage(request) {
|
|
94
|
+
return jsonRequest(request, "/v2.1/tti", request.input);
|
|
95
|
+
}
|
|
96
|
+
export function prepareXfyunHiDream(request, context) {
|
|
97
|
+
if (!context.lifecycle) {
|
|
98
|
+
throw new Error(`Protocol "${request.protocol}" requires lifecycle metadata.`);
|
|
99
|
+
}
|
|
100
|
+
const appId = request.input.header.app_id;
|
|
101
|
+
return {
|
|
102
|
+
...jsonRequest(request, "/v1/private/s3fd61810/create", request.input),
|
|
103
|
+
lifecycle: asyncJobLifecycle(request, context.lifecycle, {
|
|
104
|
+
statusBody: (taskId) => ({
|
|
105
|
+
header: { app_id: appId, task_id: taskId },
|
|
106
|
+
}),
|
|
107
|
+
}),
|
|
108
|
+
};
|
|
42
109
|
}
|
|
43
110
|
//# sourceMappingURL=images.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/protocols/images.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/protocols/images.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ProtocolRequest } from "../request-types.js";
|
|
2
2
|
import { type PreparedWebSocketRequest } from "../request-builders/websocket.js";
|
|
3
|
-
type RealtimeRequest = ProtocolRequest<"realtime">;
|
|
4
|
-
export declare function prepareOpenAIRealtime(request: RealtimeRequest): PreparedWebSocketRequest;
|
|
5
|
-
export declare function prepareResponsesWebSocket(request: RealtimeRequest): PreparedWebSocketRequest;
|
|
3
|
+
type RealtimeRequest<P extends "openai-realtime" | "openai-responses-websocket"> = ProtocolRequest<"realtime", P>;
|
|
4
|
+
export declare function prepareOpenAIRealtime(request: RealtimeRequest<"openai-realtime">): PreparedWebSocketRequest;
|
|
5
|
+
export declare function prepareResponsesWebSocket(request: RealtimeRequest<"openai-responses-websocket">): PreparedWebSocketRequest;
|
|
6
6
|
export {};
|
|
7
7
|
//# sourceMappingURL=realtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../src/protocols/realtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,kCAAkC,CAAC;AAE1C,KAAK,eAAe,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"realtime.d.ts","sourceRoot":"","sources":["../../src/protocols/realtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,kCAAkC,CAAC;AAE1C,KAAK,eAAe,CAAC,CAAC,SAAS,iBAAiB,GAAG,4BAA4B,IAC7E,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AAEjC,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAC1C,wBAAwB,CAQ1B;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,CAAC,4BAA4B,CAAC,GACrD,wBAAwB,CAQ1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtime.js","sourceRoot":"","sources":["../../src/protocols/realtime.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,GAEjB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"realtime.js","sourceRoot":"","sources":["../../src/protocols/realtime.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,GAEjB,MAAM,kCAAkC,CAAC;AAK1C,MAAM,UAAU,qBAAqB,CACnC,OAA2C;IAE3C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3D,OAAO,gBAAgB,CACrB,OAAO,EACP,gBAAgB,KAAK,CAAC,QAAQ,EAAE,EAAE,EAClC,OAAO,CAAC,KAAK,CAAC,OAAO,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,OAAsD;IAEtD,OAAO,gBAAgB,CACrB,OAAO,EACP,eAAe,EACf,OAAO,CAAC,KAAK,CAAC,OAAO;QACnB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;QACpD,CAAC,CAAC,SAAS,CACd,CAAC;AACJ,CAAC"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import type { ProtocolRequest } from "../request-types.js";
|
|
2
1
|
import type { ProtocolContext } from "../protocol-registry.js";
|
|
2
|
+
import type { ProtocolRequest } from "../request-types.js";
|
|
3
3
|
import { type PreparedRequest } from "../request-builders/http.js";
|
|
4
|
-
type
|
|
4
|
+
type SpeechProtocol = "openai-audio" | "dashscope-audio" | "volcengine-audio" | "xfyun-audio" | "zhipu-audio" | "minimax-audio";
|
|
5
|
+
type SpeechRequest<P extends SpeechProtocol> = ProtocolRequest<"speech-generation", P>;
|
|
5
6
|
export interface PreparedSpeechRequest extends PreparedRequest {
|
|
6
7
|
readonly response: {
|
|
7
8
|
readonly kind: "audio";
|
|
8
9
|
readonly mediaType?: string;
|
|
9
10
|
};
|
|
10
11
|
}
|
|
11
|
-
export declare function prepareOpenAISpeech(request: SpeechRequest
|
|
12
|
-
export declare function prepareDashScopeSpeech(request: SpeechRequest
|
|
13
|
-
export declare function prepareVolcengineSpeech(request: SpeechRequest
|
|
14
|
-
export declare function prepareZhipuSpeech(request: SpeechRequest
|
|
15
|
-
export declare function prepareMiniMaxSpeech(request: SpeechRequest
|
|
16
|
-
export declare function prepareXfyunSpeech(request: SpeechRequest
|
|
12
|
+
export declare function prepareOpenAISpeech(request: SpeechRequest<"openai-audio">, context: ProtocolContext): PreparedSpeechRequest;
|
|
13
|
+
export declare function prepareDashScopeSpeech(request: SpeechRequest<"dashscope-audio">, context: ProtocolContext): PreparedSpeechRequest;
|
|
14
|
+
export declare function prepareVolcengineSpeech(request: SpeechRequest<"volcengine-audio">, context: ProtocolContext): PreparedSpeechRequest;
|
|
15
|
+
export declare function prepareZhipuSpeech(request: SpeechRequest<"zhipu-audio">, context: ProtocolContext): PreparedSpeechRequest;
|
|
16
|
+
export declare function prepareMiniMaxSpeech(request: SpeechRequest<"minimax-audio">, context: ProtocolContext): PreparedSpeechRequest;
|
|
17
|
+
export declare function prepareXfyunSpeech(request: SpeechRequest<"xfyun-audio">, context: ProtocolContext): PreparedSpeechRequest;
|
|
17
18
|
export {};
|
|
18
19
|
//# sourceMappingURL=speech.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speech.d.ts","sourceRoot":"","sources":["../../src/protocols/speech.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"speech.d.ts","sourceRoot":"","sources":["../../src/protocols/speech.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAGhF,KAAK,cAAc,GACf,cAAc,GACd,iBAAiB,GACjB,kBAAkB,GAClB,aAAa,GACb,aAAa,GACb,eAAe,CAAC;AACpB,KAAK,aAAa,CAAC,CAAC,SAAS,cAAc,IAAI,eAAe,CAC5D,mBAAmB,EACnB,CAAC,CACF,CAAC;AAEF,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5E;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,EACtC,OAAO,EAAE,eAAe,GACvB,qBAAqB,CAKvB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,EACzC,OAAO,EAAE,eAAe,GACvB,qBAAqB,CAOvB;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC,EAC1C,OAAO,EAAE,eAAe,GACvB,qBAAqB,CAIvB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,EACrC,OAAO,EAAE,eAAe,GACvB,qBAAqB,CAavB;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,EACvC,OAAO,EAAE,eAAe,GACvB,qBAAqB,CAKvB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,EACrC,OAAO,EAAE,eAAe,GACvB,qBAAqB,CAIvB"}
|
package/dist/protocols/speech.js
CHANGED
|
@@ -1,102 +1,58 @@
|
|
|
1
1
|
import { jsonRequest } from "../request-builders/http.js";
|
|
2
2
|
import { websocketRequest } from "../request-builders/websocket.js";
|
|
3
3
|
export function prepareOpenAISpeech(request, context) {
|
|
4
|
-
const input = request.input;
|
|
5
4
|
return audioRequest(request, context, "/v1/audio/speech", {
|
|
6
|
-
...input
|
|
5
|
+
...request.input,
|
|
7
6
|
model: request.model,
|
|
8
|
-
input: input.text,
|
|
9
|
-
voice: input.voice,
|
|
10
|
-
...(input.responseFormat ? { response_format: input.responseFormat } : {}),
|
|
11
|
-
...(input.speed !== undefined ? { speed: input.speed } : {}),
|
|
12
7
|
});
|
|
13
8
|
}
|
|
14
9
|
export function prepareDashScopeSpeech(request, context) {
|
|
15
|
-
|
|
16
|
-
return audioRequest(request, context, "/api/v1/services/aigc/multimodal-generation/generation", {
|
|
17
|
-
...input.extraBody,
|
|
18
|
-
model: request.model,
|
|
19
|
-
input: {
|
|
20
|
-
text: input.text,
|
|
21
|
-
...(input.voice ? { voice: input.voice } : {}),
|
|
22
|
-
},
|
|
23
|
-
parameters: {
|
|
24
|
-
...(input.parameters ?? {}),
|
|
25
|
-
...(input.voice ? { voice: input.voice } : {}),
|
|
26
|
-
...(input.responseFormat ? { format: input.responseFormat } : {}),
|
|
27
|
-
...(input.speed !== undefined ? { speed: input.speed } : {}),
|
|
28
|
-
},
|
|
29
|
-
});
|
|
10
|
+
return audioRequest(request, context, "/api/v1/services/aigc/multimodal-generation/generation", { ...request.input, model: request.model });
|
|
30
11
|
}
|
|
31
12
|
export function prepareVolcengineSpeech(request, context) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// provider protocol name stable while emitting the V3 wire contract.
|
|
35
|
-
return audioRequest(request, context, "/api/v3/tts/unidirectional/sse", {
|
|
36
|
-
...input.extraBody,
|
|
37
|
-
user: recordParameter(input.parameters?.user),
|
|
38
|
-
req_params: {
|
|
39
|
-
...recordParameter(input.parameters?.req_params),
|
|
40
|
-
text: input.text,
|
|
41
|
-
...(input.voice ? { voice_type: input.voice } : {}),
|
|
42
|
-
...(input.responseFormat ? { format: input.responseFormat } : {}),
|
|
43
|
-
...(input.speed !== undefined ? { speed_ratio: input.speed } : {}),
|
|
44
|
-
},
|
|
13
|
+
return audioRequest(request, context, "/api/v3/tts/unidirectional", {
|
|
14
|
+
...request.input,
|
|
45
15
|
});
|
|
46
16
|
}
|
|
47
17
|
export function prepareZhipuSpeech(request, context) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
18
|
+
return audioRequest(request, {
|
|
19
|
+
...context,
|
|
20
|
+
transport: request.input.stream ? "http-stream" : "http",
|
|
21
|
+
}, "/paas/v4/audio/speech", {
|
|
22
|
+
...request.input,
|
|
51
23
|
model: request.model,
|
|
52
|
-
input: input.text,
|
|
53
|
-
...(input.voice ? { voice: input.voice } : {}),
|
|
54
|
-
...(input.responseFormat ? { response_format: input.responseFormat } : {}),
|
|
55
|
-
...(input.speed !== undefined ? { speed: input.speed } : {}),
|
|
56
|
-
...(input.parameters ?? {}),
|
|
57
24
|
});
|
|
58
25
|
}
|
|
59
26
|
export function prepareMiniMaxSpeech(request, context) {
|
|
60
|
-
const input = request.input;
|
|
61
27
|
return audioRequest(request, context, "/v1/t2a_v2", {
|
|
62
|
-
...input
|
|
28
|
+
...request.input,
|
|
63
29
|
model: request.model,
|
|
64
|
-
text: input.text,
|
|
65
|
-
voice_setting: {
|
|
66
|
-
...recordParameter(input.parameters?.voice_setting),
|
|
67
|
-
...(input.voice ? { voice_id: input.voice } : {}),
|
|
68
|
-
...(input.speed !== undefined ? { speed: input.speed } : {}),
|
|
69
|
-
},
|
|
70
|
-
audio_setting: {
|
|
71
|
-
...recordParameter(input.parameters?.audio_setting),
|
|
72
|
-
...(input.responseFormat ? { format: input.responseFormat } : {}),
|
|
73
|
-
},
|
|
74
30
|
});
|
|
75
31
|
}
|
|
76
32
|
export function prepareXfyunSpeech(request, context) {
|
|
77
|
-
const input = request.input;
|
|
78
33
|
return audioRequest(request, context, "/v2/tts", {
|
|
79
|
-
...input
|
|
80
|
-
common: input.parameters?.common ?? {},
|
|
81
|
-
business: {
|
|
82
|
-
...recordParameter(input.parameters?.business),
|
|
83
|
-
...(input.voice ? { vcn: input.voice } : {}),
|
|
84
|
-
...(input.speed !== undefined ? { speed: input.speed } : {}),
|
|
85
|
-
...(input.responseFormat ? { aue: input.responseFormat } : {}),
|
|
86
|
-
},
|
|
87
|
-
data: { text: input.text, status: 2 },
|
|
34
|
+
...request.input,
|
|
88
35
|
});
|
|
89
36
|
}
|
|
90
37
|
function audioRequest(request, context, path, body) {
|
|
91
38
|
const prepared = context.transport === "websocket"
|
|
92
39
|
? websocketRequest(request, path, body)
|
|
93
40
|
: jsonRequest(request, path, body, {}, context.transport);
|
|
94
|
-
return { ...prepared, response: audioResponse(request.input
|
|
41
|
+
return { ...prepared, response: audioResponse(formatFromInput(request.input)) };
|
|
95
42
|
}
|
|
96
|
-
function
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
43
|
+
function formatFromInput(input) {
|
|
44
|
+
if (typeof input.response_format === "string")
|
|
45
|
+
return input.response_format;
|
|
46
|
+
for (const key of ["parameters", "req_params", "audio_setting", "business"]) {
|
|
47
|
+
const nested = input[key];
|
|
48
|
+
if (nested && typeof nested === "object") {
|
|
49
|
+
const format = nested.format ??
|
|
50
|
+
nested.aue;
|
|
51
|
+
if (typeof format === "string")
|
|
52
|
+
return format;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
100
56
|
}
|
|
101
57
|
function mediaTypeFor(format) {
|
|
102
58
|
switch (format?.toLowerCase()) {
|
|
@@ -118,7 +74,7 @@ function mediaTypeFor(format) {
|
|
|
118
74
|
}
|
|
119
75
|
}
|
|
120
76
|
function audioResponse(format) {
|
|
121
|
-
const mediaType = mediaTypeFor(format);
|
|
77
|
+
const mediaType = mediaTypeFor(typeof format === "string" ? format : undefined);
|
|
122
78
|
return { kind: "audio", ...(mediaType ? { mediaType } : {}) };
|
|
123
79
|
}
|
|
124
80
|
//# sourceMappingURL=speech.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speech.js","sourceRoot":"","sources":["../../src/protocols/speech.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAwB,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"speech.js","sourceRoot":"","sources":["../../src/protocols/speech.ts"],"names":[],"mappings":"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"}
|
package/dist/protocols/text.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import type { Message } from "../contracts.js";
|
|
2
1
|
import type { ProtocolRequest } from "../request-types.js";
|
|
3
2
|
import type { PreparedRequest } from "../request-builders/http.js";
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export declare function
|
|
11
|
-
export declare function
|
|
12
|
-
export declare function
|
|
3
|
+
type TextModel = "text-generation" | "multimodal-generation";
|
|
4
|
+
export type TextRequest = ProtocolRequest<TextModel, "openai-chat-completions" | "openai-responses" | "anthropic-messages" | "gemini-generate-content">;
|
|
5
|
+
type ChatRequest = ProtocolRequest<TextModel, "openai-chat-completions">;
|
|
6
|
+
type ResponsesRequest = ProtocolRequest<TextModel, "openai-responses">;
|
|
7
|
+
type AnthropicRequest = ProtocolRequest<TextModel, "anthropic-messages">;
|
|
8
|
+
type GeminiRequest = ProtocolRequest<TextModel | "image-generation" | "image-editing", "gemini-generate-content">;
|
|
9
|
+
export declare function prepareOpenAIChat(request: ChatRequest): PreparedRequest;
|
|
10
|
+
export declare function prepareOpenAIResponses(request: ResponsesRequest): PreparedRequest;
|
|
11
|
+
export declare function prepareAnthropic(request: AnthropicRequest): PreparedRequest;
|
|
12
|
+
export declare function prepareGemini(request: GeminiRequest): PreparedRequest;
|
|
13
|
+
export {};
|
|
13
14
|
//# sourceMappingURL=text.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/protocols/text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/protocols/text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAGnE,KAAK,SAAS,GAAG,iBAAiB,GAAG,uBAAuB,CAAC;AAC7D,MAAM,MAAM,WAAW,GAAG,eAAe,CACvC,SAAS,EACP,yBAAyB,GACzB,kBAAkB,GAClB,oBAAoB,GACpB,yBAAyB,CAC5B,CAAC;AACF,KAAK,WAAW,GAAG,eAAe,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;AACzE,KAAK,gBAAgB,GAAG,eAAe,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;AACvE,KAAK,gBAAgB,GAAG,eAAe,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AACzE,KAAK,aAAa,GAAG,eAAe,CAClC,SAAS,GAAG,kBAAkB,GAAG,eAAe,EAChD,yBAAyB,CAC1B,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CAQvE;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,gBAAgB,GACxB,eAAe,CAQjB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAa3E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,eAAe,CAWrE"}
|