Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,9 @@ N8N_ENABLED=false
# EvoAI - Environment variables
EVOAI_ENABLED=false

# MiniMax - Environment variables
MINIMAX_ENABLED=false

# Cache - Environment variables
# Redis Cache enabled
CACHE_REDIS_ENABLED=true
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,9 @@ Evolution API supports various integrations to enhance its functionality. Below
- [OpenAI](https://openai.com/):
- Integrate your Evolution API with OpenAI for AI capabilities, including audio-to-text conversion, available across all Evolution integrations.

- [MiniMax](https://www.minimaxi.com/):
- Integrate your Evolution API with MiniMax AI for chat completion capabilities using MiniMax M2.5 and M2.5-highspeed models via OpenAI-compatible API.
Comment on lines +73 to +74
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nitpick (typo): Consider adding the article "an" before "OpenAI-compatible API" for grammatical correctness.

You could instead write: "…models via an OpenAI-compatible API." to fix the grammar while preserving the meaning.

Suggested change
- [MiniMax](https://www.minimaxi.com/):
- Integrate your Evolution API with MiniMax AI for chat completion capabilities using MiniMax M2.5 and M2.5-highspeed models via OpenAI-compatible API.
- [MiniMax](https://www.minimaxi.com/):
- Integrate your Evolution API with MiniMax AI for chat completion capabilities using MiniMax M2.5 and M2.5-highspeed models via an OpenAI-compatible API.


- Amazon S3 / Minio:
- Store media files received in [Amazon S3](https://aws.amazon.com/pt/s3/) or [Minio](https://min.io/).

Expand Down
70 changes: 70 additions & 0 deletions prisma/mysql-schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,9 @@ model Instance {
Evoai Evoai[]
EvoaiSetting EvoaiSetting?
Pusher Pusher?
MinimaxCreds MinimaxCreds[]
MinimaxBot MinimaxBot[]
MinimaxSetting MinimaxSetting?
}

model Session {
Expand Down Expand Up @@ -494,6 +497,73 @@ model OpenaiSetting {
instanceId String @unique
}

model MinimaxCreds {
id String @id @default(cuid())
name String? @unique @db.VarChar(255)
apiKey String? @unique @db.VarChar(255)
createdAt DateTime? @default(dbgenerated("CURRENT_TIMESTAMP")) @db.Timestamp
updatedAt DateTime @updatedAt @db.Timestamp
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
instanceId String
MinimaxBot MinimaxBot[]
MinimaxSetting MinimaxSetting?
}

model MinimaxBot {
id String @id @default(cuid())
enabled Boolean @default(true)
description String? @db.VarChar(255)
model String? @db.VarChar(100)
systemMessages Json? @db.Json
assistantMessages Json? @db.Json
userMessages Json? @db.Json
maxTokens Int? @db.Int
expire Int? @default(0) @db.Int
keywordFinish String? @db.VarChar(100)
delayMessage Int? @db.Int
unknownMessage String? @db.VarChar(100)
listeningFromMe Boolean? @default(false)
stopBotFromMe Boolean? @default(false)
keepOpen Boolean? @default(false)
debounceTime Int? @db.Int
splitMessages Boolean? @default(false)
timePerChar Int? @default(50) @db.Int
ignoreJids Json?
triggerType TriggerType?
triggerOperator TriggerOperator?
triggerValue String?
createdAt DateTime? @default(dbgenerated("CURRENT_TIMESTAMP")) @db.Timestamp
updatedAt DateTime @updatedAt @db.Timestamp
MinimaxCreds MinimaxCreds @relation(fields: [minimaxCredsId], references: [id], onDelete: Cascade)
minimaxCredsId String
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
instanceId String
MinimaxSetting MinimaxSetting[]
}

model MinimaxSetting {
id String @id @default(cuid())
expire Int? @default(0) @db.Int
keywordFinish String? @db.VarChar(100)
delayMessage Int? @db.Int
unknownMessage String? @db.VarChar(100)
listeningFromMe Boolean? @default(false)
stopBotFromMe Boolean? @default(false)
keepOpen Boolean? @default(false)
debounceTime Int? @db.Int
ignoreJids Json?
splitMessages Boolean? @default(false)
timePerChar Int? @default(50) @db.Int
createdAt DateTime? @default(dbgenerated("CURRENT_TIMESTAMP")) @db.Timestamp
updatedAt DateTime @updatedAt @db.Timestamp
MinimaxCreds MinimaxCreds? @relation(fields: [minimaxCredsId], references: [id])
minimaxCredsId String @unique
Fallback MinimaxBot? @relation(fields: [minimaxIdFallback], references: [id])
minimaxIdFallback String? @db.VarChar(100)
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
instanceId String @unique
}

model Template {
id String @id @default(cuid())
templateId String @unique @db.VarChar(255)
Expand Down
70 changes: 70 additions & 0 deletions prisma/postgresql-schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,9 @@ model Instance {
N8nSetting N8nSetting[]
Evoai Evoai[]
EvoaiSetting EvoaiSetting?
MinimaxCreds MinimaxCreds[]
MinimaxBot MinimaxBot[]
MinimaxSetting MinimaxSetting?
}

model Session {
Expand Down Expand Up @@ -499,6 +502,73 @@ model OpenaiSetting {
instanceId String @unique
}

model MinimaxCreds {
id String @id @default(cuid())
name String? @unique @db.VarChar(255)
apiKey String? @unique @db.VarChar(255)
createdAt DateTime? @default(now()) @db.Timestamp
updatedAt DateTime @updatedAt @db.Timestamp
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
instanceId String
MinimaxBot MinimaxBot[]
MinimaxSetting MinimaxSetting?
}

model MinimaxBot {
id String @id @default(cuid())
enabled Boolean @default(true) @db.Boolean
description String? @db.VarChar(255)
model String? @db.VarChar(100)
systemMessages Json? @db.JsonB
assistantMessages Json? @db.JsonB
userMessages Json? @db.JsonB
maxTokens Int? @db.Integer
expire Int? @default(0) @db.Integer
keywordFinish String? @db.VarChar(100)
delayMessage Int? @db.Integer
unknownMessage String? @db.VarChar(100)
listeningFromMe Boolean? @default(false) @db.Boolean
stopBotFromMe Boolean? @default(false) @db.Boolean
keepOpen Boolean? @default(false) @db.Boolean
debounceTime Int? @db.Integer
splitMessages Boolean? @default(false) @db.Boolean
timePerChar Int? @default(50) @db.Integer
ignoreJids Json?
triggerType TriggerType?
triggerOperator TriggerOperator?
triggerValue String?
createdAt DateTime? @default(now()) @db.Timestamp
updatedAt DateTime @updatedAt @db.Timestamp
MinimaxCreds MinimaxCreds @relation(fields: [minimaxCredsId], references: [id], onDelete: Cascade)
minimaxCredsId String
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
instanceId String
MinimaxSetting MinimaxSetting[]
}

model MinimaxSetting {
id String @id @default(cuid())
expire Int? @default(0) @db.Integer
keywordFinish String? @db.VarChar(100)
delayMessage Int? @db.Integer
unknownMessage String? @db.VarChar(100)
listeningFromMe Boolean? @default(false) @db.Boolean
stopBotFromMe Boolean? @default(false) @db.Boolean
keepOpen Boolean? @default(false) @db.Boolean
debounceTime Int? @db.Integer
ignoreJids Json?
splitMessages Boolean? @default(false) @db.Boolean
timePerChar Int? @default(50) @db.Integer
createdAt DateTime? @default(now()) @db.Timestamp
updatedAt DateTime @updatedAt @db.Timestamp
MinimaxCreds MinimaxCreds? @relation(fields: [minimaxCredsId], references: [id])
minimaxCredsId String @unique
Fallback MinimaxBot? @relation(fields: [minimaxIdFallback], references: [id])
minimaxIdFallback String? @db.VarChar(100)
Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade)
instanceId String @unique
}

model Template {
id String @id @default(cuid())
templateId String @unique @db.VarChar(255)
Expand Down
3 changes: 3 additions & 0 deletions src/api/integrations/chatbot/chatbot.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import {
evoaiController,
evolutionBotController,
flowiseController,
minimaxController,
n8nController,
openaiController,
typebotController,
Expand Down Expand Up @@ -104,6 +105,8 @@ export class ChatbotController {
evoaiController.emit(emitData);

flowiseController.emit(emitData);

minimaxController.emit(emitData);
}

public processDebounce(
Expand Down
2 changes: 2 additions & 0 deletions src/api/integrations/chatbot/chatbot.router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { Router } from 'express';
import { EvoaiRouter } from './evoai/routes/evoai.router';
import { EvolutionBotRouter } from './evolutionBot/routes/evolutionBot.router';
import { FlowiseRouter } from './flowise/routes/flowise.router';
import { MinimaxRouter } from './minimax/routes/minimax.router';
import { N8nRouter } from './n8n/routes/n8n.router';

export class ChatbotRouter {
Expand All @@ -23,5 +24,6 @@ export class ChatbotRouter {
this.router.use('/flowise', new FlowiseRouter(...guards).router);
this.router.use('/n8n', new N8nRouter(...guards).router);
this.router.use('/evoai', new EvoaiRouter(...guards).router);
this.router.use('/minimax', new MinimaxRouter(...guards).router);
}
}
1 change: 1 addition & 0 deletions src/api/integrations/chatbot/chatbot.schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ export * from '@api/integrations/chatbot/dify/validate/dify.schema';
export * from '@api/integrations/chatbot/evoai/validate/evoai.schema';
export * from '@api/integrations/chatbot/evolutionBot/validate/evolutionBot.schema';
export * from '@api/integrations/chatbot/flowise/validate/flowise.schema';
export * from '@api/integrations/chatbot/minimax/validate/minimax.schema';
export * from '@api/integrations/chatbot/n8n/validate/n8n.schema';
export * from '@api/integrations/chatbot/openai/validate/openai.schema';
export * from '@api/integrations/chatbot/typebot/validate/typebot.schema';
Loading