This commit is contained in:
Leifer Mendez
2024-04-24 18:59:05 +02:00
commit c5f48307c2
15 changed files with 3504 additions and 0 deletions

37
src/app.ts Normal file
View File

@@ -0,0 +1,37 @@
import "dotenv/config"
import { createBot, createProvider, createFlow, addKeyword, EVENTS } from '@builderbot/bot'
import { MemoryDB as Database } from '@builderbot/bot'
import { BaileysProvider as Provider } from '@builderbot/provider-baileys'
import { toAsk, httpInject } from "@builderbot-plugins/openai-assistants"
import { typing } from "./utils/presence"
const PORT = process.env?.PORT ?? 3008
const ASSISTANT_ID = process.env?.ASSISTANT_ID ?? ''
const welcomeFlow = addKeyword<Provider, Database>(EVENTS.WELCOME)
.addAction(async (ctx, { flowDynamic, state, provider }) => {
await typing(ctx, provider)
const response = await toAsk(ASSISTANT_ID, ctx.body, state)
const chunks = response.split(/(?<!\d)\.\s+/g);
for (const chunk of chunks) {
await flowDynamic([{ body: chunk.trim() }]);
}
})
const main = async () => {
const adapterFlow = createFlow([welcomeFlow])
const adapterProvider = createProvider(Provider)
const adapterDB = new Database()
const { httpServer } = await createBot({
flow: adapterFlow,
provider: adapterProvider,
database: adapterDB,
})
httpInject(adapterProvider.server)
httpServer(+PORT)
}
main()