feat(Typebot): add splitMessages and timePerChar fields to Typebot models

- Introduced `splitMessages` and `timePerChar` fields in the Typebot and TypebotSetting models with default values.
- Created a migration script to update the database schema accordingly.
- Updated audio message handling to prepend `[audio]` to transcriptions for better clarity in message context.
This commit is contained in:
Davidson Gomes
2025-06-12 13:24:25 -03:00
parent 1eb2c848f7
commit bc451e8493
12 changed files with 951 additions and 507 deletions

View File

@@ -165,7 +165,7 @@ export class EvolutionStartupService extends ChannelStartupService {
openAiDefaultSettings.speechToText &&
received?.message?.audioMessage
) {
messageRaw.message.speechToText = await this.openaiService.speechToText(received, this);
messageRaw.message.speechToText = `[audio] ${await this.openaiService.speechToText(received, this)}`;
}
}

View File

@@ -520,7 +520,7 @@ export class BusinessStartupService extends ChannelStartupService {
openAiDefaultSettings.speechToText
) {
try {
messageRaw.message.speechToText = await this.openaiService.speechToText(
messageRaw.message.speechToText = `[audio] ${await this.openaiService.speechToText(
openAiDefaultSettings.OpenaiCreds,
{
message: {
@@ -528,7 +528,7 @@ export class BusinessStartupService extends ChannelStartupService {
...messageRaw,
},
},
);
)}`;
} catch (speechError) {
this.logger.error(`Error processing speech-to-text: ${speechError}`);
}
@@ -554,7 +554,7 @@ export class BusinessStartupService extends ChannelStartupService {
if (openAiDefaultSettings && openAiDefaultSettings.openaiCredsId && openAiDefaultSettings.speechToText) {
try {
messageRaw.message.speechToText = await this.openaiService.speechToText(
messageRaw.message.speechToText = `[audio] ${await this.openaiService.speechToText(
openAiDefaultSettings.OpenaiCreds,
{
message: {
@@ -562,7 +562,7 @@ export class BusinessStartupService extends ChannelStartupService {
...messageRaw,
},
},
);
)}`;
} catch (speechError) {
this.logger.error(`Error processing speech-to-text: ${speechError}`);
}

View File

@@ -1188,7 +1188,7 @@ export class BaileysStartupService extends ChannelStartupService {
});
if (openAiDefaultSettings && openAiDefaultSettings.openaiCredsId && openAiDefaultSettings.speechToText) {
messageRaw.message.speechToText = await this.openaiService.speechToText(received, this);
messageRaw.message.speechToText = `[audio] ${await this.openaiService.speechToText(received, this)}`;
}
}
@@ -2111,7 +2111,7 @@ export class BaileysStartupService extends ChannelStartupService {
});
if (openAiDefaultSettings && openAiDefaultSettings.openaiCredsId && openAiDefaultSettings.speechToText) {
messageRaw.message.speechToText = await this.openaiService.speechToText(messageRaw, this);
messageRaw.message.speechToText = `[audio] ${await this.openaiService.speechToText(messageRaw, this)}`;
}
}