Plan4Dial
=========
.. _why:
.. |br| raw:: html
Why Use Plan4Dial?
------------------
Dialogue planning uses automated planning to generate dialogue graphs, which eliminates the need to painstakingly craft these graphs by hand and creates robust and maintainable agents.
**Plan4Dial is the first open and readily available modern framework for dialogue planning development.**
With just one user-specified YAML file as input, Plan4Dial offers:
* Direct translation to PDDL, eliminating the need to tediously handwrite PDDL
* Full specification + training of an NLU model through `Rasa's NLU-only interface `_, along with `custom pipeline components `_
* The ability to specify how individual entities are extracted `(example here) `_
* Support for `custom action templates `_
* The ability to run and deploy agents through our extension of `IBM's Hovor `_ and our embeddable web UI, `WIDGET `_
* Support for `custom outcome determiners `_ (created in Hovor)
The declarative nature of Plan4Dial allows you to get a chatbot running quickly and throw in new actions and variables at any point in development.
Framework Flow
---------------
.. image:: _static/flow.png
Here we detail the design flow of our approach.
First, the developer writes a YAML file `(example YAML file here) `_ which contains a declarative description of their agent.
.. video:: _static/vid_1.mp4
:nocontrols:
:autoplay:
:muted:
:loop:
:width: 1280
|br|
The file is then passed to Plan4Dial, which `converts the file to raw PDDL and attempts to generate a plan `_.
It also generates the rest of the files that is needed for the agent to execute, such as the trained NLU model.
.. video:: _static/vid_2.mp4
:nocontrols:
:autoplay:
:muted:
:loop:
:width: 1280
|br|
The valid plan, if found, is then passed to Hovor to `execute the conversation `_.
By running the app, we can communicate with the agent through API endpoints.
.. video:: _static/vid_3.mp4
:nocontrols:
:autoplay:
:muted:
:loop:
:width: 1280
|br|
Finally, you can make a call to `WIDGET `_ with this HTML block to embed your agent in your own site!
.. video:: _static/vid_4.mp4
:nocontrols:
:autoplay:
:muted:
:loop:
:width: 1280
|br|
See the :ref:`tutorial` for an in-depth explanation on how to specify the YAML file.
🤖 Time to get chatting! 🤖
.. autosummary::
:toctree: generated
:recursive:
plan4dial
.. toctree::
tutorial