1.8.2-alpha.10 • Published 8 months ago

@elimeleth/vaincentflow v1.8.2-alpha.10

Weekly downloads
-
License
ISC
Repository
-
Last release
8 months ago
import "dotenv/config"
import { Workflow, GlobalRouter } from "@elimeleth/vaincentflow"
import { MetaProvider } from "@builderbot/provider-meta"

const general = new Workflow(/.*/gim)
    .addAction(async (ctx, { end, state, send, extensions: { provider, assistant } }) => {

        const controller = new AbortController()
        try {
            if (ctx.caption) ctx.body = ctx.caption
            
            const combinedMessage = ctx.messages.join(' ');
            let thread_id: string = await state.get("thread_id");

            if (!thread_id) {
                const thread = await assistant.create_thread()
                thread_id = thread.id
                await state.update("thread_id", thread_id)
            } 

            let answer = await assistant.invoke({
                signal: controller.signal,
                thread_id: thread_id,
                message: ctx.body,
                metadata: {
                    assistant_name: process.env.IMAGE
                },
                truncation_strategy: {
                    type: "last_messages",
                    last_messages: 4
                },
                tool_choice: "auto"
            }, {
                delay: 1500,
                logger: console.log,
                retries: 3
            }) as { output: string, usage: any }

            let chunks = answer.output.split("\n\n").filter(a => Boolean(a))
            
            chunks = [...new Set(chunks)]
            // typing ...
                for (const chunk of chunks) {
                    if (chunk.length) {
                        const hasImage = hasImageUrl(chunk) // validate has image

                        if (hasImage?.isValid) {
                            try {
                                await send([
                                    {
                                        body: hasImage.body.replace(/(image:|imagen:)/gim, "").trim(),
                                        media: hasImage.url
                                    }
                                ])
                            } catch (error) {
                                await send(chunk)
                            }
                        } else {
                            await send(chunk)
                        }
                    }
                }
        } catch (error) {
            controller.abort();
            return await end();
        }
    })

const router = new GlobalRouter({
    provider: new MetaProvider({
        jwtToken: process.env.JWT_TOKEN,
        numberId: process.env.NUMBER_ID,
        verifyToken: process.env.VERIFY_TOKEN,
        version: "v20.0"
    }),
    donwloadConf: { auto: true }
    llm: { provider: "openai", multimodal: { capture_intentions: true }},
    openai_assistant: {
            apiKey: process.env.OPENAI_API_KEY,
            functions: [search]
        },
        pauseFn: {
            pause: async (ctx) => {
                if (ctx.key?.remoteJid) {
                    // someting logic 
                    return true
                }
                return false
            },
            is_pause: async (ctx) => {
                // someting logic  return true or false
                return false
            }
        }
    })


router.addFlows([general]).listen();
1.8.2-alpha.10

8 months ago

1.8.2-alpha.9

8 months ago

1.8.2-alpha.8

8 months ago

1.8.2-alpha.5

8 months ago

1.8.2-alpha.4

8 months ago

1.8.2-alpha.6

8 months ago

1.8.2-alpha.3

8 months ago

1.8.2-alpha.1

8 months ago

1.8.2-alpha.2

8 months ago

1.8.1-alpha.12

8 months ago

1.8.1-alpha.11

8 months ago

1.8.1-alpha.10

8 months ago

1.8.1-alpha.8

9 months ago

1.8.1-alpha.6

9 months ago

1.8.1-alpha.5

9 months ago

1.8.1-alpha.4

9 months ago

1.8.1-alpha.3

9 months ago

1.8.1-alpha.2

9 months ago

1.8.1-alpha.1

9 months ago

1.8.0-alpha.5

9 months ago

1.8.0-alpha.4

9 months ago

1.8.0-alpha.3

9 months ago

1.8.0-alpha.2

9 months ago

1.8.0-alpha.1

9 months ago

1.7.1-alpha.2

9 months ago

1.7.1-alpha.1

9 months ago

1.7.0-alpha.5

9 months ago

1.7.0-alpha.4

9 months ago

1.7.0-alpha.3

9 months ago

1.7.0-alpha.2

9 months ago

1.7.0-alpha.1

9 months ago

1.6.0-alpha.4

9 months ago

1.6.0-alpha.3

9 months ago

1.6.0-alpha.2

9 months ago

1.6.0-alpha.1

9 months ago

1.5.5-alpha.2

9 months ago

1.5.5-alpha.1

9 months ago

1.5.5

9 months ago

1.5.4

9 months ago

1.5.3

9 months ago

1.5.2

9 months ago

1.5.1

9 months ago

1.5.0

9 months ago

1.4.1

9 months ago

1.4.0

9 months ago

1.3.8

9 months ago

1.3.7

9 months ago

1.3.6

9 months ago

1.3.5

9 months ago

1.3.4

9 months ago

1.3.3

9 months ago

1.3.2

9 months ago

1.3.1

9 months ago

1.3.0

9 months ago

1.2.3-alpha

9 months ago

1.2.2-alpha

9 months ago

1.2.1-alpha

9 months ago

1.2.0-alpha

9 months ago

1.1.2-alpha

9 months ago

1.1.1-alpha

9 months ago

1.1.0-alpha

9 months ago

1.1.0

9 months ago

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago