snowChat is an intuitive and user-friendly application that allows users to interact with their Snowflake data using natural language queries. Type in your questions or requests, and SnowChat will generate the appropriate SQL query and return the data you need. No more complex SQL queries or digging through tables - SnowChat makes it easy to access your data! By bringing data one step closer, SnowChat empowers users to make data-driven decisions faster and more efficiently, reducing the barriers between users and the insights they seek.
- Interactive and user-friendly interface
- Integration with Snowflake Data Warehouse
- Utilizes OpenAI's GPT-4 and text-embedding-ada-002
- Uses In-memory Vector Database FAISS for storing and searching through vectors
-
Clone this repository: git clone https://github.com/yourusername/snowchat.git
-
Install the required packages: cd snowchat pip install -r requirements.txt
-
Set up your
OPENAI_API_KEY
,ACCOUNT
,USER_NAME
,PASSWORD
,ROLE
,DATABASE
,SCHEMA
andWAREHOUSE
in project directorysecrets.toml
. If you don't have access to GPT-4 change the script in chain.py replace gpt-4 in model_name to gpt-3.5-turbo -
Make you're schema.md that matches you're database.
-
Run
python ingest.py
to get convert to embeddings and store as an index file. -
Run the Streamlit app to start chatting: streamlit run main.py
- Launch the app by visiting the URL provided by Streamlit.
- Type your query in natural language or SQL format in the input box.
- Press "Submit" to generate the response.
- The chatbot will generate a response based on your query and display the result, including any relevant data or SQL code.
- Automation: Create a generalized script that retrieves schema information from Snowflake automatically.
- Platform Integration: Connect snowChat with popular communication platforms like Slack or Discord for seamless interaction.
- Voice Integration: Implement voice recognition and text-to-speech functionality to make the chatbot more interactive and user-friendly.
- Advanced Analytics: Integrate with popular data visualization libraries like Plotly or Matplotlib to generate interactive visualizations based on the user's queries (AutoGPT).
Feel free to contribute to this project by submitting a pull request or opening an issue. Your feedback and suggestions are greatly appreciated!
This project is licensed under the MIT License - see the LICENSE file for details.