mirror of
https://github.com/marcogll/builderbot-openai-assistants.git
synced 2026-01-13 13:25:18 +00:00
first
This commit is contained in:
37
src/app.ts
Normal file
37
src/app.ts
Normal 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()
|
||||
Reference in New Issue
Block a user