1.8.2-alpha.10 • Published 9 months ago

@elimeleth/vaincentflow v1.8.2-alpha.10

Weekly downloads
-
License
ISC
Repository
-
Last release
9 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

9 months ago

1.8.2-alpha.9

9 months ago

1.8.2-alpha.8

9 months ago

1.8.2-alpha.5

9 months ago

1.8.2-alpha.4

9 months ago

1.8.2-alpha.6

9 months ago

1.8.2-alpha.3

9 months ago

1.8.2-alpha.1

9 months ago

1.8.2-alpha.2

9 months ago

1.8.1-alpha.12

9 months ago

1.8.1-alpha.11

9 months ago

1.8.1-alpha.10

9 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

10 months ago

1.8.0-alpha.5

10 months ago

1.8.0-alpha.4

10 months ago

1.8.0-alpha.3

10 months ago

1.8.0-alpha.2

10 months ago

1.8.0-alpha.1

10 months ago

1.7.1-alpha.2

10 months ago

1.7.1-alpha.1

10 months ago

1.7.0-alpha.5

10 months ago

1.7.0-alpha.4

10 months ago

1.7.0-alpha.3

10 months ago

1.7.0-alpha.2

10 months ago

1.7.0-alpha.1

10 months ago

1.6.0-alpha.4

10 months ago

1.6.0-alpha.3

10 months ago

1.6.0-alpha.2

10 months ago

1.6.0-alpha.1

10 months ago

1.5.5-alpha.2

10 months ago

1.5.5-alpha.1

10 months ago

1.5.5

10 months ago

1.5.4

10 months ago

1.5.3

10 months ago

1.5.2

10 months ago

1.5.1

10 months ago

1.5.0

10 months ago

1.4.1

10 months ago

1.4.0

10 months ago

1.3.8

10 months ago

1.3.7

10 months ago

1.3.6

10 months ago

1.3.5

10 months ago

1.3.4

10 months ago

1.3.3

10 months ago

1.3.2

10 months ago

1.3.1

10 months ago

1.3.0

10 months ago

1.2.3-alpha

10 months ago

1.2.2-alpha

10 months ago

1.2.1-alpha

10 months ago

1.2.0-alpha

10 months ago

1.1.2-alpha

10 months ago

1.1.1-alpha

10 months ago

1.1.0-alpha

10 months ago

1.1.0

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago