Skip to main content

Modular composable chatbot development

Project description

Puppet

Puppet is a high-level toolkit for building chatbots using conversational components. Try puppet if you want to make your chatbot modular using composable components.

Installation

# optional: create a virtual environment
python3 -m venv myvenv
source myvenv/bin/activate

# install puppet
pip3 install coco-puppet

Additional dependecies

You may want to install dependencies to connect to channels such as telegram and discord or share components on cocohub.

Available dependecies

  • discord - to connect your bot/component to discord
  • telegram - to connect your bot/component to telegram
  • msbf - to connect your bot/component to microsoft bot framework
  • vendor - publish component on cocohub
  • dsl - Hy DSL for nicer syntax when building components/nlu

Examples:

pip install coco-puppet[telegram]
# or for multiple dependecies
pip install coco-puppet[telegram,dsl]

Getting Started

Create your first bot

Puppet components are python coroutines (note the async def)

We take state as the first parameter - which is an object that allow us to interact with the environment the component/bot is running on

async def mybot(state):
    # state.user_input() waits for the next user input
    user_input = await state.user_input()

    # state.say sends a response
    await state.say(user_input)

Paste this code in a file called example.py

Try it in the terminal

python3 -m puppet example.mybot

Channels

Connecting to channels is easy and just requires using regular puppet components

Telegram

Make sure to install puppet with telegram support - pip install coco-puppet[telegram]

Create a new bot and get telegram token from Telegram botfather using this guide: https://core.telegram.org/bots#6-botfather

export TELEGRAM_TOKEN=<Your telegram bot token>
python3 -m puppet.channels.telegram example.mybot

Discord

Make sure to install puppet with discord support - pip install coco-puppet[discord]

Create a new bot account and get a token using this guide: https://discordpy.readthedocs.io/en/latest/discord.html

export DISCORD_KEY=<Your discord bot token>
python3 -m puppet.channels.discord example.mybot

Microsoft bot framework

Make sure to install puppet with microsoft bot framework support - pip install coco-puppet[msbf]

export MicrosoftAppId=<Your bot Microsft App Id>
export MicrosoftAppPassword=<Your bot Microsoft App Password>
python3 -m puppet.channels.msbf example.mybot

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

coco-puppet-0.3.2.tar.gz (25.1 kB view details)

Uploaded Source

Built Distribution

coco_puppet-0.3.2-py3-none-any.whl (28.2 kB view details)

Uploaded Python 3

File details

Details for the file coco-puppet-0.3.2.tar.gz.

File metadata

  • Download URL: coco-puppet-0.3.2.tar.gz
  • Upload date:
  • Size: 25.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for coco-puppet-0.3.2.tar.gz
Algorithm Hash digest
SHA256 5c6840c1fee18f446660ddaa49be182f04fe1efb5d9eac6d859ae96e38b42752
MD5 319017c935b5c556da806e4f31ddc95c
BLAKE2b-256 d3597274e0bea2ae85834e55af84fe66414ea85678f6feb413adc488b4379290

See more details on using hashes here.

File details

Details for the file coco_puppet-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: coco_puppet-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 28.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for coco_puppet-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d05dfd3d80b24ac36492209a03b3329f7e89d1b8d18b8a62648ddba98b59cc7c
MD5 823ca777bb0edaff5fa7a2fd9daeba9d
BLAKE2b-256 932d195df82a4a063c9f63e8b9201c6d0f932a4aab4e250d685703059b21186a

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