探索 Vanna AI 与 Streamlit 的强大结合:打造智能数据查询应用

RayRay
Vanna.AIStreamlitPython应用程序配置Github开源项目

vanna-streamlit

Vanna AI 与 Streamlit 的完美融合:开启智能数据查询新篇章

在当今数据驱动的时代,如何高效、直观地查询和分析数据成为了许多企业和数据分析师面临的重要挑战。幸运的是,随着人工智能技术的不断发展,我们现在有了更加智能和便捷的解决方案。本文将为您详细介绍 Vanna AI 和 Streamlit 这两个强大工具的结合应用,展示如何构建一个智能化的数据查询应用,让数据分析变得更加轻松和高效。

Vanna AI:智能 SQL 生成的革新者

Vanna AI 是一个开源的 Python RAG(检索增强生成)框架,专门用于 SQL 生成。它的核心功能是将自然语言转换为准确的 SQL 查询语句,极大地简化了数据查询过程。通过集成先进的自然语言处理技术,Vanna AI 能够理解用户的意图,并生成相应的 SQL 代码,使得即使不熟悉 SQL 的用户也能轻松进行复杂的数据查询。

Streamlit:打造交互式数据应用的利器

Streamlit 是一个广受欢迎的开源 Python 库,它允许开发者快速构建和部署交互式的数据应用。Streamlit 的优势在于其简洁的 API 和丰富的组件库,使得开发者可以用纯 Python 代码轻松创建美观实用的前端界面。这个特性使得 Streamlit 特别适合构建数据可视化和分析工具。

Vanna AI 与 Streamlit 的强强联手

将 Vanna AI 与 Streamlit 结合,我们可以创建一个功能强大且用户友好的数据查询应用。这个应用允许用户通过自然语言输入来查询数据,无需编写复杂的 SQL 语句。下面,让我们一步步探索如何构建这样一个应用。

1. 安装与配置

首先,我们需要安装必要的依赖包。创建一个新的 Python 虚拟环境,然后运行以下命令:

python3 -m venv venv source venv/bin/activate pip install -r requirements.txt

requirements.txt 文件应该包含以下依赖:

streamlit
vanna
plotly

2. 配置 Vanna AI

vanna_calls.py 文件中,我们需要设置 Vanna AI 的配置。这通常包括设置 API 密钥和选择合适的模型。例如:

import vanna as vn def setup_vanna(): vn.api_key = st.secrets["vanna_api_key"] vn.set_model("gpt-3.5-turbo-16k") # 其他配置...

3. 构建 Streamlit 应用

接下来,我们创建主应用文件 app.py。这个文件将包含 Streamlit 应用的核心逻辑:

import streamlit as st import vanna_calls as vc import plotly.graph_objects as go def main(): st.title("Vanna AI 智能数据查询助手") # 用户输入 user_query = st.text_input("请输入你的数据查询问题:") if user_query: with st.spinner("正在生成 SQL..."): sql = vc.generate_sql(user_query) st.code(sql, language="sql") with st.spinner("执行查询..."): results = vc.execute_query(sql) st.dataframe(results) with st.spinner("生成可视化..."): fig = vc.generate_visualization(results, user_query) st.plotly_chart(fig) if __name__ == "__main__": main()

这个简单的应用允许用户输入自然语言查询,然后生成 SQL,执行查询,并展示结果和可视化。

4. 实现核心功能

vanna_calls.py 中,我们需要实现以下核心功能:

import vanna as vn import streamlit as st import plotly.graph_objects as go def generate_sql(question): return vn.generate_sql(question) def execute_query(sql): # 这里需要根据实际数据库连接进行配置 conn = get_database_connection() return pd.read_sql(sql, conn) def generate_visualization(df, question): plotly_code = vn.generate_plotly_code(question=question, df=df) fig = vn.get_plotly_figure(plotly_code=plotly_code, df=df) return fig

应用展示与实际案例

让我们通过一个实际案例来展示这个应用的强大功能。假设我们有一个电子商务数据库,用户想了解过去一年中销售额最高的前 5 个产品类别。

用户只需输入: "显示过去一年销售额最高的前 5 个产品类别"

应用将自动生成如下 SQL:

SELECT p.category, SUM(oi.sale_price) as total_sales FROM order_items oi JOIN products p ON oi.product_id = p.id JOIN orders o ON oi.order_id = o.id WHERE o.created_at >= DATE_SUB(CURDATE(), INTERVAL 1 YEAR) GROUP BY p.category ORDER BY total_sales DESC LIMIT 5

执行查询后,应用会显示结果数据表,并自动生成一个适合的可视化图表,比如柱状图或饼图,直观地展示这 5 个类别的销售额占比。

销售额Top5产品类别

进阶功能与优化

  1. 历史查询记录:实现查询历史功能,允许用户快速重复之前的查询。

  2. 自定义可视化:提供更多可视化选项,让用户能够自定义图表类型和样式。

  3. 数据导出:添加将查询结果导出为 CSV 或 Excel 文件的功能。

  4. 多数据源支持:扩展应用以支持多个数据库或数据源,增加灵活性。

  5. 自然语言反馈:利用 Vanna AI 的能力,为查询结果提供自然语言解释和洞察。

结语

Vanna AI 和 Streamlit 的结合为数据查询和分析开辟了一个全新的领域。通过这种方式,我们不仅简化了复杂的数据查询过程,还为非技术用户提供了一个直观、易用的界面来探索和理解数据。这种智能化的数据查询应用有潜力彻底改变企业的数据分析流程,提高效率,并使数据驱动的决策更加普及。

随着人工智能技术的不断进步,我们可以期待看到更多类似的创新应用出现,进一步推动数据分析和商业智能领域的发展。对于开发者和数据科学家来说,掌握这些工具不仅能够提高工作效率,还能够创造出更多有价值的数据产品,为企业和用户带来实际的收益。

让我们共同期待 Vanna AI 和 Streamlit 这样的工具能够在未来带来更多惊喜,继续推动数据科学和人工智能领域的创新与进步。

编辑推荐精选

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

下拉加载更多