Skip to main content

Yet another common wrapper for Alice/Salut skills and Facebook/Telegram/VK bots

Project description

tgalice

PyPI version

This is yet another common Python wrapper for Alice and Salut skills and bots in Telegram*, VK, and Facebook Messenger.

Currently, it provides:

  • An (almost) unified interface between your bot and Alice/Telegram/Facebook/VK: DialogConnector
  • A number of simple dialogue constructors: BaseDialogManager and its flavors, including:
    • a simple FAQ dialog manager
    • a simple form-filling dialog manager
    • a flexible finite state automaton dialog manager
    • an even more flexible turn-based dialog manager
  • A wrapper for storing dialogue state: BaseStorage and its flavors (specifially, MongoBasedStorage)
  • Yet another wrapper for serving your bot as a Flask application

This package may be installed with pip install tgalice.

A brief how-to

To create your own bot, you need either to write a config for an existing dialog manager, or to inherit your own dialog manager from BaseDialogManager.

The components of tgalice may be combined into a working app as follows:

import tgalice

class EchoDialogManager(tgalice.dialog_manager.BaseDialogManager):
    def respond(self, ctx: tgalice.dialog.Context):
        return tgalice.dialog.Response(text=ctx.message_text)

connector = tgalice.dialog_connector.DialogConnector(
    dialog_manager=EchoDialogManager(), 
    storage=tgalice.session_storage.BaseStorage()
)
server = tgalice.flask_server.FlaskServer(connector=connector)

if __name__ == '__main__':
    server.parse_args_and_run()

Now, if your app is hosted on address {BASE_URL}, then webhooks for Alice, Salut and Facebook will be available, respectively, at {BASE_URL}/alice/, {BASE_URL}/salut/, and {BASE_URL}/fb/ (and you can reconfigure it, if you want). The webhook for Telegram will be set automatically, if you set the TOKEN environment variable to the token given to you by the @BotFather.

If you want to test your app locally, you can run it with command line args:

  • --cli - to read and type messages in command line, completely offline
  • --poll - to run a Telegram bot locally, in long polling mode (in some countries, you need a VPN to do this)
  • --ngrok - to run the bot locally, using the ngrok tool** to create a tunnel from your machine into the internet. This is probably the simplest way to test Alice skills without deploying them anywhere .

The examples directory contains more detailed examples of how to create dialogs and serve the bot.

If you have questions, you can ask them in the Telegram chat @tgalice_support.

* The Telegram wrapper is based on the pyTelegramBotAPI package.

** The ngrok connector was taken from the flask-ngrok library. It will be refactored to a dependency, as soon as the library is updated on PyPI.

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

tgalice-0.2.28.tar.gz (57.0 kB view details)

Uploaded Source

File details

Details for the file tgalice-0.2.28.tar.gz.

File metadata

  • Download URL: tgalice-0.2.28.tar.gz
  • Upload date:
  • Size: 57.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.7.9

File hashes

Hashes for tgalice-0.2.28.tar.gz
Algorithm Hash digest
SHA256 912f0cf3c3064a148da46bd15511ff4650cf0d9c4c11d50d1b9a50fcd0ab8a0a
MD5 082b437a06e667d66ccc8a07937f0fe8
BLAKE2b-256 cd863eb7c41d1a17b5b5b2209bbedde317b8dca8843ad6afd89aa56cc1d3adb2

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