StycoBot is an interactive chatbot that can engage in conversations about Ruzan Sasuri's professional experience. It's designed to be friendly and conversational, with a RAG system to update the knowledge base.
- Python 3.12 or higher
-
Clone the repository:
git clone https://github.com/yourusername/DBAgent.git cd DBAgent -
Install dependencies:
pip install pytest
- Make sure to create a new AWS Lambda instance.
- Run deploy/deploy.ps1 to create StycoBot.zip
- Uploade StycoBot.zip to AWS Lambda code.
- Set environment variables:
- ALLOWED_ORIGINS=https://ruzansasuri.com(or any implementation of a chat window you want.)
- ENVIRONMENT=prod
- METRICS_SQS_QUEUE_URL=
Metrics Queue URL for cloud watch metrics - OPENAI_API_KEY=
Set to an OPENAI key from your account
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This guide will help you deploy the StycoBot chatbot to AWS Lambda while keeping costs minimal.
- An AWS account
- AWS CLI installed and configured
- Python 3.12 or later
The setup above is optimized for minimal costs:
- 128 MB memory (minimum)
- x86_64 architecture (cheaper than arm64)
- No external dependencies
- In-memory data storage
- Short timeout
Monitor your usage in the AWS Lambda Console to ensure you stay within the free tier limits.
For production use, consider:
- Adding proper authentication
- Using AWS Secrets Manager for sensitive data
- Implementing rate limiting
- Using HTTPS only
This project is licensed under the MIT License - see the LICENSE file for details.
- Special thanks to the Python community for their amazing libraries and tools.
- Inspired by various chatbot implementations and natural language processing techniques.
- Possible due to the accessible OPENAI's chatgpt API.
- Claude, the AI coding assistant, helping to quickly develop and refine this chatbot.