Skip to content

Commit

Permalink
add error messages
Browse files Browse the repository at this point in the history
  • Loading branch information
kaarthik108 committed Oct 18, 2024
1 parent c5b26ab commit d62fbb2
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 58 deletions.
42 changes: 0 additions & 42 deletions .github/workflows/lint.yml

This file was deleted.

21 changes: 10 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@

## Supported LLM's

- GPT-3.5-turbo-0125
- CodeLlama-70B
- Mistral Medium
- GPT-4o
- Gemini Flash 1.5 8B
- Claude 3 Haiku
- Llama 3.2 3B
- Llama 3.1 405B

#

Expand All @@ -27,11 +29,12 @@ https://github.com/kaarthik108/snowChat/assets/53030784/24105e23-69d3-4676-b6d6-

## 🌟 Features

- **Conversational AI**: Harnesses ChatGPT to translate natural language into precise SQL queries.
- **Conversational AI**: Use ChatGPT and other models to translate natural language into precise SQL queries.
- **Conversational Memory**: Retains context for interactive, dynamic responses.
- **Snowflake Integration**: Offers seamless, real-time data insights straight from your Snowflake database.
- **Self-healing SQL**: Proactively suggests solutions for SQL errors, streamlining data access.
- **Interactive User Interface**: Transforms data querying into an engaging conversation, complete with a chat reset option.
- **Agent-based Architecture**: Utilizes an agent to manage interactions and tool usage.

## 🛠️ Installation

Expand All @@ -42,7 +45,9 @@ https://github.com/kaarthik108/snowChat/assets/53030784/24105e23-69d3-4676-b6d6-
cd snowchat
pip install -r requirements.txt

3. Set up your `OPENAI_API_KEY`, `ACCOUNT`, `USER_NAME`, `PASSWORD`, `ROLE`, `DATABASE`, `SCHEMA`, `WAREHOUSE`, `SUPABASE_URL` , `SUPABASE_SERVICE_KEY` and `REPLICATE_API_TOKEN` in project directory `secrets.toml`.
3. Set up your `OPENAI_API_KEY`, `ACCOUNT`, `USER_NAME`, `PASSWORD`, `ROLE`, `DATABASE`, `SCHEMA`, `WAREHOUSE`, `SUPABASE_URL` , `SUPABASE_SERVICE_KEY`, `SUPABASE_STORAGE_URL`,`CLOUDFLARE_ACCOUNT_ID`, `CLOUDFLARE_NAMESPACE_ID`,
`CLOUDFLARE_API_TOKEN` in project directory `secrets.toml`.
Cloudflare is used here for caching Snowflake responses in KV.

4. Make you're schemas and store them in docs folder that matches you're database.

Expand All @@ -53,12 +58,6 @@ https://github.com/kaarthik108/snowChat/assets/53030784/24105e23-69d3-4676-b6d6-
7. Run the Streamlit app to start chatting:
streamlit run main.py

## 🚀 Additional Enhancements

1. **Platform Integration**: Connect snowChat with popular communication platforms like Slack or Discord for seamless interaction.
2. **Voice Integration**: Implement voice recognition and text-to-speech functionality to make the chatbot more interactive and user-friendly.
3. **Advanced Analytics**: Integrate with popular data visualization libraries like Plotly or Matplotlib to generate interactive visualizations based on the user's queries (AutoGPT).

## Star History

[![Star History Chart](https://api.star-history.com/svg?repos=kaarthik108/snowChat&type=Date)]
Expand Down
10 changes: 6 additions & 4 deletions agent.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,24 +35,24 @@ class ModelConfig:

model_configurations = {
"gpt-4o": ModelConfig(
model_name="gpt-4o", api_key=os.getenv("OPENAI_API_KEY")
model_name="gpt-4o", api_key=st.secrets["OPENAI_API_KEY"]
),
"Gemini Flash 1.5 8B": ModelConfig(
model_name="google/gemini-flash-1.5-8b",
api_key=st.secrets["OPENROUTER_API_KEY"],
base_url="https://openrouter.ai/api/v1",
),
"claude3-haiku": ModelConfig(
model_name="claude-3-haiku-20240307", api_key=os.getenv("ANTHROPIC_API_KEY")
model_name="claude-3-haiku-20240307", api_key=st.secrets["ANTHROPIC_API_KEY"]
),
"llama-3.2-3b": ModelConfig(
model_name="accounts/fireworks/models/llama-v3p2-3b-instruct",
api_key=os.getenv("FIREWORKS_API_KEY"),
api_key=st.secrets["FIREWORKS_API_KEY"],
base_url="https://api.fireworks.ai/inference/v1",
),
"llama-3.1-405b": ModelConfig(
model_name="accounts/fireworks/models/llama-v3p1-405b-instruct",
api_key=os.getenv("FIREWORKS_API_KEY"),
api_key=st.secrets["FIREWORKS_API_KEY"],
base_url="https://api.fireworks.ai/inference/v1",
),
}
Expand All @@ -70,6 +70,8 @@ def create_agent(callback_handler: BaseCallbackHandler, model_name: str) -> Stat
if not config:
raise ValueError(f"Unsupported model name: {model_name}")

if not config.api_key:
raise ValueError(f"API key for model '{model_name}' is not set. Please check your environment variables or secrets configuration.")

llm = (
ChatOpenAI(
Expand Down
1 change: 0 additions & 1 deletion utils/snowchat_ui.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import html
import re
import textwrap

import streamlit as st
from langchain.callbacks.base import BaseCallbackHandler
Expand Down

0 comments on commit d62fbb2

Please sign in to comment.