snowBrain - AI-Driven Insights with Snowflake (New version- https://github.com/kaarthik108/snowbrain-AGUI)
OTHER License
https://github.com/kaarthik108/snowBrain/assets/53030784/582eee20-bcf6-4db7-9343-2941937374f9
SnowBrain is an open-source prototype that serves as your personal data analyst. It converses in SQL, remembers previous discussions, and even draws data visualizations for you.
This project is a unique blend of Snowflake, Langchain, OpenAI, Pinecone, NEXTjs, and FastAPI, among other technologies. It's all about reimagining the simplicity of SQL querying. Dive in and discover a new way of interacting with your data.
snowBrain is designed to make complex data querying simple. Here are some example queries you can try:
Follow these steps to get snowBrain up and running in your local environment.
Update Environment Variables
Make sure to update the environment variables as necessary. Refer to the example provided:
.env.example
Auto fetch All Schema DDL
You can do this by running the following command:
python3 embed/snowflake_ddl_fetcher.py
Make sure to install requirements using
pip3 install -r embed/requirements.txt
Convert DDL Documents to Vector & Upload to Pinecone
Use the following command to do this:
python3 embed/embed.py
Install Dependencies for the Code Plugin
Navigate to the code plugin directory and install the necessary dependencies using Poetry:
cd code-plugin && poetry install
Deploy FastAPI to Modal Labs
Run the following command to deploy your FastAPI (make sure to add a secrets file in modal labs):
modal deploy main.py
After deploying, make sure to store the endpoint in your environment variables:
MODAL_API_ENDPOINT=
MODAL_AUTH_TOKEN=random_secret
Install packages
Install packages using the following command:
bun install
Run Locally
Test the setup locally using the following command:
bun run dev
Test the build
bun run build
Deploy to Vercel
Finally, when you're ready, deploy the project to Vercel.
Note: Vercel build is automatically blocked on folders code-plugin, embed and readme.md. You can additionally add a build block command in vercel's dashboard.
Here's how you can contribute:
Thanks to @jaredpalmer, @shuding_, @shadcn, @thorwebdev