Skip to content

Commit 806b0b4

Browse files
fix(minimax): stream music generation responses
1 parent a5e01c0 commit 806b0b4

2 files changed

Lines changed: 10 additions & 5 deletions

File tree

extensions/minimax/music-generation-provider.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ describe("minimax music generation provider", () => {
104104
expect(result.tracks).toHaveLength(1);
105105
expect(result.tracks[0]?.buffer).toEqual(Buffer.concat([chunkA, chunkB]));
106106
expect(result.tracks[0]?.mimeType).toBe("audio/mpeg");
107+
expect(result.metadata?.requestedLyrics).toBe(true);
107108
expect(result.metadata).not.toHaveProperty("requestedDurationSeconds");
108109
});
109110

extensions/minimax/music-generation-provider.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -304,12 +304,16 @@ function buildMinimaxMusicProvider(providerId: string): MusicGenerationProvider
304304
jsonHeaders.set("Content-Type", "application/json");
305305

306306
const model = resolveMinimaxMusicModel(req.model);
307-
const lyrics = normalizeOptionalString(req.lyrics);
307+
const requestedLyrics = normalizeOptionalString(req.lyrics);
308308
const body = {
309309
model,
310310
prompt: req.prompt.trim(),
311311
...(req.instrumental === true ? { is_instrumental: true } : {}),
312-
...(lyrics ? { lyrics } : req.instrumental === true ? {} : { lyrics_optimizer: true }),
312+
...(requestedLyrics
313+
? { lyrics: requestedLyrics }
314+
: req.instrumental === true
315+
? {}
316+
: { lyrics_optimizer: true }),
313317
stream: true,
314318
output_format: "hex",
315319
audio_setting: {
@@ -352,7 +356,7 @@ function buildMinimaxMusicProvider(providerId: string): MusicGenerationProvider
352356
normalizeOptionalString(payload?.data?.audio_url) ||
353357
(isLikelyRemoteUrl(audioCandidate) ? audioCandidate : undefined);
354358
const inlineAudio = isLikelyRemoteUrl(audioCandidate) ? undefined : audioCandidate;
355-
const lyrics = decodePossibleText(payload?.lyrics ?? payload?.data?.lyrics ?? "");
359+
const responseLyrics = decodePossibleText(payload?.lyrics ?? payload?.data?.lyrics ?? "");
356360

357361
const track = audioUrl
358362
? await downloadTrackFromUrl({
@@ -376,15 +380,15 @@ function buildMinimaxMusicProvider(providerId: string): MusicGenerationProvider
376380

377381
return {
378382
tracks: [track],
379-
...(lyrics ? { lyrics: [lyrics] } : {}),
383+
...(responseLyrics ? { lyrics: [responseLyrics] } : {}),
380384
model,
381385
metadata: {
382386
...(normalizeOptionalString(payload?.task_id)
383387
? { taskId: normalizeOptionalString(payload?.task_id) }
384388
: {}),
385389
...(audioUrl ? { audioUrl } : {}),
386390
instrumental: req.instrumental === true,
387-
...(lyrics ? { requestedLyrics: true } : {}),
391+
...(requestedLyrics ? { requestedLyrics: true } : {}),
388392
},
389393
};
390394
} finally {

0 commit comments

Comments
 (0)