cleverbotfree

Free Alternative For The Cleverbot API


Keywords
cleverbot, bot, api, free, chatbot, python
License
GPL-3.0
Install
pip install cleverbotfree==2.3.3

Documentation

build Python 3.8 GPLv3 license PyPI version Downloads CodeQL Quality Gate Status Security Rating

cleverbotfree

Cleverbot.com used to have a free API for their chatbot application. They have
removed their free API in place of a tiered subscription API service.
cleverbotfree is a free alternative to that API that uses a headless Firefox
browser to communicate with their chatbot application. You can use this module
to create applications/bots that send and receive messages to the Cleverbot
chatbot application.

Installation

Requirments

  • node >= 14.16.1
  • Python >= 3.8.0
  • python3-pip >= 21.1.1

Once requirments are met, you can install this library through pip.

pip install cleverbotfree

Drivers

This library uses the Playwright library to interface the Cleverbot website
with a headless Firefox browser.
To download the Playwright Firefox browser binary simply run this command after
installing cleverbotfree:

playwright install firefox

Usage

Examples

Example of a simple CLI script that creates a persistent chat session until closed.

import asyncio
import cleverbotfree

def chat():
    """Example code using cleverbotfree sync api."""
    with cleverbotfree.sync_playwright() as p_w:
        c_b = cleverbotfree.Cleverbot(p_w)
        while True:
            user_input = input("User: ")
            if user_input == 'quit':
                break
            bot = c_b.single_exchange(user_input)
            print('Cleverbot:', bot)
        c_b.close()

chat()


async def async_chat():
    """Example code using cleverbotfree async api."""
    async with cleverbotfree.async_playwright() as p_w:
        c_b = await cleverbotfree.CleverbotAsync(p_w)
        while True:
            user_input = input("User: ")
            if user_input == 'quit':
                break
            bot = await c_b.single_exchange(user_input)
            print('Cleverbot:', bot)
        await c_b.close()

asyncio.run(async_chat())

Example of a simple CLI script using the class decorator.

import asyncio
from cleverbotfree import CleverbotAsync
from cleverbotfree import Cleverbot

@Cleverbot.connect
def chat(bot, user_prompt, bot_prompt):
    """Example code using cleverbotfree sync api with decorator."""
    while True:
        user_input = input(user_prompt)
        if user_input == "quit":
            break
        reply = bot.single_exchange(user_input)
        print(bot_prompt, reply)
    bot.close()

chat("User: ", "Cleverbot:")


@CleverbotAsync.connect
async def async_chat(bot, user_prompt, bot_prompt):
    """Example code using cleverbotfree async api with decorator."""
    while True:
        user_input = input(user_prompt)
        if user_input == "quit":
            break
        reply = await bot.single_exchange(user_input)
        print(bot_prompt, reply)
    await bot.close()

asyncio.run(async_chat("User: ", "Cleverbot:"))