首页 >后端开发 >Python教程 >ChatWithSQL — 安全、模式验证的文本到 SQL Python 库,消除法学硕士的任意查询风险

ChatWithSQL — 安全、模式验证的文本到 SQL Python 库,消除法学硕士的任意查询风险

Susan Sarandon
Susan Sarandon原创
2024-12-05 20:30:12379浏览

图书馆: 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