Skip to main content
Warning: You are using the test version of PyPI. This is a pre-production deployment of Warehouse. Changes made here affect the production instance of TestPyPI (testpypi.python.org).
Help us improve Python packaging - Donate today!

A lib to create chatbots

Project Description

pychatbot is a library you can use to create your own chat bots in seconds.

This is a very young library, any request/suggestion/help will be very appreciated. For them, create an issue or contact me!

Install

You can install it downloading this repository in your project or using pip:

$ pip install git+https://github.com/greenkey/pychatbot.git

A package in the PyPI repository will be available soon.

Usage

You have to define your bot class, extending the default Bot class:

>>> from pychatbot.bot import Bot
>>> class MyBot(Bot):
...     pass
...
>>> b = MyBot()
>>> b
<__main__.MyBot object at 0x7f16e79f3940>

Of course you’ll want to define some bahaviour, the following chapters teach you how to do it.

Defining a default response

>>> from pychatbot.bot import Bot
>>> class MyBot(Bot):
...     def default_response(self, in_message):
...         # setting echo as default response
...         return in_message
...
>>> b = MyBot()
>>> b.process("Hello!")
'Hello!'
>>> b.process("Goodbye!")
'Goodbye!'

Defining commands

Just define a method of your Bot class using the command decorator.

>>> from pychatbot.bot import Bot, command
>>> class MyBot(Bot):
...     @command
...     def hello(self):
...             return "hello!"
...
>>> bot = MyBot()
>>> bot.process("/hello") # the default command prepend is "/"
'hello!'

Defining interfaces

A bot running in local would be pretty useless, isn’t it?

The simplest interface we can give to our bot is the http one.

>>> from pychatbot.bot import Bot
>>> from pychatbot.endpoints import HttpEndpoint
>>> class MyBot(Bot):
...     def default_response(self, in_message):
...             return in_message
...
>>> bot = MyBot()
>>> ep = HttpEndpoint()
>>> bot.add_endpoint(ep)
>>> bot.run()

Then you can send message to the bot using simple GET requests: http://localhost:8000/process?in_message=hello

Note: default port is 8000, if it is already used, HttpEndpoint will use the first free port after 8000 (8001, 8002…).

The output using the example will be a json with the message: {"out_message": "hello"}

Telegram

Yes, you can easily connect your bot with the Telegram API, thanks to the python-telegram-bot library.

You don’t have to worry about nothing, except getting a token from the BotFather and passing it to your bot.

>>> from pychatbot.bot import Bot
>>> from pychatbot.endpoints import TelegramEndpoint
>>> class MyBot(Bot):
...     def default_response(self, in_message):
...             return in_message
...
>>> bot = MyBot()
>>> ep = TelegramEndpoint(
...     token='123:ABC'
... )
>>> bot.add_endpoint(ep)
>>> bot.run()

Twitter

It’s not a proper bot framework, but with pychatbot you can have a bot in Twitter too, thanks to the tweepy library.

Just follow the instrunction on how to create a Twitter App , get all the tokens and use them to instantiate the TwitterEndpoint.

>>> from pychatbot.bot import Bot
>>> from pychatbot.endpoints import TwitterEndpoint
>>> class MyBot(Bot):
...     def default_response(self, in_message):
...             return in_message
...
>>> bot = MyBot()
>>> ep = TwitterEndpoint(
...     consumer_key='your consumer_key',
...     consumer_secret='your consumer_secret',
...     access_token='your access_token',
...     access_token_secret='your access_token_secret'
... )
>>> bot.add_endpoint(ep)
>>> bot.run()

Logging

This library uses the logging module. To set up logging to standard output, put:

import logging
logging.basicConfig(level=logging.DEBUG)

at the beginning of your script.

Get involved

If you want to contribute, download the repository, then:

$ virtualenv ~/.venv/pychatbot # not required but highly suggested
$ source ~/.venv/pychatbot/bin/activate
$ pip install -r requirements-dev.txt # install all the requirements
$ pytest
Release History

Release History

This version
History Node

0.9.4

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
pychatbot-0.9.4.tar.gz (14.3 kB) Copy SHA256 Checksum SHA256 Source Apr 21, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting