Powered by the magical Django Framework with OpenAI's API.
The GrabFood Chatbot aims to revolutionize the food ordering experience by offering personalized recommendations to users and actionable insights to merchants. Leveraging AI, this chatbot enhances user engagement, reduces bounce rates, and drives economic growth for merchants.
- Personalized Recommendations: Tailored food suggestions based on user inputs such as cravings, distances, and price.
- Advanced Filtering: Refine searches by cuisine, user's review, and more.
- Merchant Visibility: Small merchants featured in recommendations to increase their exposure.
Live backend are accessible here.
Powered by Google Cloud Run.
API Docs: https://grabin-food-be-kv422ek6cq-et.a.run.app/api/schema/swagger-ui/
- Create a
.env
on the project root with the following keys:DEBUG=True OPENAI_API_KEY=
- Migrate the database
python3 manage.py makemigrations python3 manage.py migrate
- Populate restaurants and menu table:
python3 manage.py populate_data
- Run the server
python3 manage.py runserver
The app is containerized. For production purposes, we can set up a connection to a more persistent database of choice in settings. Mind the credentials.
- The following environment variables need to be set (lcoally in a
.env
file):DEBUG=False OPENAI_API_KEY= PG_NAME= PG_USER= PG_PASSWORD= PG_HOST= PG_PORT=
- Build the image
docker build . -t grabin-food-be
- The build image can be run locally, pushed to docker hub, or run anywhere. To run locally, do:
docker run -d -p 8000:8000 --name grabin-food-be --env-file=.env grabin-food-be
- Django: We chose Django for its rapid development capabilities, scalability for high loads, and extensive community resources. It provides a powerful foundation for efficient development and maintenance.
- Cloud Run: For deployment, we chose Cloud Run because of its automatic scaling, serverless architecture, cost-effectiveness, quick containerized app deployment, and seamless GCP integration. It offers a flexible, efficient hosting solution that grows with our needs.
- OpenAI: For our current use case, we are utilizing OpenAI's API to process our chats as a proof of concept. For future developments, we are aiming to develop our own Machine Learning Models.
Watch our Demo Video to see the chatbot in action.
- Ads for Merchants: Integrate ad placements within recommendations to allow merchants to promote specific dishes or offers.
- User Trend Analysis and Recommendations: Develop a reporting feature to provide merchants with insights into popular keywords and trends based on user inputs, along with actionable AI-powered recommendations to help merchants align their offerings with current demand.
- Mood-Based Recommendations: Enhance the chatbot to provide suggestions based on user moods, making recommendations more contextually relevant.
- Jaccard Index-Based Recommendations: Use the Jaccard Index to analyze the similarity between a user's order history and other users' histories, providing personalized food recommendations.
- Integration with GrabFamily: Enhance the chatbot to prompt meal decisions for other family members.