- Introduction
- Project Overview
- Technologies Used
- System Architecture
- Features
- Installation
- Usage
- Endpoints
- Model Training with Gemini-pro
- Performance Evaluation
- Future Enhancements
Welcome to the "Chat with Database" project. This repository contains the source code for a chat interface that allows users to interact with SQL and NoSQL databases through a user-friendly interface.
The aim of this project is to develop a chat application where users can:
- Authenticate using Auth0.
- Chat with a bot to interact with databases.
- Manage their user profiles.
- Connect to either MySQL or MongoDB databases.
- Execute queries and get responses.
- Train a custom machine learning model using Gemini-pro based on user-selected tables.
- Frontend: React, Material-UI, Axios, React Router
- Backend: Flask, REST APIs
- Authentication: Auth0
- Database: MySQL, MongoDB
- Machine Learning: Gemini-pro
The system architecture comprises:
- Frontend: Built using React and Material-UI.
- Backend: A Flask server for handling API requests and responses.
- Databases: MySQL for SQL support and MongoDB for NoSQL support.
- Authentication: Managed by Auth0.
- Machine Learning: Gemini-pro for training models and generating responses.
- Landing Page: Displays a welcoming message and an option to sign in.
- Authentication: Uses Auth0 for user login.
- Chat Interface: Allows users to chat and interact with the application.
- User Profile Management: Users can view and edit their profile information.
- Database Connectivity: Supports connections to MySQL and MongoDB databases.
- Model Training: Trains a custom machine learning model using Gemini-pro.
-
Clone the repository:
git clone https://github.com/Priyang1310/Woodpecker.git
-
Install dependencies:
# For the frontend cd client npm install # For the backend cd ../server pip install -r requirements.txt
-
Set up environment variables:
- Create a
.envfile in thebackenddirectory and add your environment variables for Auth0, database connections, etc.
- Create a
-
Run the application:
# Start the frontend cd client npm run dev # Start the backend cd ../server python app.py
- Landing Page: Navigate to the landing page and click on "Sign In".
- Authentication: Log in using Auth0.
- Chat Interface: Interact with the chat interface to send queries to the database.
- Profile Management: Click on the profile button to view and edit profile information.
- Database Connection: Choose between MySQL and MongoDB for database operations.
- Query Execution: Execute queries and receive responses.
- Model Training: Train the machine learning model with Gemini-pro.
- /connect: Establish the connection with mongodb database and the response will return the collections of that database.
- /mysql/connect: Establish the connection with mySQL database and the response will return the tables of that database.
- /collections: For training the agent on a specific collection for the mongodb database.
- /mysql/tables: For training the agent on a specific collection for the MySQL database.
- /ask: Executes NoSQL queries against the MongoDB database.
- /aski: Executes SQL queries against the MySQL database.
- Data Preparation: Extracts data from user-selected tables.
- Model Training: Trains the Gemini-pro model with the prepared data.
- Model Integration: Integrates the trained model into the Flask server for processing queries.
- Response Time: Measures the time taken to process and respond to user queries.
- Accuracy: Assesses the precision of responses generated by the trained model.
- Scalability: Evaluates the system's ability to handle multiple users and large datasets simultaneously.
- Additional Database Support: Integrate support for other databases like PostgreSQL or Cassandra.
- Advanced Analytics: Add features for advanced data analytics and reporting.
- Improved UI/UX: Enhance the user interface with more customization options and interactive elements.
- Real-time Collaboration: Enable real-time collaboration features for multiple users.





