| # SQLchat | |
| This project is a **SQL Chatbot** built with **LangChain** and **Streamlit**, designed to generate SQL queries and execute queries | |
| based on database table schemas and structure. The chatbot can interact with users to understand their requirements | |
| and translate them into SQL queries, leveraging relational database information provided via URI and schema definitions. | |
| ## Features | |
| - **SQL Query Generator**: Automatically generates SQL queries based on user inputs and database structure. | |
| - **SQL Query Execution**: Automatically executes SQL queries generated by chatbot. | |
| - **Interactive Chat Interface**: Built with Streamlit for a user-friendly conversational experience. | |
| - **Database Schema Integration**: Parses table schemas from a database URI to provide accurate SQL generation capabilities. | |
| - **Customizable LLM Configuration**: Supports various large language models (LLMs) for generating responses. | |
| ## Installation | |
| 1. Clone the repository: | |
| ```bash | |
| git clone https://github.com/arthiondaena/SQLchat.git | |
| cd SQLchat | |
| ``` | |
| 2. Set up a virtual environment: | |
| ```bash | |
| python -m venv venv | |
| source venv/bin/activate # On Windows: venv\Scripts\activate | |
| ``` | |
| 3. Install dependencies: | |
| ```bash | |
| pip install -r requirements.txt | |
| ``` | |
| ## Usage | |
| Run the application using Streamlit: | |
| ```bash | |
| streamlit run app.py | |
| ``` | |
| This will launch the chatbot interface in your default web browser. The chatbot can then process user inputs and generate SQL queries based on the database schema. | |
| ## Setup | |
| 1. **Configure Database Connection**: | |
| - Set up the `URI` configuration in the streamlit app to connect to your relational database. | |
| - Ensure the database has the necessary permissions to allow schema queries. | |
| 2. **Table Schemas**: | |
| - The chatbot extracts table structures and schemas from the database for generating SQL queries. Make sure the database contains valid schema definitions. | |
| 3. **API Key Configuration**: | |
| - Provide your Groq API key for LLM integration within the script. | |
| 4. **System Prompt Customization**: | |
| - Adjust the instructions as per your specific SQL generation use case. | |
| - The chatbot can remember upto last 4 conversations. | |
| ## Features in Detail | |
| 1. **SQL Query Generation**: | |
| - The chatbot uses relational database schemas to intelligently generate SQL queries. | |
| - Supports basic and complex queries tailored to the provided database structure. | |
| 2. **Database Schema Utilization**: | |
| - Extracts table information (columns, types, relationships) from the connected database. | |
| - Leverages this knowledge to produce highly precise SQL queries. | |
| 3. **Customizable Model Prompts**: | |
| - Custom system prompts and instructions can be added to suit diverse database use cases. | |
| ## Example Workflow | |
| 1. Connect the chatbot to your database by specifying the database URI. | |
| 2. Provide the chatbot with your SQL query requirement in plain language (e.g., "Fetch the top 10 customers by revenue"). | |
| 3. The chatbot generates and returns an accurate SQL query based on the schema. |