From 49e246a7acd62c42ffcc0dde3d00d12c8ce7477f Mon Sep 17 00:00:00 2001 From: Baptiste Arnaud Date: Sat, 15 Feb 2025 11:21:53 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=B8=20Gracefully=20handle=20and=20disp?= =?UTF-8?q?lay=20createSpeech=20error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blocks/openai/src/actions/createSpeech.ts | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/packages/forge/blocks/openai/src/actions/createSpeech.ts b/packages/forge/blocks/openai/src/actions/createSpeech.ts index 19df54c8c..70a2237d7 100644 --- a/packages/forge/blocks/openai/src/actions/createSpeech.ts +++ b/packages/forge/blocks/openai/src/actions/createSpeech.ts @@ -103,19 +103,27 @@ export const createSpeech = createAction({ const model = options.model ?? defaultOpenAIOptions.voiceModel; - const rawAudio = (await openai.audio.speech.create({ - input: options.input, - voice: options.voice, - model, - })) as any; + try { + const rawAudio = (await openai.audio.speech.create({ + input: options.input, + voice: options.voice, + model, + })) as any; + const url = await uploadFileToBucket({ + file: Buffer.from((await rawAudio.arrayBuffer()) as ArrayBuffer), + key: `tmp/openai/audio/${createId() + createId()}.mp3`, + mimeType: "audio/mpeg", + }); - const url = await uploadFileToBucket({ - file: Buffer.from((await rawAudio.arrayBuffer()) as ArrayBuffer), - key: `tmp/openai/audio/${createId() + createId()}.mp3`, - mimeType: "audio/mpeg", - }); - - variables.set([{ id: options.saveUrlInVariableId, value: url }]); + variables.set([{ id: options.saveUrlInVariableId, value: url }]); + } catch (err) { + logs.add( + await parseUnknownError({ + err, + context: "While generating speech", + }), + ); + } }, }, });