Skip to content

Commit d50da79

Browse files
committed
feat: Add support for splitMessages and timePerChar in Integrations
1 parent 29e2cfa commit d50da79

File tree

17 files changed

+566
-73
lines changed

17 files changed

+566
-73
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
* Fake Call function
66
* Added unreadMessages to chats
77
* Pusher event integration
8+
* Add support for splitMessages and timePerChar in Integrations
89

910
### Fixed
1011

prisma/mysql-schema.prisma

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,8 @@ model OpenaiBot {
413413
keepOpen Boolean? @default(false)
414414
debounceTime Int? @db.Int
415415
ignoreJids Json?
416+
splitMessages Boolean? @default(false)
417+
timePerChar Int? @default(50) @db.Int
416418
triggerType TriggerType?
417419
triggerOperator TriggerOperator?
418420
triggerValue String?
@@ -436,6 +438,8 @@ model OpenaiSetting {
436438
keepOpen Boolean? @default(false)
437439
debounceTime Int? @db.Int
438440
ignoreJids Json?
441+
splitMessages Boolean? @default(false)
442+
timePerChar Int? @default(50) @db.Int
439443
speechToText Boolean? @default(false)
440444
createdAt DateTime? @default(dbgenerated("CURRENT_TIMESTAMP")) @db.Timestamp
441445
updatedAt DateTime @updatedAt @db.Timestamp
@@ -475,6 +479,8 @@ model Dify {
475479
keepOpen Boolean? @default(false)
476480
debounceTime Int? @db.Int
477481
ignoreJids Json?
482+
splitMessages Boolean? @default(false)
483+
timePerChar Int? @default(50) @db.Int
478484
triggerType TriggerType?
479485
triggerOperator TriggerOperator?
480486
triggerValue String?
@@ -496,6 +502,8 @@ model DifySetting {
496502
keepOpen Boolean? @default(false)
497503
debounceTime Int? @db.Int
498504
ignoreJids Json?
505+
splitMessages Boolean? @default(false)
506+
timePerChar Int? @default(50) @db.Int
499507
createdAt DateTime? @default(dbgenerated("CURRENT_TIMESTAMP")) @db.Timestamp
500508
updatedAt DateTime @updatedAt @db.Timestamp
501509
Fallback Dify? @relation(fields: [difyIdFallback], references: [id])
@@ -519,6 +527,8 @@ model EvolutionBot {
519527
keepOpen Boolean? @default(false)
520528
debounceTime Int? @db.Int
521529
ignoreJids Json?
530+
splitMessages Boolean? @default(false)
531+
timePerChar Int? @default(50) @db.Int
522532
triggerType TriggerType?
523533
triggerOperator TriggerOperator?
524534
triggerValue String?
@@ -540,6 +550,8 @@ model EvolutionBotSetting {
540550
keepOpen Boolean? @default(false)
541551
debounceTime Int? @db.Int
542552
ignoreJids Json?
553+
splitMessages Boolean? @default(false)
554+
timePerChar Int? @default(50) @db.Int
543555
createdAt DateTime? @default(dbgenerated("CURRENT_TIMESTAMP")) @db.Timestamp
544556
updatedAt DateTime @updatedAt @db.Timestamp
545557
Fallback EvolutionBot? @relation(fields: [botIdFallback], references: [id])
@@ -563,6 +575,8 @@ model Flowise {
563575
keepOpen Boolean? @default(false)
564576
debounceTime Int? @db.Int
565577
ignoreJids Json?
578+
splitMessages Boolean? @default(false)
579+
timePerChar Int? @default(50) @db.Int
566580
triggerType TriggerType?
567581
triggerOperator TriggerOperator?
568582
triggerValue String?
@@ -584,6 +598,8 @@ model FlowiseSetting {
584598
keepOpen Boolean? @default(false)
585599
debounceTime Int? @db.Int
586600
ignoreJids Json?
601+
splitMessages Boolean? @default(false)
602+
timePerChar Int? @default(50) @db.Int
587603
createdAt DateTime? @default(dbgenerated("CURRENT_TIMESTAMP")) @db.Timestamp
588604
updatedAt DateTime @updatedAt @db.Timestamp
589605
Fallback Flowise? @relation(fields: [flowiseIdFallback], references: [id])

prisma/postgresql-schema.prisma

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,8 @@ model OpenaiBot {
395395
stopBotFromMe Boolean? @default(false) @db.Boolean
396396
keepOpen Boolean? @default(false) @db.Boolean
397397
debounceTime Int? @db.Integer
398+
splitMessages Boolean? @default(false) @db.Boolean
399+
timePerChar Int? @default(50) @db.Integer
398400
ignoreJids Json?
399401
triggerType TriggerType?
400402
triggerOperator TriggerOperator?
@@ -438,6 +440,8 @@ model OpenaiSetting {
438440
keepOpen Boolean? @default(false) @db.Boolean
439441
debounceTime Int? @db.Integer
440442
ignoreJids Json?
443+
splitMessages Boolean? @default(false) @db.Boolean
444+
timePerChar Int? @default(50) @db.Integer
441445
speechToText Boolean? @default(false) @db.Boolean
442446
createdAt DateTime? @default(now()) @db.Timestamp
443447
updatedAt DateTime @updatedAt @db.Timestamp
@@ -477,6 +481,8 @@ model Dify {
477481
keepOpen Boolean? @default(false) @db.Boolean
478482
debounceTime Int? @db.Integer
479483
ignoreJids Json?
484+
splitMessages Boolean? @default(false) @db.Boolean
485+
timePerChar Int? @default(50) @db.Integer
480486
triggerType TriggerType?
481487
triggerOperator TriggerOperator?
482488
triggerValue String?
@@ -498,6 +504,8 @@ model DifySetting {
498504
keepOpen Boolean? @default(false) @db.Boolean
499505
debounceTime Int? @db.Integer
500506
ignoreJids Json?
507+
splitMessages Boolean? @default(false) @db.Boolean
508+
timePerChar Int? @default(50) @db.Integer
501509
createdAt DateTime? @default(now()) @db.Timestamp
502510
updatedAt DateTime @updatedAt @db.Timestamp
503511
Fallback Dify? @relation(fields: [difyIdFallback], references: [id])
@@ -521,6 +529,8 @@ model EvolutionBot {
521529
keepOpen Boolean? @default(false) @db.Boolean
522530
debounceTime Int? @db.Integer
523531
ignoreJids Json?
532+
splitMessages Boolean? @default(false) @db.Boolean
533+
timePerChar Int? @default(50) @db.Integer
524534
triggerType TriggerType?
525535
triggerOperator TriggerOperator?
526536
triggerValue String?
@@ -542,6 +552,8 @@ model EvolutionBotSetting {
542552
keepOpen Boolean? @default(false) @db.Boolean
543553
debounceTime Int? @db.Integer
544554
ignoreJids Json?
555+
splitMessages Boolean? @default(false) @db.Boolean
556+
timePerChar Int? @default(50) @db.Integer
545557
createdAt DateTime? @default(now()) @db.Timestamp
546558
updatedAt DateTime @updatedAt @db.Timestamp
547559
Fallback EvolutionBot? @relation(fields: [botIdFallback], references: [id])
@@ -565,6 +577,8 @@ model Flowise {
565577
keepOpen Boolean? @default(false) @db.Boolean
566578
debounceTime Int? @db.Integer
567579
ignoreJids Json?
580+
splitMessages Boolean? @default(false) @db.Boolean
581+
timePerChar Int? @default(50) @db.Integer
568582
triggerType TriggerType?
569583
triggerOperator TriggerOperator?
570584
triggerValue String?
@@ -586,6 +600,8 @@ model FlowiseSetting {
586600
keepOpen Boolean? @default(false) @db.Boolean
587601
debounceTime Int? @db.Integer
588602
ignoreJids Json?
603+
splitMessages Boolean? @default(false) @db.Boolean
604+
timePerChar Int? @default(50) @db.Integer
589605
createdAt DateTime? @default(now()) @db.Timestamp
590606
updatedAt DateTime @updatedAt @db.Timestamp
591607
Fallback Flowise? @relation(fields: [flowiseIdFallback], references: [id])

src/api/integrations/chatbot/dify/controllers/dify.controller.ts

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ export class DifyController extends ChatbotController implements ChatbotControll
5454
!data.stopBotFromMe ||
5555
!data.keepOpen ||
5656
!data.debounceTime ||
57-
!data.ignoreJids
57+
!data.ignoreJids ||
58+
!data.splitMessages ||
59+
!data.timePerChar
5860
) {
5961
const defaultSettingCheck = await this.settingsRepository.findFirst({
6062
where: {
@@ -71,6 +73,8 @@ export class DifyController extends ChatbotController implements ChatbotControll
7173
if (!data.keepOpen) data.keepOpen = defaultSettingCheck?.keepOpen || false;
7274
if (!data.debounceTime) data.debounceTime = defaultSettingCheck?.debounceTime || 0;
7375
if (!data.ignoreJids) data.ignoreJids = defaultSettingCheck?.ignoreJids || [];
76+
if (!data.splitMessages) data.splitMessages = defaultSettingCheck?.splitMessages || false;
77+
if (!data.timePerChar) data.timePerChar = defaultSettingCheck?.timePerChar || 0;
7478

7579
if (!defaultSettingCheck) {
7680
await this.settings(instance, {
@@ -83,6 +87,8 @@ export class DifyController extends ChatbotController implements ChatbotControll
8387
keepOpen: data.keepOpen,
8488
debounceTime: data.debounceTime,
8589
ignoreJids: data.ignoreJids,
90+
splitMessages: data.splitMessages,
91+
timePerChar: data.timePerChar,
8692
});
8793
}
8894
}
@@ -168,6 +174,8 @@ export class DifyController extends ChatbotController implements ChatbotControll
168174
triggerOperator: data.triggerOperator,
169175
triggerValue: data.triggerValue,
170176
ignoreJids: data.ignoreJids,
177+
splitMessages: data.splitMessages,
178+
timePerChar: data.timePerChar,
171179
},
172180
});
173181

@@ -349,6 +357,8 @@ export class DifyController extends ChatbotController implements ChatbotControll
349357
triggerOperator: data.triggerOperator,
350358
triggerValue: data.triggerValue,
351359
ignoreJids: data.ignoreJids,
360+
splitMessages: data.splitMessages,
361+
timePerChar: data.timePerChar,
352362
},
353363
});
354364

@@ -438,6 +448,8 @@ export class DifyController extends ChatbotController implements ChatbotControll
438448
debounceTime: data.debounceTime,
439449
difyIdFallback: data.difyIdFallback,
440450
ignoreJids: data.ignoreJids,
451+
splitMessages: data.splitMessages,
452+
timePerChar: data.timePerChar,
441453
},
442454
});
443455

@@ -452,6 +464,8 @@ export class DifyController extends ChatbotController implements ChatbotControll
452464
debounceTime: updateSettings.debounceTime,
453465
difyIdFallback: updateSettings.difyIdFallback,
454466
ignoreJids: updateSettings.ignoreJids,
467+
splitMessages: updateSettings.splitMessages,
468+
timePerChar: updateSettings.timePerChar,
455469
};
456470
}
457471

@@ -468,6 +482,8 @@ export class DifyController extends ChatbotController implements ChatbotControll
468482
difyIdFallback: data.difyIdFallback,
469483
ignoreJids: data.ignoreJids,
470484
instanceId: instanceId,
485+
splitMessages: data.splitMessages,
486+
timePerChar: data.timePerChar,
471487
},
472488
});
473489

@@ -482,6 +498,8 @@ export class DifyController extends ChatbotController implements ChatbotControll
482498
debounceTime: newSetttings.debounceTime,
483499
difyIdFallback: newSetttings.difyIdFallback,
484500
ignoreJids: newSetttings.ignoreJids,
501+
splitMessages: newSetttings.splitMessages,
502+
timePerChar: newSetttings.timePerChar,
485503
};
486504
} catch (error) {
487505
this.logger.error(error);
@@ -520,6 +538,8 @@ export class DifyController extends ChatbotController implements ChatbotControll
520538
stopBotFromMe: false,
521539
keepOpen: false,
522540
ignoreJids: [],
541+
splitMessages: false,
542+
timePerChar: 0,
523543
difyIdFallback: '',
524544
fallback: null,
525545
};
@@ -534,6 +554,8 @@ export class DifyController extends ChatbotController implements ChatbotControll
534554
stopBotFromMe: settings.stopBotFromMe,
535555
keepOpen: settings.keepOpen,
536556
ignoreJids: settings.ignoreJids,
557+
splitMessages: settings.splitMessages,
558+
timePerChar: settings.timePerChar,
537559
difyIdFallback: settings.difyIdFallback,
538560
fallback: settings.Fallback,
539561
};
@@ -763,6 +785,8 @@ export class DifyController extends ChatbotController implements ChatbotControll
763785
let keepOpen = findBot?.keepOpen;
764786
let debounceTime = findBot?.debounceTime;
765787
let ignoreJids = findBot?.ignoreJids;
788+
let splitMessages = findBot?.splitMessages;
789+
let timePerChar = findBot?.timePerChar;
766790

767791
if (!expire) expire = settings.expire;
768792
if (!keywordFinish) keywordFinish = settings.keywordFinish;
@@ -771,8 +795,10 @@ export class DifyController extends ChatbotController implements ChatbotControll
771795
if (!listeningFromMe) listeningFromMe = settings.listeningFromMe;
772796
if (!stopBotFromMe) stopBotFromMe = settings.stopBotFromMe;
773797
if (!keepOpen) keepOpen = settings.keepOpen;
774-
if (!debounceTime) debounceTime = settings.debounceTime;
798+
if (debounceTime === undefined || debounceTime === null) debounceTime = settings.debounceTime;
775799
if (!ignoreJids) ignoreJids = settings.ignoreJids;
800+
if (splitMessages === undefined || splitMessages === null) splitMessages = settings?.splitMessages ?? false;
801+
if (timePerChar === undefined || timePerChar === null) timePerChar = settings?.timePerChar ?? 0;
776802

777803
const key = msg.key as {
778804
id: string;
@@ -819,6 +845,8 @@ export class DifyController extends ChatbotController implements ChatbotControll
819845
keepOpen,
820846
debounceTime,
821847
ignoreJids,
848+
splitMessages,
849+
timePerChar,
822850
},
823851
debouncedContent,
824852
msg?.pushName,
@@ -841,6 +869,8 @@ export class DifyController extends ChatbotController implements ChatbotControll
841869
keepOpen,
842870
debounceTime,
843871
ignoreJids,
872+
splitMessages,
873+
timePerChar,
844874
},
845875
content,
846876
msg?.pushName,

src/api/integrations/chatbot/dify/dto/dify.dto.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ export class DifyDto {
1818
triggerOperator?: TriggerOperator;
1919
triggerValue?: string;
2020
ignoreJids?: any;
21+
splitMessages?: boolean;
22+
timePerChar?: number;
2123
}
2224

2325
export class DifySettingDto {
@@ -31,4 +33,6 @@ export class DifySettingDto {
3133
debounceTime?: number;
3234
difyIdFallback?: string;
3335
ignoreJids?: any;
36+
splitMessages?: boolean;
37+
timePerChar?: number;
3438
}

0 commit comments

Comments
 (0)