Take home assessment for Perceptron Labs, intended for submission including a
link to the deployed project and a following all requirements
here.
Warning
This project is intended to be a submission for Perceptron Labs, and is not intended to be used for commercial purposes.
This project is a take home assement for Perceptron Labs, and is intended to be a submission for the following the requirements for building a LLM Chatbot with the personality of Alfred. The project is deployed on Fly.io, and can be accessed at the following link: Alfred AI.
Alfred AI is an intelligent chatbot that embodies the persona of Alfred Pennyworth, the loyal butler from Batman. Using LangChain and OpenAI's language model, Alfred AI provides clothing recommendations based on the user's specified location and weather conditions. The chatbot maintains Alfred's characteristic wit, formality, and attention to detail in its responses.
- Natural language interaction mimicking Alfred's persona
- Real-time weather data integration
- Personalized clothing recommendations based on location and weather
- Deployment on Fly.io for easy access
To run this project locally, you'll need:
Python 3.12+OpenAIAPI keyLangChainAPI key
To get started with the project simply start first with cloning the repository:
git clone https://github.com/Hi-kue/perceptron-tkhm-fullstack.git
cd alfred-aiSet your virtual environment (or just use poetry):
# using venv
python -m venv venv
use venv\Scripts\activate
# using poetry
poetry install
poetry shell
poetry update || lockIf you did not use poetry, then install the packages:
pip install -r requirements.txtNext, create a .env file in the project root and add your API keys:
OPENAI_API_KEY=...
LANGCHAIN_API_KEY=...
LANGCHAIN_PROJECT=...NOTE: Follow the
.env.examplefile for the required .env file, I will be providing it in the submission for this.
And you should be good to go! All you need to do now is run the chatbot:
py main.py- Python
- LangChain
- OpenAI GPT
- DuckDuckGo Search API (For the
Weather Data) - Fly.io (For Deployment)
Distributed under the MIT License. See LICENSE for more information.