自動生成クエリのSQLアシスタント
複雑なSQLクエリを書いたり、スプレッドシートを並べ替えたりせずに、データベースと話をしたり、単純な言語で質問したり、即座に答えを得たりできることを望んだことがありますか? LangchainのSQLツールキット、GROQ API、およびRiremlitで、今では可能になりました!この記事では、MySQLデータベースを自然に照会できるAI搭載のSQLアシスタントを構築する方法を示します。 Langchainのツールを統合し、GROQ APIを使用して効率的なデータ取得を学び、StreamlitでインタラクティブなUIを設計することを学びます。最後に、データのクエリを簡素化し、データプロジェクトを強化し、データベースの可能性を最大限に引き出す方法がわかります。
この記事は、データサイエンスブログソンの一部として公開されました。
目次
- langchain、groq、およびstreamlitでmysqlデータをチャットして視覚化する
- LangchainのSQL Toolkitを使用したデータベースクエリ
- 必要なパッケージを設定します
- MySQLチャットインターフェイスの開発
- インタラクティブアプリケーション用のPythonコード
- 必要なライブラリをインポートします
- 合理的な構成
- サイドバーとデータベースの構成
- ユーザーの入力とクエリの実行の処理
よくある質問
langchain、groq、およびstreamlitでmysqlデータをチャットして視覚化する
データベース - 非常に便利で構造化された情報を持っている倉庫は、数千と数千のアプリケーションのバックボーンでした。ただし、堅牢性、使いやすさ、幅広い使用法では、人気のあるオープンソースリレーショナルデータベース管理システムであるMySQLが際立っています。それは、データを効率的に保存、整理、および取得するための構造化された方法を提供し、誰もが頼りになるビジネスまたは開発者の選択にします。
ただし、非技術的な個人にとって、MySQLまたはその他のデータベースの直接操作は、不可解なコードをクラックしようとすることに似ています。強力なのは、SQLクエリを使用する古い方法は、テーブルや列に閉じ込められた洞察へのアクセスに対する障壁として機能することがよくあります。
SQLクエリから自然言語の会話まで
しかし、同僚とチャットするのと同じように、自然言語でMySQLデータベースと会話できるとしたらどうでしょうか?美しいチャートやグラフでデータを即座に視覚化して、画面からトレンドやパターンを飛び出すことができたらどうでしょうか?
それは私たちをラングチェーン、Groq、および流線のエキサイティングなトリオに連れて行きます。 Langchainは、人間のような質問を、SQL Toolkitを使用するデータベースに理解できる構造化言語に変換します。 GROQは、直感的なAPIのためにピンポイントの精度で探している特定のデータを取得します。最後に、StreamlitはWebアプリケーションを構築するための強力なPythonライブラリであり、データによって駆動される傑作をペイントできるキャンバスを提供します。 Riremlitは、迅速な発展のシンプルさと容易さをサポートし、最小限の労力でインタラクティブなインターフェイスを簡単に構築しやすくします。
自然言語処理を理解して実装するためのガイドについて読む
MySQLデータベースに尋ねると想像してみてください。「前四半期のベストセラー製品は何でしたか?」 「過去1年間の顧客の成長のグラフがあります。」 Langchain、Groq、およびRiremlitのおかげで、これで可能です。このチュートリアルでは、リアルタイムのデータプレゼンテーションの美しさを味わいながら、情報に基づいたアシスタントのようにMySQLデータベースとチャットできる強力でユーザーフレンドリーなアプリケーションを構築する方法を学びます。
MySQLデータの潜在能力を最大限に引き出す準備をしてください。
使用される技術スタック
- 流線
- Langchain(SQLデータベースツールキット)
- chatgroq(llama-3.1-70b-versatile)。
- MySQLデータベース
- SQL Alchemy
LangchainのSQL Toolkitを使用したデータベースクエリ
したがって、Langchainは、人間とさまざまなデータソースの間の相互作用が流れることを可能にするAIの適応可能なプラットフォームです。橋のように、言語の自然な表現をデータベース、API、および他の種類の知識リポジトリの構造化された世界と結び付けるのに役立ちます。
Langchain SQL Toolkitはインテリジェントな翻訳者として機能し、人間のような質問をデータベースが理解しているSQLクエリに変換します。言語モデルの力を活用して、リクエストの背後にある意図を把握し、対応するSQLコードを生成します。これにより、データ検索プロセスが簡素化されるだけでなく、SQLの広範な知識がないものを含む、より多くの視聴者へのデータベースアクセスも開きます。
必要なパッケージを設定します
アプリケーションをスムーズに稼働させるには、いくつかの必須パッケージをインストールする必要があります。このステップにより、必要なすべてのライブラリとツールが、Langchain、GROQ、およびMySQLデータベースとの流線のシームレスな統合に使用できるようにします。
PIPインストールRiremlit PIPインストールmysql-connector-python ピップインストールlangchain-community PIPSインストールpython-dotenv ピップインストールlangchain ピップインストールlangchain-groq ピップインストールsqlalchemy
MySQLチャットインターフェイスの開発
私たちの概念を生き返らせましょう!次のコードは、LangchainのSQL Toolkit、GROQのデータフェッチ機能、およびStreamlitの直感的なUIのパワーを組み合わせて、MySQLデータベースの会話インターフェイスを作成します。データベース接続の確立からユーザークエリの処理、結果の表示まで、重要な手順を進めます。
データベース初期化のSQLコード
開始するには、MySQLデータベースを設定し、そのスキーマを定義する必要があります。以下は、データベースを初期化し、ユーザーと投稿情報を保存して投稿するために必要なテーブルを作成するために必要なSQLコードです。
データベースInstagramDBを作成します。 InstagramDBを使用します。 存在しない場合はテーブルを作成します(ユーザー) userid intプライマリキー、 ユーザー名Varchar(50)、 電子メールvarchar(100) ); 存在しない場合はテーブルを作成します(投稿) postid intプライマリキー、 userid int、 キャプションvarchar(100) ); ユーザーに挿入(userId、username、email) 値 (1、「Gourav」、「[電子メール保護]」)、 (2、「Tushar」、「[電子メール保護]」)、 (3、 "adi"、 "[電子メール保護]"); 投稿に挿入(postID、userid、キャプション) 値 (51、「587」、「雨」)、 (2、「963」、「水」)、 (3、 "821"、 "Sunny");
データサイエンスについては、SQLに関するこの記事を確認してください
インタラクティブアプリケーション用のPythonコード
私たちのコンセプトを実現するために、Langchain、Groq、およびRiremlitを統合するPythonスクリプトを書きます。このコードは、インタラクティブなチャットインターフェイスを設定し、データベース接続を処理し、MySQLデータベースとの自然言語の相互作用を有効にします。
必要なライブラリをインポートします
以下に必要なライブラリをインポートすることから始めましょう。
strirelittをインポートします Pathlibインポートパスから langchain_community.agent_toolkits.sql.base Import create_sql_agentから langchain_community.utilitiesからsqldatabaseをインポートします langchain.agents.agent_typesからImport AgentTypeから langchain_community.callbacks.streamLitからインポートStreamLitCallBackHandlerから langchain_community.agent_toolkits.sql.toolkitからsqldatabasetoolkitから sqlalchemyインポートCreate_Engineから langchain_groqからChatGroqをインポートします
これらの輸入品は、Langchain、Groq、およびSQLalchemyを活用して、MySQLデータベースとの自然言語の相互作用を可能にするretrylidアプリケーションを構築するための基礎を築きます。このコードは、ユーザークエリを理解し、それらをSQLに変換し、データベースで実行するSQLエージェントを作成するための段階を設定し、ストリームライトアプリ内でユーザーフレンドリーな方法で結果を表示します。
合理的な構成
このセクションでは、初期のレイアウトと構成など、流線アプリケーションの基盤を設定します。これにより、ユーザーがAI SQLアシスタントと対話する環境が確立されます。
St.set_page_config(page_title = "ai sqlアシスタント"、page_icon = "?"、layout = "wide") St.Title( "?ai sqlアシスタント") mysql = "use_mysql"
サイドバーとデータベースの構成
サイドバーセットアップに飛び込み、ユーザーがMySQL接続の詳細とAPIキーを入力できるようにします。この構成により、データベースへのシームレスな接続と、必要なツールとの統合が保証されます。
セントサイドバーと: St.Header( "データベース構成") Selected_opt = St.Radio( "Option"、 "" whas of show "、" mysqlデータベースへの接続 "]]]] selected_opt == "mysqlデータベースに接続する場合": db_uri = mysql mysql_host = St.Text_input( "mysql host") mysql_user = St.Text_input( "mysql user") mysql_password = St.Text_Input( "mysql password"、type = "password") mysql_db = St.Text_input( "mysqlデータベース") API_KEY = St.Text_Input( "GROQ API key"、type = "password")) それ以外: db_uri = none api_key = none St.Button(「Clear Chat History」)の場合: St.Session_state ["メッセージ"] = [] St.Markdown( "---") St.Subheader( "about") St.Info( "このAI SQLアシスタントはLangchainとGROQを使用してMySQLデータベースに自然言語インターフェイスを提供します。平易な英語で質問し、SQLを搭載した回答を取得します!」
- このコードは、AI SQLアシスタントアプリの初期レイアウトと構成オプションを設定します。
- サイドバーを使用すると、ユーザーはアプリの使用方法を学習するか、MySQLデータベース接続の詳細とGROQ APIキーを提供できます。
- 「クリアチャット履歴」ボタンを使用すると、ユーザーは会話をリセットできます。
- 「About」セクションは、アプリの機能の簡単な説明を提供します。
これは最初のセットアップにすぎないことを忘れないでください。実際のデータベース接続を処理する追加のコード、LangchainとGROQを使用したクエリ処理、およびResirlitアプリのメインエリアに結果を表示する可能性があります。
独自のOpenai APIキーを生成し、クレジットを追加する方法を学ぶ
ユーザーの入力とクエリの実行の処理
このパートは、ユーザークエリを処理してMySQLデータベースに対して実行するコア機能をカバーしています。アプリケーションが自然言語入力をSQLコマンドにどのように変換し、結果をインタラクティブに表示するかを詳しく説明します。
db_uri == mysqlではなくmysqlの場合: St.SideBar.Error(「GROQ APIキーを追加してください」) St.Stop() if api_key: llm = chatgroq(groq_api_key = api_key、model_name = "llama-3.1-70b-versatile"、striming = 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 and mysql_passwordおよびmysql_db): St.Error(「すべてのMySQL接続の詳細を提供してください。」) St.Stop() return sqldatabase(create_engine(f "mysql mysqlconnector:// {mysql_user}:{mysql_password}@{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.Header(「使い方」) St.Markdown( "" " 1.サイドバーで「MySQLデータベースに接続」を選択します。 2。mysql接続の詳細とGROQ APIキーを入力します。 3.接続したら、SQLデータベースとのチャットを開始できます! 4.自然言語で質問すると、AIはそれらをSQLクエリに変換します。 "" ") St.Stop()
toolkit = sqldatabasetoolkit(db = db、llm = llm) Streamlit_callback = riretlitcallbackhandler(st.container()) agent = create_sql_agent( LLM = LLM、 Toolkit = Toolkit、 verbose = true、 agent_type = agenttype.zero_shot_react_description、 callbacks = [riremlit_callback] )) St.Header( "Chat Interface") s.session_stateにない「メッセージ」の場合: St.Session_state ["Messages"] = [{"role": "Assistant"、 "content": "どうすれば役立ちますか?"}] St.Session_state.messagesのMSGの場合: St.Chat_Message(MSG ["Role"]): St.Write(msg ["content"]) user_query = st.chat_input(placeholder = "データベースから何でも尋ねる") if user_query: St.Session_state.messages.append({"role": "user"、 "content":user_query}) St.chat_message( "user")。書き込み(user_query) St.Chat_Message( "Assistant"): Response_Container = St.Container() Response_Containerで: Response = agent.run(user_query) Response_Container.MarkDown(Response) St.Session_state.messages.append({"role": "Assistant"、 "content":response})
本質的に、このコードスニペットは、インタラクティブなチャット機能を実現します。ユーザーは、データベースについて平易な言語で質問し、すべて視覚的に魅力的でユーザーフレンドリーな流線インターフェイス内で有益な応答を受け取ることができます。
データサイエンスをゼロから学ぶためのPythonチュートリアルについて読む
結論
この記事では、人間とデータベースを接続する方法を歩いているこの記事では、かなりの楽しみがあります。 Langchain、Groq、およびRiremlitを組み合わせることで、この駆動型AI SQLアシスタントがMySQLデータベースに応答する自然言語の質問を提供しました。
LangchainのSQL Toolkitが翻訳者としてどのように機能するかを目撃し、英語と英語の質問をSQLの構造化言語に変換しました。 GROQは、その効率的なAPIを使用して、必要なデータをシームレスに取得および変換します。直感的なインターフェイスを備えた流線は、視覚的に魅力的でインタラクティブな方法で結果を示します。
requisment.txtファイルはgithubで見つけることができます
重要なポイント
- このコードにより、ユーザーは平易な英語を使用してMySQLデータベースを照会し、複雑なSQL構文の必要性を排除できます。
- Langchain SQL ToolkitはLangchainフレームワークを活用して自然言語クエリをSQLに変換し、データベースの相互作用をよりアクセスしやすくします。
- GROQは、効率的なデータ検索と変換に使用され、パフォーマンスを向上させ、複雑なデータ操作を可能にします。
よくある質問
Q1。 Langchainとは何ですか?また、このプロジェクトでどのように役立ちますか?A. Langchainは、言語モデルを活用するアプリケーションを構築するための強力なフレームワークです。それはオーケストレーターとして機能し、言語モデル、データローダー、ツールなどのさまざまなコンポーネントを接続して、複雑なワークフローを作成します。私たちのプロジェクトでは、LangchainのSQLツールキットは、自然言語クエリをSQLに変換するために重要であり、Plain Englishを使用してMySQLデータベースと対話できるようになります。
Q2。このセットアップでGROQはどのような役割を果たしていますか?A. GROQは、効率的なデータ変換と配信のために設計されたクエリ言語およびAPIプラットフォームです。これにより、MySQLデータベースからデータを取得し、ユーザーに提示する前に必要な変換をその場で適用できます。 GROQの柔軟性とパフォーマンスにより、複雑なデータ操作を処理し、応答性の高いユーザーエクスペリエンスを確保するのに最適です。
Q3。なぜこのプロジェクトにRestreamlitを使用するのですか?A. Streamlitは、インタラクティブなWebアプリケーションの作成を簡素化するPythonライブラリです。チャットボット、ダッシュボード、その他のデータ駆動型ツールを構築するためのユーザーフレンドリーなインターフェイスを提供します。私たちのプロジェクトでは、Streamlitはチャットインターフェイスの作成、ユーザー入力の処理、Langchain SQLエージェントによって生成された応答の表示を担当しています。
Q4。このアプローチをMySQL以外のデータベースで使用できますか?A.はい、LangchainのSQL Toolkitは、さまざまなリレーショナルデータベースを使用するように設計されています。このガイドではMySQLに焦点を当てていますが、接続の詳細を変更し、必要に応じてSQL構文を調整することにより、PostgreSQL、SQLite、Oracleなどの他のデータベースにコードを接続することができます。
以上が自動生成クエリのSQLアシスタントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











メタのラマ3.2:マルチモーダルとモバイルAIの前進 メタは最近、ラマ3.2を発表しました。これは、モバイルデバイス向けに最適化された強力なビジョン機能と軽量テキストモデルを特徴とするAIの大幅な進歩です。 成功に基づいてo

ねえ、忍者をコーディング!その日はどのようなコーディング関連のタスクを計画していますか?このブログにさらに飛び込む前に、コーディング関連のすべての問題について考えてほしいです。 終わり? - &#8217を見てみましょう

今週のAIの風景:進歩、倫理的考慮、規制の議論の旋風。 Openai、Google、Meta、Microsoftのような主要なプレーヤーは、画期的な新しいモデルからLEの重要な変化まで、アップデートの急流を解き放ちました

導入 Openaiは、待望の「Strawberry」アーキテクチャに基づいて新しいモデルをリリースしました。 O1として知られるこの革新的なモデルは、推論能力を強化し、問題を通じて考えられるようになりました

導入 鮮やかな絵画や彫刻に囲まれたアートギャラリーを歩くことを想像してください。さて、各ピースに質問をして意味のある答えを得ることができたらどうでしょうか?あなたは尋ねるかもしれません、「あなたはどんな話を言っていますか?

メタのラマ3.2:マルチモーダルAIパワーハウス Metaの最新のマルチモーダルモデルであるLlama 3.2は、AIの大幅な進歩を表しており、言語理解の向上、精度の向上、および優れたテキスト生成機能を誇っています。 その能力t

導入 Mistralは、最初のマルチモーダルモデル、つまりPixtral-12B-2409をリリースしました。このモデルは、Mistralの120億個のパラメーターであるNemo 12bに基づいて構築されています。このモデルを際立たせるものは何ですか?これで、画像とTexの両方を採用できます

SQLの変更テーブルステートメント:データベースに列を動的に追加する データ管理では、SQLの適応性が重要です。 その場でデータベース構造を調整する必要がありますか? Alter Tableステートメントはあなたの解決策です。このガイドの詳細は、コルを追加します
