A sophisticated command-line chatbot designed for professional interview scenarios.
✅ Professional Interface: Clean, polished CLI with rich formatting ✅ Interview Assistance: Built-in knowledge base for interview questions ✅ Natural Language Processing: Sentiment analysis and keyword extraction ✅ Conversation Management: History tracking and context awareness ✅ Extensible Architecture: Modular design for easy customization ✅ Configuration Support: Environment variables and .env files ✅ Error Handling: Robust exception management ✅ Security: Input validation and sanitization
- Python 3.8+
- pip (Python package manager)
# Clone the repository
git clone https://github.com/sutharson20069/cli-chatbot.git
cd cli-chatbot
# Create a virtual environment (recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Install the package
pip install -e .pip install cli-chatbot# Start the chatbot
chatbot- General Chat: Just type your message and press Enter
- help: Show help information
- about: Show information about the chatbot
- clear: Clear the conversation history
- config: Show current configuration
- version: Show version information
- exit/quit/bye: Exit the chatbot
🤖 Professional CLI Chatbot
Interview Assistant v1.0.0
A sophisticated command-line chatbot designed for professional interview scenarios.
*Type 'exit', 'quit', or 'bye' to end the session*
*Type 'help' for available commands*
You: hello
Chatbot: Hi there! What would you like to discuss?
You: I have a job interview tomorrow
Chatbot: Can you explain your experience with Python?
You: tell me about behavioral questions
Chatbot: Tell me about a time you worked in a team.
You: exit
👋 Thank you for using Professional CLI Chatbot. Goodbye!
Create a .env file by copying .env.example:
cp .env.example .envThen edit the .env file to customize your settings.
| Variable | Default | Description |
|---|---|---|
CHATBOT_THEME |
default |
UI theme |
CHATBOT_VERBOSE |
false |
Verbose logging |
CHATBOT_MAX_HISTORY |
10 |
Maximum conversation history |
CHATBOT_LANGUAGE |
english |
Language setting |
CHATBOT_DEBUG |
false |
Debug mode |
CHATBOT_LOG_LEVEL |
INFO |
Logging level |
CHATBOT_LOG_FILE |
chatbot.log |
Log file path |
cli-chatbot/
├── chatbot/ # Main package
│ ├── __init__.py # Package initialization
│ ├── cli.py # Command-line interface
│ ├── core.py # Core chatbot logic
│ ├── config.py # Configuration management
│ └── utils.py # Utility functions
├── setup.py # Package setup
├── requirements.txt # Dependencies
├── .env.example # Example configuration
├── LICENSE # MIT License
└── README.md # Documentation
# Install development dependencies
pip install -r requirements.txt
pip install pytest black flake8 mypy isort
# Run tests
pytest
# Run linting
black .
flake8 .
mypy .
isort .# Build the package
python setup.py sdist bdist_wheel
# Upload to PyPI (requires twine)
pip install twine
twine upload dist/*- CLI Interface (
cli.py): Handles user interaction and display - Core Logic (
core.py): Contains chatbot intelligence and conversation management - Configuration (
config.py): Manages settings and environment variables - Utilities (
utils.py): Helper functions for common tasks
- MVC-like Architecture: Separation of interface, logic, and data
- Singleton Pattern: Configuration management
- Factory Pattern: Response generation
- Observer Pattern: Event handling (future extension)
Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature/your-feature - Open a pull request
- Follow PEP 8 guidelines
- Use type hints
- Write docstrings for all public functions
- Include tests for new features
- Keep functions small and focused
This project is licensed under the MIT License - see the LICENSE file for details.
For issues, questions, or suggestions, please open an issue on GitHub.
- Basic CLI interface
- Core chatbot logic
- Configuration management
- Interview question knowledge base
- Advanced NLP integration
- Plugin system for extensibility
- Multi-language support
- Conversation persistence
- API integration for external services
Sutharson - GitHub - sutharsonmohan@gmail.com
- Thanks to all contributors and users
- Inspired by professional interview preparation tools
- Built with Python and modern CLI libraries