MaxBot Documentation

website·Indexed 32 days ago

https://maxbot.ai

An open source library and framework for creating conversational apps with unified and extendable messaging across any platform. The documentation covers bot creation using YAML, dialog tree management, NLU integration with Rasa, and various extensions for HTTP requests, Jinja templates, and datetime processing.

Tokens
44.1K
Snippets
273
Records
346
Agent score
63%

What's inside MaxBot

  1. Overview of Maxbot conversational framework

    Maxbot is an open-source library and framework designed for creating conversational apps. It provides a unified and extendable messaging layer that works across any platform. Key capabilities include:

    • Dialog Management: A DSL for declarative dialog descriptions based on ready-made logic models, as well as an engine for creating custom dialog models.
    • NLU & NLG: Integration with external NLU services, support for active learning, and a dedicated NLG command language with templates.
    • Bot Architecture: Support for complex bots with multiple interacting skills, session tracking, dialog state management, and error recovery.
    • Integration & Deployment: Ability to integrate with external data sources, services, and information systems. It can be deployed in stand-alone, cloud-enabled, or hosted environments with scaling support.
    • Developer Tooling: Built-in tools for developing, debugging, testing, and logging, with business logic implemented in general-purpose programming languages.
  2. Overview of Maxbot supported channels

    Maxbot provides built-in support for Telegram, Viber, and VK messengers. Each messenger has unique controls and features. Users can expand dialogue capabilities (e.g., sending locations in Viber or money in VK) via the Coding Guide or add custom messengers through the channels coding guide.
  3. Overview of maxbot Channels

    Channels are abstractions for messaging platforms (e.g., Telegram, Facebook Messenger) that connect a bot to its users. Each platform has a corresponding channel class deriving from the abstract Channel class. A bot can utilize multiple channels simultaneously. Channel instances are implicitly created when a channel configuration is added to the bot's resources.
  4. Overview of Maxbot Conversational AI Framework

    Maxbot is an open-source library and framework designed for building conversational applications. It provides a unified and extendable messaging layer that works across multiple platforms and supports integration with external NLU (Natural Language Understanding) services and active learning. Key capabilities include a DSL for declarative dialog descriptions, a custom dialog model engine, an NLG (Natural Language Generation) command language with templates, and the ability to implement business logic using general-purpose programming languages. The framework handles session management, dialog state tracking, error recovery, and the coordination of complex bots with multiple interacting skills. It is deployable in stand-alone, cloud, or hosted environments and supports integration with external data sources and business analytics.
  5. Test bot behavior using the Stories engine

    The Stories engine allows developers to verify that a bot reacts correctly to known user events. Events are organized into 'stories', which are defined as lists within a file. For organizational purposes, multiple story files can be grouped together in a single directory.
  6. Understand and implement basic digressions in MaxBot

    Digressions allow users to break away from a dialog branch to temporarily change the topic before returning to the original flow. For example, if a user is in a restaurant booking flow and asks about opening hours, the bot can process the 'opening hours' node and then automatically return to the booking flow to prompt for the remaining information (like reservation time).
  7. Organize dialog nodes using subtrees

    Subtrees allow you to group dialog nodes together, which is useful for:

    • Splitting large dialog trees into multiple files for easier maintenance.
    • Grouping nodes by subject (e.g., 'User account' vs 'Payment').
    • Applying a single guard condition to a group of nodes (e.g., restricting a set of nodes to platinum members).
    • Hiding nodes from the runtime by using a false guard condition during development.
  8. Understand how dialog digressions work

    A digression occurs when a user switches topics mid-conversation. If the bot is processing a dialog branch (followup nodes, slot filling, or sibling nodes) and the user input does not match any current options, the bot searches the root nodes for a match.

    • Successful Digression: If a matching root node is found, the bot processes that node and its branches, then returns to the interrupted branch.
    • Unsuccessful Digression: If no matching root node is found, the input is treated as misunderstood, and the bot immediately returns to the original branch to handle the error.

    Note: Only root nodes can be the target of a digression; followup nodes cannot.

  9. Understand Maxml response format

    Maxbot uses maxml, a headless XML format, to define bot reactions to incoming messages. Responses are strings that can contain a mix of raw text and explicit XML commands. Raw text appearing between XML tags is automatically packaged into individual <text> commands during deserialization.
    dialog:
      - condition: true
        response: |
          Hello<image url="https://example.com/img.jpg" />world

    // Deserialized as: // <text>Hello</text> // <image url="https://example.com/img.jpg" /> // <text>world</text>

  10. Understand the DialogSchema for conversation context

    The DialogSchema provides general, relatively static information about the current conversation across platform-independent channels.
  11. Understand MaxBot user locking and concurrency

    MaxBot implements a user locking mechanism to ensure that all incoming messages from a specific user are processed sequentially, including the sending of replies. However, messages from different users can be processed simultaneously, either concurrently within a single worker (via asynchronous I/O) or across different worker processes.
  12. Get MaxBot installation and environment details

    Use the maxbot info command to print diagnostic information about your current MaxBot installation, including the MaxBot version, Python version, operating system platform, and the installation location.
    $ maxbot info