| # 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. |