搜索
首页科技周边人工智能SQL自动生成查询助手

您是否希望您可以简单地与数据库交谈,用简单的语言提出问题,并在不编写复杂的SQL查询或通过电子表格进行分类的情况下获得即时答案?借助Langchain的SQL工具包,GROQ API和简化,这是可能的!本文将向您展示如何构建AI驱动的SQL助手,该助手可以自然地查询MySQL数据库。您将学会整合Langchain的工具,使用GROQ API进行有效的数据检索,并使用简化设计交互式UI。最后,您将知道如何简化数据查询,增强数据项目并解锁数据库的全部潜力。

本文作为数据科学博客马拉松的一部分发表

目录

  • 使用Langchain,groq和简化聊天和可视化MySQL数据
  • 使用Langchain的SQL工具包的数据库查询
  • 设置所需软件包
  • 开发您的MySQL聊天界面
  • 交互式应用程序的Python代码
    • 导入所需的库
    • 简化配置
    • 侧栏和数据库配置
    • 处理用户输入和查询执行
  • 常见问题

使用Langchain,groq和简化聊天和可视化MySQL数据

数据库 - 非常有用,结构化信息的仓库是数千个应用程序的骨干。但是,在稳健性,易用性和广泛的用法中,人们脱颖而出:MySQL,流行的开源关系数据库管理系统。它提供了一种结构化的方式,可以有效地存储,组织和检索数据,从而使其每个人的首选或开发人员的选择。

但是,对于非技术人员来说,直接操纵MySQL或任何其他数据库,就类似于试图破解隐秘代码。使用SQL查询的旧方法功能强大,通常是障碍,可抵制进入桌子和列锁定的见解。

从SQL查询到自然语言对话

但是,如果我们可以用自然语言与MySQL数据库交谈,这就像与同事聊天一样?如果我们可以在美丽的图表和图表中立即可视化数据,从而使趋势和模式从屏幕上跳下来怎么办?

这使我们进入了令人兴奋的Langchain,Groq和简化的三人组。 Langchain将我们的人类问题转化为使用SQL工具包的数据库可理解的结构化语言。 GROQ由于其直观的API而以精确的精度获取了我们正在寻找的特定数据。最后,Sparlit是一个功能强大的Python库,用于构建Web应用程序,提供的画布使我们能够绘制由数据驱动的杰作。简化支持快速发展的简单性和简化性,使以最小的努力构建交互式接口变得更加容易。

了解了解和实施自然语言处理的指南

想象一下问您的MySQL数据库:“上个季度我们最畅销的产品是什么?” “这是过去一年客户增长的图。”现在,您可以归功于Langchain,Groq和Shatlit。在本教程中,我们将学习如何构建一个功能强大的用户友好应用程序,使您可以像知情助手一样与MySQL数据库聊天,同时享受“简化的实时数据展示”的美感。

准备好释放MySQL数据的全部潜力,使其易于访问,易于理解和可行。

技术堆栈使用

  • 简化
  • Langchain(SQL数据库工具包)
  • Chatgroq(Llama-3.1-70b-versatile)。
  • MySQL数据库
  • SQL炼金术

使用Langchain的SQL工具包的数据库查询

因此,Langchain是AI的适应性平台,可以使人与各种数据源之间的相互作用流动。就像桥梁一样,有助于将我们的自然表达方式与数据库,API和其他类型的知识存储库的结构化世界联系起来。

Langchain SQL工具包充当智能翻译,将我们的类似人类的问题转换为数据库理解的SQL查询。它利用语言模型的力量来掌握我们的请求背后的意图并生成相应的SQL代码。这不仅简化了数据检索过程,而且还可以将数据库访问访问更广泛的受众,包括没有广泛的SQL知识的受众。

设置所需软件包

为了使应用程序启动并顺利运行,您需要安装几个必需软件包。此步骤可确保所有必要的库和工具可用于与您的MySQL数据库的Langchain,Groq和简化的无缝集成。

 PIP安装简化
PIP安装mysql-connector-Python
PIP安装Langchain-Community
PIP安装Python-Dotenv
PIP安装Langchain
PIP安装Langchain-Groq
PIP安装sqlalchemy

开发您的MySQL聊天界面

让我们将我们的概念栩栩如生!以下代码结合了Langchain的SQL Toolkit的功能,GROQ的数据获取功能以及简化的直觉UI,以为您的MySQL数据库创建对话界面。我们将浏览关键步骤,从建立数据库连接到处理用户查询并显示结果。

数据库初始化的SQL代码

首先,我们需要设置MySQL数据库并定义其架构。以下是初始化数据库并创建用于存储用户和发布信息的必要表所需的SQL代码。

创建数据库InstagramDB;
使用InstagramDB;
如果不存在,请创建表(如果不存在)(
UserId int主键,
用户名Varchar(50),
电子邮件varchar(100)
);
如果不存在,请创建表(如果不存在)(
postid int主键,
UserId int,
标题Varchar(100)
);

插入用户(用户ID,用户名,电子邮件)
值
(1,“ Gourav”,“ [电子邮件保护]”),
(2,“ Tushar”,“ [电子邮件保护]”),
(3,“ adi”,“ [电子邮件保护]”);

插入帖子(Postid,userId,字幕)
值
(51,“ 587”,“雨”),
(2,“ 963”,“水”),
(3,“ 821”,“ Sunny”);

查看有关SQL的数据科学的本文

交互式应用程序的Python代码

为了使我们的概念栩栩如生,我们将编写整合Langchain,Groq和Sparlit的Python脚本。此代码将设置交互式聊天界面,处理数据库连接,并与您的MySQL数据库启用自然语言交互。

导入所需的库

让我们首先导入所需的库:

导入简报为ST
从pathlib导入路径
来自langchain_community.agent_toolkits.sql.base导入create_sql_agent
来自langchain_community.utility import sqldatabase
来自langchain.Axents.Agent_Types导入AgentType
来自langchain_community.callbacks.streamlit import intllitcallbackhandler
来自langchain_community.agent_toolkits.sql.toolkit导入sqldatabasetoolkit
来自SQLalchemy Import create_engine
来自langchain_groq导入changroq

这些进口是为了构建利用Langchain,Groq和Sqlalchemy的简化应用程序的基础,以与您的MySQL数据库启用自然语言互动。该代码设置了创建一个SQL代理的阶段,该SQL代理可以了解用户查询,将其转换为SQL,在数据库上执行它们,并在您的流线应用程序中以用户友好的方式显示结果。

简化配置

在本节中,我们将为简化应用程序(包括其初始布局和配置)设置基础。这将建立用户将与AI SQL助手互动的环境。

 st.set_page_config(page_title =“ ai sql Assistans”,page_icon =“?”,layout =“ wide”)

圣提特(“?ai sql助手”)

mysql =“ use_mysql”

侧栏和数据库配置

我们将潜入侧栏设置,允许用户输入其MySQL连接详细信息和API键。这种配置可确保与数据库的无缝连接,并与必要的工具集成。

与圣德巴尔:
    圣海(“数据库配置”)
    selected_opt = st.radio(“选择一个选项”,[“如何使用”,“连接到mySQL数据库”]

    如果Selected_opt ==“连接到MySQL数据库”:
        db_uri = mysql
        mysql_host = st.text_input(“ mysql主机”)
        mysql_user = st.text_input(“ mysql用户”)
        mysql_password = st.text_input(“ mysql密码”,type =“密码”)
        mysql_db = st.text_input(“ mysql数据库”)
        api_key = st.text_input(“ groq api键”,type =“密码”)
    别的:
        db_uri =无
        api_key =无

    如果圣巴顿(“清除聊天历史”):
        St.Session_state [“消息”] = []

    St.MarkDown(“ ---”)
    圣人物(“关于”)
    St.Info(“此AI SQL助手使用Langchain和Groq为您的MySQL数据库提供自然语言界面。用简单的英语提出问题,并获得SQL驱动的答案!”)
  • 此代码为您的AI SQL Assistans应用程序设置了初始布局和配置选项。
  • 侧边栏允许用户学习如何使用该应用程序或提供其MySQL数据库连接详细信息和GROQ API密钥。
  • “清除聊天历史记录”按钮使用户可以重置对话。
  • “关于”部分简要说明了应用程序功能。

请记住,这只是初始设置。您可能会有其他代码来处理实际数据库连接,使用Langchain和Groq查询处理,并在简化应用程序的主要区域中显示结果。

了解如何生成自己的OpenAI API密钥并添加积分

处理用户输入和查询执行

该部分涵盖了处理用户查询并针对MySQL数据库执行的核心功能。我们将详细说明应用程序如何将自然语言输入转换为SQL命令并进行交互显示结果。

如果db_uri == mysql而不是api_key:
    st.sidebar.error(“请添加groq api键”)
    St.Stop()

如果api_key:
    llm = chatgroq(groq_api_key = api_key,model_name =“ llama-3.1-70b-versatile”,streaming = true)
  • 该代码通过包括输入验证来提高应用程序的鲁棒性来展示良好实践。
  • 使用St.Stop()有效地阻止了该应用程序在没有所需API键的情况下运行。
  • Chatgroq的初始化设定了阶段,用于使用Langchain驱动的SQL代理中使用GROQ的功能。
 @st.cache_resource(ttl =“ 2H”)
def configure_db(db_uri,mysql_host = none,mysql_user = none,mysql_password = none,mysql_db = none):
    如果db_uri == mysql:
        如果不是(mysql_host和mysql_user和mysql_password和mysql_db):
            St.Error(“请提供所有MySQL连接详细信息。”)
            St.Stop()
        返回sqldatabase(create_engine(f“ mysql mysqlConnector:// {mysql_user}:{mysql_password}@{mysql_host}/mysql_host}/{mysql_db}”))
  • @st.cache_resource装饰器通过缓存数据库连接来优化性能
  • 输入验证有助于防止错误并改善用户体验
  • Sqlalchemy提供了一种与您的MySQL数据库连接和交互的强大方法
  • Langchain的Sqldatabase类桥接SQLalchemy和Langchain的自然语言处理能力之间的差距
如果db_uri == mysql:
    db = configure_db(db_uri,mysql_host,mysql_user,mysql_password,mysql_db)
别的:
    圣海(“如何使用”)
    St.MarkDown(“”
    1。在侧边栏中选择“连接到MySQL数据库”。
    2。填写您的MySQL连接详细信息和GROQ API键。
    3。连接后,您可以开始与SQL数据库聊天!
    4。用自然语言提出问题,AI将其转化为SQL查询。
    ”“”)
    St.Stop()
工具箱= sqldatabasetoolkit(db = db,llm = llm)

straplit_callback = selllitcallbackhandler(St.Container())

代理= create_sql_agent(
    llm = llm,
    工具包=工具包,
    详细= true,
    agent_type = agentType.zero_shot_react_description,
    回调= [stramlit_callback]
)

圣海(“聊天接口”)

如果不是在St.Session_state中的“消息”:
    st.Session_state [“ messages”] = [{“角色”:“助手”,“ content”:“我如何帮助您?”}]

在st.Session_state.messages中使用味精:
    使用St.Chat_message(msg [“ cole”]):
        St.Write(MSG [“ content”])

user_query = st.chat_input(占位符=“从数据库中问任何东西”)

如果User_query:
    st.Session_state.messages.append({“角色”:“用户”,“ content”:user_query})
    St.Chat_message(“用户”)。写(user_query)

    与St.Chat_message(“助手”):
        response_container = st.container()
        使用response_container:
            响应= agent.run(user_query)
            response_container.markdown(响应)
        
        st.Session_state.messages.append({“角色”:“助手”,“ content”:wendment})

本质上,此代码段将交互式聊天功能带入了生活。它使用户能够以简单的语言询问有关其数据库的问题,并在视觉上吸引人且用户友好的简化界面中获得信息的响应。

SQL自动生成查询助手

阅读有关Python教程的有关从头开始学习数据科学的教程

结论

在本文中,我们在如何连接人类和数据库中有很多乐趣。通过结合Langchain,Groq和简化,我们有了这款驱动的AI SQL助手,提供了自然语言问题,可以回答您的MySQL数据库。

我们目睹了Langchain的SQL工具包如何充当翻译,将我们的简单英语问题转换为SQL的结构化语言。 GROQ凭借其有效的API无缝获取并转换我们需要的数据。并简化了其直观的界面,以视觉引人入胜且交互的方式呈现结果。

您可以在此处找到需求。txt文件:github

关键要点

  • 该代码使用户可以使用普通英语查询其MySQL数据库,从而消除了对复杂SQL语法的需求。
  • Langchain SQL工具包利用Langchain框架将自然语言查询转换为SQL,从而使数据库交互更容易访问。
  • GROQ用于有效的数据检索和转换,可能提高性能并实现复杂的数据操作。

常见问题

Q1。什么是Langchain,在该项目中有何帮助?

A. Langchain是构建利用语言模型的应用程序的强大框架。它充当编排器,连接不同组件,例如语言模型,数据加载程序和工具来创建复杂的工作流程。在我们的项目中,Langchain的SQL工具包对于将自然语言查询转换为SQL至关重要,从而使我们能够使用普通英语与MySQL数据库进行交互。

Q2。 Groq在此设置中扮演什么角色?

A. GROQ是一种查询语言和API平台,旨在有效的数据转换和交付。它允许我们从MySQL数据库中获取数据,并在向用户展示之前即时进行任何必要的转换。 GROQ的灵活性和性能使其非常适合处理复杂的数据操作并确保响应迅速的用户体验。

Q3。为什么要简化此项目?

A. Sleatlit是一个Python库,可简化交互式Web应用程序的创建。它提供了一个用户友好的界面,用于构建聊天机器人,仪表板和其他数据驱动工具。在我们的项目中,Sparlit负责创建聊天接口,处理用户输入以及显示Langchain SQL代理生成的响应。

Q4。我可以将这种方法与MySQL以外的数据库一起使用吗?

答:是的,Langchain的SQL Toolkit旨在与各种关系数据库合作。尽管本指南重点关注MySQL,但您可以通过修改连接详细信息并在需要时可能调整SQL语法,使代码连接到其他数据库,例如PostgreSQL,SQLite或Oracle。

以上是SQL自动生成查询助手的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
一个提示可以绕过每个主要LLM的保障措施一个提示可以绕过每个主要LLM的保障措施Apr 25, 2025 am 11:16 AM

隐藏者的开创性研究暴露了领先的大语言模型(LLM)的关键脆弱性。 他们的发现揭示了一种普遍的旁路技术,称为“政策木偶”,能够规避几乎所有主要LLMS

5个错误,大多数企业今年将犯有可持续性5个错误,大多数企业今年将犯有可持续性Apr 25, 2025 am 11:15 AM

对环境责任和减少废物的推动正在从根本上改变企业的运作方式。 这种转变会影响产品开发,制造过程,客户关系,合作伙伴选择以及采用新的

H20芯片禁令震撼中国人工智能公司,但长期以来一直在为影响H20芯片禁令震撼中国人工智能公司,但长期以来一直在为影响Apr 25, 2025 am 11:12 AM

最近对先进AI硬件的限制突出了AI优势的地缘政治竞争不断升级,从而揭示了中国对外国半导体技术的依赖。 2024年,中国进口了价值3850亿美元的半导体

如果Openai购买Chrome,AI可能会统治浏览器战争如果Openai购买Chrome,AI可能会统治浏览器战争Apr 25, 2025 am 11:11 AM

从Google的Chrome剥夺了潜在的剥离,引发了科技行业中的激烈辩论。 OpenAI收购领先的浏览器,拥有65%的全球市场份额的前景提出了有关TH的未来的重大疑问

AI如何解决零售媒体的痛苦AI如何解决零售媒体的痛苦Apr 25, 2025 am 11:10 AM

尽管总体广告增长超过了零售媒体的增长,但仍在放缓。 这个成熟阶段提出了挑战,包括生态系统破碎,成本上升,测量问题和整合复杂性。 但是,人工智能

'AI是我们,比我们更多''AI是我们,比我们更多'Apr 25, 2025 am 11:09 AM

在一系列闪烁和惰性屏幕中,一个古老的无线电裂缝带有静态的裂纹。这堆积不稳定的电子设备构成了“电子废物土地”的核心,这是身临其境展览中的六个装置之一,&qu&qu

Google Cloud在下一个2025年对基础架构变得更加认真Google Cloud在下一个2025年对基础架构变得更加认真Apr 25, 2025 am 11:08 AM

Google Cloud的下一个2025:关注基础架构,连通性和AI Google Cloud的下一个2025会议展示了许多进步,太多了,无法在此处详细介绍。 有关特定公告的深入分析,请参阅我的文章

IR的秘密支持者透露,Arcana的550万美元的AI电影管道说话,Arcana的AI Meme,Ai Meme的550万美元。IR的秘密支持者透露,Arcana的550万美元的AI电影管道说话,Arcana的AI Meme,Ai Meme的550万美元。Apr 25, 2025 am 11:07 AM

本周在AI和XR中:一波AI驱动的创造力正在通过从音乐发电到电影制作的媒体和娱乐中席卷。 让我们潜入头条新闻。 AI生成的内容的增长影响:技术顾问Shelly Palme

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器