项目介绍:snowChat
项目概述
snowChat 是一个直观且用户友好的应用程序,专为提供自然语言与 Snowflake 数据交互的体验而设计。用户仅需输入问题或请求,snowChat 便会生成合适的 SQL 查询并返回所需数据。借助 snowChat,无需编写复杂的 SQL 查询或逐一筛选数据表,让用户轻松获取数据,推动更快速、更高效的数据驱动决策。
支持的语言模型
- GPT-4o
- Gemini Flash 1.5 8B
- Claude 3 Haiku
- Llama 3.2 3B
- Llama 3.1 405B
主要功能 🌟
- 会话式 AI:使用 ChatGPT 及其他模型,将自然语言翻译为精确的 SQL 查询。
- 会话记忆:保持上下文,以实现交互式和动态响应。
- Snowflake 集成:提供无缝、实时的数据见解,直接从 Snowflake 数据库获取。
- 自修复 SQL:主动为 SQL 错误提供解决方案建议,优化数据访问。
- 交互式用户界面:将数据查询转化为一个引人入胜的对话体验,并具备对话重置选项。
- 基于代理的架构:利用代理管理交互和工具使用。
安装指南 🛠️
-
克隆此仓库:
git clone https://github.com/yourusername/snowchat.git
-
安装所需的软件包:
cd snowchat pip install -r requirements.txt
-
在项目目录的
secrets.toml
文件中设置以下变量: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
(Cloudflare 用于在 KV 中缓存 Snowflake 响应)。 -
制作与数据库匹配的 schema 并存放在 docs 文件夹中。
-
通过 supabase/scripts.sql 创建 supabase 扩展、表和函数。
-
运行
python ingest.py
将数据转换为嵌入并存储为索引文件。 -
运行 Streamlit 应用以开始聊天:
streamlit run main.py
贡献 🤝
欢迎通过提交拉取请求或问题,来为此项目做出贡献。您的反馈和建议对我们非常宝贵!
许可 📄
该项目根据 MIT 许可证授权。有关详情,请参见 LICENSE 文件。