搜尋
首頁科技週邊人工智慧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
如何使用Huggingface Smollm建立個人AI助手如何使用Huggingface Smollm建立個人AI助手Apr 18, 2025 am 11:52 AM

利用“設備” AI的力量:建立個人聊天機器人CLI 在最近的過去,個人AI助手的概念似乎是科幻小說。 想像一下科技愛好者亞歷克斯(Alex)夢見一個聰明的本地AI同伴 - 不依賴

通過斯坦福大學激動人心的新計劃,精神健康的AI專心分析通過斯坦福大學激動人心的新計劃,精神健康的AI專心分析Apr 18, 2025 am 11:49 AM

他們的首屆AI4MH發射於2025年4月15日舉行,著名的精神科醫生兼神經科學家湯姆·因斯爾(Tom Insel)博士曾擔任開幕式演講者。 Insel博士因其在心理健康研究和技術方面的傑出工作而聞名

2025年WNBA選秀課程進入聯盟成長並與在線騷擾作鬥爭2025年WNBA選秀課程進入聯盟成長並與在線騷擾作鬥爭Apr 18, 2025 am 11:44 AM

恩格伯特說:“我們要確保WNBA仍然是每個人,球員,粉絲和公司合作夥伴,感到安全,重視和授權的空間。” anno

Python內置數據結構的綜合指南 - 分析VidhyaPython內置數據結構的綜合指南 - 分析VidhyaApr 18, 2025 am 11:43 AM

介紹 Python擅長使用編程語言,尤其是在數據科學和生成AI中。 在處理大型數據集時,有效的數據操作(存儲,管理和訪問)至關重要。 我們以前涵蓋了數字和ST

與替代方案相比,Openai新型號的第一印象與替代方案相比,Openai新型號的第一印象Apr 18, 2025 am 11:41 AM

潛水之前,一個重要的警告:AI性能是非確定性的,並且特定於高度用法。簡而言之,您的里程可能會有所不同。不要將此文章(或任何其他)文章作為最後一句話 - 目的是在您自己的情況下測試這些模型

AI投資組合|如何為AI職業建立投資組合?AI投資組合|如何為AI職業建立投資組合?Apr 18, 2025 am 11:40 AM

建立杰出的AI/ML投資組合:初學者和專業人士指南 創建引人注目的投資組合對於確保在人工智能(AI)和機器學習(ML)中的角色至關重要。 本指南為建立投資組合提供了建議

代理AI對安全操作可能意味著什麼代理AI對安全操作可能意味著什麼Apr 18, 2025 am 11:36 AM

結果?倦怠,效率低下以及檢測和作用之間的差距擴大。這一切都不應該令任何從事網絡安全工作的人感到震驚。 不過,代理AI的承諾已成為一個潛在的轉折點。這個新課

Google與Openai:AI為學生打架Google與Openai:AI為學生打架Apr 18, 2025 am 11:31 AM

直接影響與長期夥伴關係? 兩週前,Openai提出了強大的短期優惠,在2025年5月底之前授予美國和加拿大大學生免費訪問Chatgpt Plus。此工具包括GPT-4O,A A A A A

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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 Mac版

SublimeText3 Mac版

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