3.2 KiB
Elise2Bot - A Rule-Based Chat Bot
Elise2Bot is a simple rule-based chatbot inspired by the elise psychotherapist model. It engages in text-based conversations with users, offering responses based on predefined rules and patterns. This README provides an overview of the bot, its features, and instructions for running and customizing it.
Features
- Keyword-based matching: Elise2Bot identifies keywords in user input and selects appropriate responses based on predefined rules.
- Pattern transformation: The bot applies rule-based transformations to user input to create contextually relevant responses.
- Memory queue: Elise2Bot maintains a memory queue to keep track of previous user inputs, enhancing the conversation's continuity.
- Fuzzy keyword matching: The bot employs the FuzzyWuzzy library to find the closest keyword in user input, allowing for more robust keyword recognition.
Getting Started
Prerequisites
Before running Elise2Bot, ensure you have the following installed:
- Python 3.x
- Required Python libraries (install them using
pip):fuzzywuzzypython-LevenshteinPyYAMLrich
Installation
-
Clone this repository to your local machine:
git clone https://github.com/yourusername/elise2-bot.git -
Navigate to the project directory:
cd elise-bot -
Run the chatbot:
python main.py
Usage
-
Start a conversation with Elise2Bot by typing a message after the prompt.
You: Hello, Elise! -
Elise2Bot will respond based on predefined rules and patterns.
ELISE: Hi there! How can I help you? -
Continue the conversation, and the bot will engage with you based on the context.
-
To exit the conversation, simply type 'quit.'
Customization
You can customize Elise2Bot by modifying the YAML configuration file (elise_rules.yaml) to add new rules, keywords, and responses. Refer to the Configuration section below for details on the YAML format.
Configuration
The bots behavior is defined in the elise_rules.yaml configuration file. This file contains keywords and rules for generating responses. You can customize the bots responses by editing this file.
Example YAML configuration:
keywords:
hello: 3
hi: 3
my: 2
# ... other keywords ...
rules:
hello:
- pattern: "hello*"
response: "Hi there! How can I help you?"
- pattern: "hello again*"
response: "Hello once more! What else is on your mind?"
# ... other rules ...
Keywords
- The
keywordssection defines keywords used for matching user input. Each keyword is associated with a weight that determines its relevance in matching.
Rules
- The
rulessection defines patterns and responses for the bot. Patterns are used to match user input, and responses are provided when a pattern is matched.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Acknowledgments
- Special thanks to the authors of the original elise psychotherapist model for inspiration.
Contributing
Contributions are welcome! If you'd like to enhance or improve Elise2Bot, please open an issue or submit a pull request.
