目錄
目錄
使用Langchain,groq和簡化聊天和可視化MySQL數據
從SQL查詢到自然語言對話
技術堆棧使用
使用Langchain的SQL工具包的數據庫查詢
設置所需軟件包
開發您的MySQL聊天界面
數據庫初始化的SQL代碼
交互式應用程序的Python代碼
導入所需的庫
簡化配置
側欄和數據庫配置
處理用戶輸入和查詢執行
結論
關鍵要點
常見問題
首頁 科技週邊 人工智慧 SQL自動生成查詢助手

SQL自動生成查詢助手

Apr 12, 2025 am 09:13 AM

您是否希望您可以簡單地與數據庫交談,用簡單的語言提出問題,並在不編寫複雜的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

熱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

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1414
52
Laravel 教程
1307
25
PHP教程
1254
29
C# 教程
1228
24
開始使用Meta Llama 3.2 -Analytics Vidhya 開始使用Meta Llama 3.2 -Analytics Vidhya Apr 11, 2025 pm 12:04 PM

Meta的Llama 3.2:多模式和移動AI的飛躍 Meta最近公佈了Llama 3.2,這是AI的重大進步,具有強大的視覺功能和針對移動設備優化的輕量級文本模型。 以成功為基礎

10個生成AI編碼擴展,在VS代碼中,您必須探索 10個生成AI編碼擴展,在VS代碼中,您必須探索 Apr 13, 2025 am 01:14 AM

嘿,編碼忍者!您當天計劃哪些與編碼有關的任務?在您進一步研究此博客之前,我希望您考慮所有與編碼相關的困境,這是將其列出的。 完畢? - 讓&#8217

AV字節:Meta' llama 3.2,Google的雙子座1.5等 AV字節:Meta' llama 3.2,Google的雙子座1.5等 Apr 11, 2025 pm 12:01 PM

本週的AI景觀:進步,道德考慮和監管辯論的旋風。 OpenAI,Google,Meta和Microsoft等主要參與者已經釋放了一系列更新,從開創性的新車型到LE的關鍵轉變

向員工出售AI策略:Shopify首席執行官的宣言 向員工出售AI策略:Shopify首席執行官的宣言 Apr 10, 2025 am 11:19 AM

Shopify首席執行官TobiLütke最近的備忘錄大膽地宣布AI對每位員工的基本期望是公司內部的重大文化轉變。 這不是短暫的趨勢。這是整合到P中的新操作範式

視覺語言模型(VLMS)的綜合指南 視覺語言模型(VLMS)的綜合指南 Apr 12, 2025 am 11:58 AM

介紹 想像一下,穿過​​美術館,周圍是生動的繪畫和雕塑。現在,如果您可以向每一部分提出一個問題並獲得有意義的答案,該怎麼辦?您可能會問:“您在講什麼故事?

GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? Apr 13, 2025 am 10:18 AM

介紹 Openai已根據備受期待的“草莓”建築發布了其新模型。這種稱為O1的創新模型增強了推理能力,使其可以通過問題進行思考

如何在SQL中添加列? - 分析Vidhya 如何在SQL中添加列? - 分析Vidhya Apr 17, 2025 am 11:43 AM

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

最新的最佳及時工程技術的年度彙編 最新的最佳及時工程技術的年度彙編 Apr 10, 2025 am 11:22 AM

對於那些可能是我專欄新手的人,我廣泛探討了AI的最新進展,包括體現AI,AI推理,AI中的高科技突破,及時的工程,AI培訓,AI,AI RE RE等主題

See all articles