Building Workflow
A Simple Chatbot Example
In Pro Config, a workflow is a cascade of multiple modules that can perform a series of tasks. In this chapter, we will build a simple chatbot that involves the cascade of two Modules.
In the chatbot above, we define the variable user_message
of type IM
(Instant Messaging). This allows the bot to take input in the form of messages sent to the bot. In the example, we have set a transition on event CHAT
to point to chat_page_state
. So, whenever a user sends a message in the chat, the state is reloaded and the message is taken as in IM
input.
This user_message
is then passed into the tasks.
Configuration of Each Module
The LLMModule and TTSModule have been merged into AnyWidgetModule and will be deprecated in future versions.
The widget_id
in the module_config
is to determine which widget to use. In the above example, we include an LLM Widget (GPT-3.5) to generate the reply and a TTS Widget (voice of Samantha) to read out the reply.
Specifically, after clicking the "workshop" button on the left menu bar, you will see this widget center. On the very top selection bar, select "TTS". Then pick your favorite voice model, use the "share" button to copy the widget URL link, and paste it into the config file.
Adding More Modules & Widget Center
MyShell currently supports over a thousand widgets with diverse functionalities, including prompt widgets, voice widgets, image generation widgets, and many more, in which all you could find on our widget center.
The AnyWidget Module for Pro Config is designed to be versatile. For instance, constructing a video generation bot that combines ASR, TTS, LipSync, and AutoCaption widgets is within the realm of possibilities.
As introduced beforehand, after you get into MyShell's Widget center, there a numerous widgets where you could play with and insert that into your Pro Config. I will suggest to follow these steps before you implement it in Pro Config.
Try it, Hands-on
Adjust the parameters
3. Copy the widget Pro Config template (it's an independent automata that includes that widget as a task)
Render and Transitions
After the execution of the tasks, two variables called reply
and reply_voice
are obtained and ready to be rendered in a message that would appear in the User Interface. We have also handled a special event called CHAT
in the transitions, which means when a user sends a message, the automata will jump into chat_page_state
and execute that state. In the next section, we will describe how to handle and use different types of transitions.
Last updated