首頁 >後端開發 >Python教學 >ChatWithSQL — 安全、模式驗證的文字到 SQL Python 函式庫,消除法學碩士的任意查詢風險

ChatWithSQL — 安全、模式驗證的文字到 SQL Python 函式庫,消除法學碩士的任意查詢風險

Susan Sarandon
Susan Sarandon原創
2024-12-05 20:30:12382瀏覽

圖書館: https://pypi.org/project/chatwithsql
GitHub: https://github.com/sathninduk/chatwithsql

隨著軟體的發展,對直覺、安全、高效的資料庫互動的需求呈指數級增長。 ChatWithSQL 是一個突破性的 Python 函式庫,它改變了開發人員與 SQL 資料庫互動的方式。透過將自然語言處理 (NLP) 的強大功能與模式驗證的 SQL 生成和資料檢索相結合,ChatWithSQL 為安全且高效的資料擷取樹立了新的基準。

? ChatWithSQL 有何獨特之處?

文字到 SQL 工具並不新鮮,但大多數都有一個明顯的缺陷:可能產生和執行任意查詢。這帶來了嚴重的風險:

  • 未經授權的資料存取。
  • SQL注入漏洞。
  • 查詢效率低。

ChatWithSQL 透過實作基於模式的驗證方法重新定義了安全性和可靠性。透過確保所有查詢都遵循預先定義的架構,該庫可以消除未經授權的訪問,同時保持無與倫比的效能。

?️ 架構

ChatWithSQL — Secure, Schema-Validated Text-to-SQL Python Library, Eliminating Arbitrary Query Risks from LLMs

?無與倫比的安全性

與傳統的文字到 SQL 系統不同,ChatWithSQL 在執行之前根據嚴格的架構定義驗證每個查詢,確保:

  • 禁止任意 SQL 查詢。
  • 全面的參數清理與驗證。
  • 可降低惡意輸入風險的安全管道。

這種安全第一的方法使 ChatWithSQL 成為尋求簡單性和可信性的開發人員的首選解決方案。

?主要特點

1. 直覺的自然語言介面

寫出以下提示:

「顯示 ID 為 5 的使用者的詳細資料。」
「顯示 2024 年 11 月 25 日的所有訂單」
「用戶 ID 34 的生日是哪一天」
「500美元以上的訂單有哪些?」

讓 ChatWithSQL 處理剩下的事情,將其轉換為可操作的 SQL。

2. 強大的模式驗證

準確定義允許哪些查詢:

query_schema = [
    {
        "description": "Fetch user data by ID",
        "name": "get_user_data",
        "sql": "SELECT * FROM users WHERE id = ?",
        "params": {"id": {"type": "int", "default": None}},
    },
]

僅執行此架構內的查詢,消除了誤用的風險。

3. 與頂尖法學碩士無縫對接

ChatWithSQL 支援領先的語言學習模式 (LLM),包括:

  • OpenAI:GPT-4、GPT-3.5
  • 雙子座
  • LlamaAPI
  • 奧拉馬

這些 LLM 之間的切換就像更改配置一樣簡單。

4. 動態查詢參數

ChatWithSQL 動態擷取、驗證和對應查詢參數,以確保每次結果都準確。

5. 與資料庫無關

無論您使用 PostgreSQL、MySQL、SQLite 或任何其他 SQL 資料庫,ChatWithSQL 透過通用 URI 格式提供支援。

6. 內建可觀察性

透過詳細的日誌記錄,ChatWithSQL 讓偵錯變得輕而易舉:

  • 發現格式錯誤的提示。
  • 驗證查詢建構。
  • 追蹤與資料庫的每次互動。

?快速安裝和設定

安裝 ChatWithSQL

query_schema = [
    {
        "description": "Fetch user data by ID",
        "name": "get_user_data",
        "sql": "SELECT * FROM users WHERE id = ?",
        "params": {"id": {"type": "int", "default": None}},
    },
]

初始化您的執行個體

pip install chatwithsql

執行查詢

from chat_with_sql import ChatWithSQL
chat_with_sql = ChatWithSQL(
    database_url="your_database_url",
    llm="openai",
    model="gpt-3.5-turbo",
    llm_api_key="your_llm_api_key",
    query_schema=[
        {
            "description": "Fetch user by ID",
            "name": "get_user",
            "sql": "SELECT * FROM users WHERE id = ?",
            "params": {"id": {"type": "int", "default": None}},
        },
    ],
)

?為開發人員設計,為規模而構建

用例

  • 分析儀表板:使非技術團隊能夠安全地查詢資料庫。
  • 企業應用程式:為應用程式添加智慧查詢功能,同時保持嚴格的控制。
  • 資料探索:讓分析師能夠透過自然語言存取結構化資料。

進階查詢架構範例

response = chat_with_sql.load_data("Get user details for ID 10.")
print(response)

?為什麼開發人員喜歡 ChatWithSQL

  • 安全性:沒有其他文字到 SQL 解決方案提供如此嚴格的驗證。
  • 靈活性:將其與您最喜歡的法學碩士和資料庫一起使用。
  • 效率:跳過手動編寫 SQL 查詢的麻煩。
  • 簡單性:將自然語言轉換為資料庫能力的單一庫。

?️ 路線圖

目前,ChatWithSQL 僅支援 SELECT 查詢,但計畫將支援擴展到其他 SQL 操作,包括 INSERT、UPDATE 和 DELETE。

此外,該程式庫是為 AI 聊天代理開發全面、免費和開源框架的更廣泛計劃的第一個組成部分。該框架透過將複雜的需求簡化為幾個簡單的步驟,解決了當今軟體工程行業的重要業務需求。

?加入 ChatWithSQL 革命

準備好體驗下一級的資料庫互動了嗎?立即開始使用 ChatWithSQL,為您的應用程式提供智慧、安全且高效的查詢處理能力。

GitHub 儲存庫:ChatWithSQL
支援電子郵件:hello@bysatha.com

貢獻與協作

我們歡迎貢獻!提交拉取請求或報告問題以幫助塑造 ChatWithSQL 的未來。

透過 ChatWithSQL,自然語言以安全、可靠且改變遊戲規則的方式與 SQL 相遇。立即加入運動,將您的申請提升到新的水平!

以上是ChatWithSQL — 安全、模式驗證的文字到 SQL Python 函式庫,消除法學碩士的任意查詢風險的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn