Skip to content

Commit 40ea8bf

Browse files
Merge pull request #1451 from gomessguii/feature/evoai-chatbot
feat(evoai): add EvoAI integration with models, services, and routes
2 parents a1cc504 + 0699ad4 commit 40ea8bf

File tree

13 files changed

+1806
-0
lines changed

13 files changed

+1806
-0
lines changed

.env.example

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,12 @@ OPENAI_ENABLED=false
213213
# Dify - Environment variables
214214
DIFY_ENABLED=false
215215

216+
# n8n - Environment variables
217+
N8N_ENABLED=false
218+
219+
# EvoAI - Environment variables
220+
EVOAI_ENABLED=false
221+
216222
# Cache - Environment variables
217223
# Redis Cache enabled
218224
CACHE_REDIS_ENABLED=true

prisma/mysql-schema.prisma

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -693,3 +693,51 @@ model N8nSetting {
693693
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
694694
instanceId String @unique
695695
}
696+
697+
model Evoai {
698+
id String @id @default(cuid())
699+
enabled Boolean @default(true) @db.Boolean
700+
description String? @db.VarChar(255)
701+
agentUrl String? @db.VarChar(255)
702+
apiKey String? @db.VarChar(255)
703+
expire Int? @default(0) @db.Integer
704+
keywordFinish String? @db.VarChar(100)
705+
delayMessage Int? @db.Integer
706+
unknownMessage String? @db.VarChar(100)
707+
listeningFromMe Boolean? @default(false) @db.Boolean
708+
stopBotFromMe Boolean? @default(false) @db.Boolean
709+
keepOpen Boolean? @default(false) @db.Boolean
710+
debounceTime Int? @db.Integer
711+
ignoreJids Json?
712+
splitMessages Boolean? @default(false) @db.Boolean
713+
timePerChar Int? @default(50) @db.Integer
714+
triggerType TriggerType?
715+
triggerOperator TriggerOperator?
716+
triggerValue String?
717+
createdAt DateTime? @default(now()) @db.Timestamp
718+
updatedAt DateTime @updatedAt @db.Timestamp
719+
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
720+
instanceId String
721+
EvoaiSetting EvoaiSetting[]
722+
}
723+
724+
model EvoaiSetting {
725+
id String @id @default(cuid())
726+
expire Int? @default(0) @db.Integer
727+
keywordFinish String? @db.VarChar(100)
728+
delayMessage Int? @db.Integer
729+
unknownMessage String? @db.VarChar(100)
730+
listeningFromMe Boolean? @default(false) @db.Boolean
731+
stopBotFromMe Boolean? @default(false) @db.Boolean
732+
keepOpen Boolean? @default(false) @db.Boolean
733+
debounceTime Int? @db.Integer
734+
ignoreJids Json?
735+
splitMessages Boolean? @default(false) @db.Boolean
736+
timePerChar Int? @default(50) @db.Integer
737+
createdAt DateTime? @default(now()) @db.Timestamp
738+
updatedAt DateTime @updatedAt @db.Timestamp
739+
Fallback Evoai? @relation(fields: [evoaiIdFallback], references: [id])
740+
evoaiIdFallback String? @db.VarChar(100)
741+
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
742+
instanceId String @unique
743+
}

prisma/postgresql-schema.prisma

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ model Instance {
108108
Pusher Pusher?
109109
N8n N8n[]
110110
N8nSetting N8nSetting[]
111+
Evoai Evoai[]
112+
EvoaiSetting EvoaiSetting?
111113
}
112114

113115
model Session {
@@ -694,3 +696,51 @@ model N8nSetting {
694696
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
695697
instanceId String @unique
696698
}
699+
700+
model Evoai {
701+
id String @id @default(cuid())
702+
enabled Boolean @default(true) @db.Boolean
703+
description String? @db.VarChar(255)
704+
agentUrl String? @db.VarChar(255)
705+
apiKey String? @db.VarChar(255)
706+
expire Int? @default(0) @db.Integer
707+
keywordFinish String? @db.VarChar(100)
708+
delayMessage Int? @db.Integer
709+
unknownMessage String? @db.VarChar(100)
710+
listeningFromMe Boolean? @default(false) @db.Boolean
711+
stopBotFromMe Boolean? @default(false) @db.Boolean
712+
keepOpen Boolean? @default(false) @db.Boolean
713+
debounceTime Int? @db.Integer
714+
ignoreJids Json?
715+
splitMessages Boolean? @default(false) @db.Boolean
716+
timePerChar Int? @default(50) @db.Integer
717+
triggerType TriggerType?
718+
triggerOperator TriggerOperator?
719+
triggerValue String?
720+
createdAt DateTime? @default(now()) @db.Timestamp
721+
updatedAt DateTime @updatedAt @db.Timestamp
722+
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
723+
instanceId String
724+
EvoaiSetting EvoaiSetting[]
725+
}
726+
727+
model EvoaiSetting {
728+
id String @id @default(cuid())
729+
expire Int? @default(0) @db.Integer
730+
keywordFinish String? @db.VarChar(100)
731+
delayMessage Int? @db.Integer
732+
unknownMessage String? @db.VarChar(100)
733+
listeningFromMe Boolean? @default(false) @db.Boolean
734+
stopBotFromMe Boolean? @default(false) @db.Boolean
735+
keepOpen Boolean? @default(false) @db.Boolean
736+
debounceTime Int? @db.Integer
737+
ignoreJids Json?
738+
splitMessages Boolean? @default(false) @db.Boolean
739+
timePerChar Int? @default(50) @db.Integer
740+
createdAt DateTime? @default(now()) @db.Timestamp
741+
updatedAt DateTime @updatedAt @db.Timestamp
742+
Fallback Evoai? @relation(fields: [evoaiIdFallback], references: [id])
743+
evoaiIdFallback String? @db.VarChar(100)
744+
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
745+
instanceId String @unique
746+
}

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { InstanceDto } from '@api/dto/instance.dto';
22
import { PrismaRepository } from '@api/repository/repository.service';
33
import {
44
difyController,
5+
evoaiController,
56
evolutionBotController,
67
flowiseController,
78
n8nController,
@@ -100,6 +101,8 @@ export class ChatbotController {
100101

101102
await n8nController.emit(emitData);
102103

104+
await evoaiController.emit(emitData);
105+
103106
await flowiseController.emit(emitData);
104107
}
105108

src/api/integrations/chatbot/chatbot.router.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { OpenaiRouter } from '@api/integrations/chatbot/openai/routes/openai.rou
44
import { TypebotRouter } from '@api/integrations/chatbot/typebot/routes/typebot.router';
55
import { Router } from 'express';
66

7+
import { EvoaiRouter } from './evoai/routes/evoai.router';
78
import { EvolutionBotRouter } from './evolutionBot/routes/evolutionBot.router';
89
import { FlowiseRouter } from './flowise/routes/flowise.router';
910
import { N8nRouter } from './n8n/routes/n8n.router';
@@ -21,5 +22,6 @@ export class ChatbotRouter {
2122
this.router.use('/dify', new DifyRouter(...guards).router);
2223
this.router.use('/flowise', new FlowiseRouter(...guards).router);
2324
this.router.use('/n8n', new N8nRouter(...guards).router);
25+
this.router.use('/evoai', new EvoaiRouter(...guards).router);
2426
}
2527
}

src/api/integrations/chatbot/chatbot.schema.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
export * from '@api/integrations/chatbot/chatwoot/validate/chatwoot.schema';
22
export * from '@api/integrations/chatbot/dify/validate/dify.schema';
3+
export * from '@api/integrations/chatbot/evoai/validate/evoai.schema';
34
export * from '@api/integrations/chatbot/evolutionBot/validate/evolutionBot.schema';
45
export * from '@api/integrations/chatbot/flowise/validate/flowise.schema';
56
export * from '@api/integrations/chatbot/n8n/validate/n8n.schema';

0 commit comments

Comments
 (0)