mirror of
https://github.com/marcogll/builderbot-openai-assistants.git
synced 2026-01-13 21:35:19 +00:00
fix: stuff
This commit is contained in:
57
src/app.ts
57
src/app.ts
@@ -1,29 +1,60 @@
|
||||
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 { MemoryDB } from '@builderbot/bot'
|
||||
import { BaileysProvider } 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 ?? ''
|
||||
/** Puerto en el que se ejecutará el servidor */
|
||||
const PORT = process.env.PORT ?? 3008
|
||||
/** ID del asistente de OpenAI */
|
||||
const ASSISTANT_ID = process.env.ASSISTANT_ID ?? ''
|
||||
|
||||
const welcomeFlow = addKeyword<Provider, Database>(EVENTS.WELCOME)
|
||||
/**
|
||||
* Flujo de bienvenida que maneja las respuestas del asistente de IA
|
||||
* @type {import('@builderbot/bot').Flow<BaileysProvider, MemoryDB>}
|
||||
*/
|
||||
const welcomeFlow = addKeyword<BaileysProvider, MemoryDB>(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(/\n\n+/);
|
||||
for (const chunk of chunks) {
|
||||
await flowDynamic([{ body: chunk.trim() }]);
|
||||
}
|
||||
|
||||
// Dividir la respuesta en chunks y enviarlos secuencialmente
|
||||
const chunks = response.split(/\n\n+/)
|
||||
for (const chunk of chunks) {
|
||||
const cleanedChunk = chunk.trim().replace(/【.*?】/g, "");
|
||||
await flowDynamic([{ body: cleanedChunk }])
|
||||
}
|
||||
})
|
||||
|
||||
/**
|
||||
* Función principal que configura y inicia el bot
|
||||
* @async
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
const main = async () => {
|
||||
/**
|
||||
* Flujo del bot
|
||||
* @type {import('@builderbot/bot').Flow<BaileysProvider, MemoryDB>}
|
||||
*/
|
||||
const adapterFlow = createFlow([welcomeFlow])
|
||||
const adapterProvider = createProvider(Provider)
|
||||
const adapterDB = new Database()
|
||||
|
||||
/**
|
||||
* Proveedor de servicios de mensajería
|
||||
* @type {BaileysProvider}
|
||||
*/
|
||||
const adapterProvider = createProvider(BaileysProvider)
|
||||
|
||||
/**
|
||||
* Base de datos en memoria para el bot
|
||||
* @type {MemoryDB}
|
||||
*/
|
||||
const adapterDB = new MemoryDB()
|
||||
|
||||
/**
|
||||
* Configuración y creación del bot
|
||||
* @type {import('@builderbot/bot').Bot<BaileysProvider, MemoryDB>}
|
||||
*/
|
||||
const { httpServer } = await createBot({
|
||||
flow: adapterFlow,
|
||||
provider: adapterProvider,
|
||||
@@ -34,4 +65,4 @@ const main = async () => {
|
||||
httpServer(+PORT)
|
||||
}
|
||||
|
||||
main()
|
||||
main()
|
||||
Reference in New Issue
Block a user