Introducing snowChat: The Conversational Data Tool
Overview
SnowChat is an innovative application designed to simplify the way users interact with their Snowflake data by employing natural language queries. With its intuitive interface, SnowChat eliminates the complexity of writing SQL queries, enabling users to just type their questions or requests. The application automatically constructs the SQL queries needed and retrieves the desired data effortlessly, breaking down barriers to data-driven decision-making.
Supported Large Language Models (LLMs)
SnowChat supports a variety of advanced LLMs which enhance its processing capabilities. These include:
- GPT-4o
- Gemini Flash 1.5 8B
- Claude 3 Haiku
- Llama 3.2 3B
- Llama 3.1 405B
Key Features
-
Conversational AI: SnowChat leverages powerful models like ChatGPT to transform natural language queries into accurate SQL commands, making data querying more accessible to non-technical users.
-
Conversational Memory: The tool remembers the context of previous interactions, allowing for more dynamic and fluid conversations.
-
Snowflake Integration: It facilitates seamless, real-time access to data insights directly from the user's Snowflake database.
-
Self-healing SQL: The application proactively addresses SQL errors by suggesting solutions, thereby smoothing the data access process.
-
Interactive User Interface: SnowChat offers an engaging interface where data queries become a conversation, with an option to reset the chat for a fresh start.
-
Agent-based Architecture: An agent effectively manages interactions and the use of various tools within the application.
Installation Guide
To start using SnowChat, follow these steps:
-
Clone the repository:
git clone https://github.com/yourusername/snowchat.git
-
Install the necessary packages:
cd snowchat pip install -r requirements.txt
-
Configure your settings by adding your credentials to the
secrets.toml
file in the project directory. This includes setting up keys and identifiers for OpenAI, Snowflake, Supabase, and Cloudflare. -
Prepare your schemas to match your database and store them in the docs folder.
-
Set up your Supabase environment by executing the SQL from
supabase/scripts.sql
to create necessary extensions, tables, and functions. -
Run the ingestion script to convert data into embeddings and store them as an index:
python ingest.py
-
Launch the Streamlit app to start engaging with SnowChat:
streamlit run main.py
Community and Contribution
SnowChat welcomes contributions from the community. Whether it's fixing bugs, improving existing features, or suggesting new ones, your involvement is valued. You can participate by submitting pull requests or opening issues on the GitHub repository.
License
The project is available under the MIT License, encouraging open-source distribution and participation. More details can be found in the LICENSE file.
With SnowChat, users are no longer confined to the complexities of SQL as it harnesses the power of conversational AI to bring data closer to decision-making, enhancing efficiency and insight.