Skip to main content

Rasa Addons - Components for Rasa and Botfront

Project description

Rasa Addons

PyPI Travis

A set of 🚀🚀🚀 components to be used with Botfront and/or Rasa.

Botfront is an open source chatbot platform built with Rasa.

rasa_addons.core.policies.BotfrontDisambiguationPolicy

This policy implements fallback and suggestion-based disambiguation.

It works with actions rasa_addons.core.actions.ActionBotfrontDisambiguation, rasa_addons.core.actions.ActionBotfrontDisambiguationFollowup and rasa_addons.core.actions.ActionBotfrontFallback, and NLU pipeline component rasa_addons.nlu.components.intent_ranking_canonical_example_injector.IntentRankingCanonicalExampleInjector.

Example usage

policies:
  ...
  - name: rasa_addons.core.policies.BotfrontDisambiguationPolicy
    fallback_trigger: 0.30 # default value
    disambiguation_trigger: '$0 < 2 * $1' # default value
    disambiguation_template: 'utter_disambiguation' # default value
    n_suggestions: 2 # default value
    excluded_intents:
      - ^chitchat\..* # default value
      - ^basics\..*
  ...

Note: Automatic generation of suggestion button titles

Botfront introduces the notion of "canonical" training examples, which provide a canonical human-readable text for intent labels. For example, for an intent pay_bills with examples "Pay bills", "I want to pay my bills", "How does one pay the bills on this website?", the first example may be selected as canonical. Canonical status serves as a cue to the bot designer, since intent labels can become untractable over time. It may also come to serve more Botfront-internal roles in the future.

The Botfront Disambiguation Policy uses canonical status to provide localized text for the suggestion buttons shown to users during disambiguation. In order to enable this feature, the NLU pipeline for each language model needs to be extended in the following way:

pipeline:
  ...
  - name: rasa_addons.nlu.components.intent_ranking_canonical_example_injector.IntentRankingCanonicalExampleInjector
  ...

This NLU component enriches the intent_ranking key of user messages in the tracker with canonical text, so that the Disambiguation Policy may pick it up. If the NLU component is not used, buttons will have the intent name as their title.

Parameters

fallback_trigger

Float (default 0.30): if confidence of top-ranking intent is below this threshold, fallback is triggered. Fallback is an action that utters the template utter_fallback and returns to the previous conversation state.

disambiguation_trigger

String (default '$0 < 2 * $1'): if this expression holds, disambiguation is triggered. (If it has already been triggered on the previous turn, fallback is triggered instead.) Here this expression resolves to "the score of the top-ranking intent is below twice the score of the second-ranking intent". Disambiguation is an action that lets the user to choose from the top-ranking intents using a button prompt.

disambiguation_template

String (default 'utter_disambiguation'): a response name resolving to a template containing a text field with a message, e.g. "I could not quite understand. Did you mean...". Any button included under the buttons field of this template will also appear at the end of autogenerated suggestions, e.g. {"title": "None of the above", "type": "postback", "payload": "/deny_suggestions"}.

n_suggestions

Int (default 2): the maximum number of suggestions to display (excluding the 'Other' options).

excluded_intents

List (default ["^chitchat\..*", "^basics\..*"]): any intent (exactly) matching one of these regular expressions will not be shown as a suggestion.

rasa_addons.core.policies.BotfrontMappingPolicy

This policy implements regular expression-based direct mapping from intent to action.

Example usage

policies:
  ...
  - name: rasa_addons.core.policies.BotfrontMappingPolicy
    triggers:
      - trigger: '^map\..+'
        action: 'action_botfront_mapping'
        extra_actions:
          - 'action_myaction'
  ...

ActionBotfrontMapping

The default action ActionBotfrontMapping takes the intent that triggered the mapping policy, e.g. map.my_intent and tries to generate the template utter_map.my_intent.

rasa_addons.core.channels.webchat.WebchatInput

Example usage

credentials:
  ...
  rasa_addons.core.channels.webchat.WebchatInput:
    session_persistence: true
    base_url: {{rasa_url}}
    socket_path: '/socket.io/'
  ...

rasa_addons.core.channels.rest.BotfrontRestInput

Rest Input Channel with multilanguage and metadata support.

Example usage

credentials:
  ...
  rasa_addons.core.channels.rest.BotfrontRestInput:
    # POST {{rasa_url}}/webhooks/rest/webhook/
  ...

rasa_addons.core.nlg.BotfrontTemplatedNaturalLanguageGenerator

Idential to Rasa's TemplatedNaturalLanguageGenerator, except in handles templates with a language key.

rasa_addons.core.nlg.GraphQLNaturalLanguageGenerator

The new standard way to connect to the Botfront NLG endpoint. Note that support for the legacy REST endpoint is maintained for the moment. This feature is accessed by supplying a URL that doesn't contain the substring "graphql".

Example usage

endpoints:
  ...
  nlg:
    url: 'http://localhost:3000/graphql'
    type: 'rasa_addons.core.nlg.GraphQLNaturalLanguageGenerator'
  ...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rasa_addons-0.9.29.3.tar.gz (23.5 kB view details)

Uploaded Source

File details

Details for the file rasa_addons-0.9.29.3.tar.gz.

File metadata

  • Download URL: rasa_addons-0.9.29.3.tar.gz
  • Upload date:
  • Size: 23.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.7

File hashes

Hashes for rasa_addons-0.9.29.3.tar.gz
Algorithm Hash digest
SHA256 46a668e2fe7c6cbba7ca99f8c993640a0a4bf175039b6e5c2a3aaff5c273cdb3
MD5 91c2942b1a53f12c83c71027cbc470c6
BLAKE2b-256 e4a4fef89049bb7e9af0363ac6a1837148d377b951f606c9971d900e978920e2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page