展示HN: Sqlsure – AI生成SQL的确定性语义检查
人工智能为您编写SQL。sqlsure确保它是正确的。一个查询可以是完全有效的,可以无错误运行,并返回一个默默错误的数字——由于连接而导致的收入重复计算、一个求平均的和、一个患者标识符暴露。数据库无法捕捉到这一点。代码检查工具无法捕捉到这一点。审查自己SQL的LLM也无法捕捉到这一点。sqlsure可以——确定性地,在0.1毫秒内,在查询运行之前。证据,而不是承诺:我们对每个文本到SQL模型进行评分的两个基准的黄金答案运行了sqlsure。2568个专家编写的查询,45个标志,零假警报——包括一个BIRD开发的黄金答案,它在sqlsure针对的确切错误类别中被证明错误8倍,以及一个已上报的模式缺陷。它是如何工作的sqlsure根据您的团队已经声明的事实来判断SQL——dbt唯一测试变成粒度,关系测试变成连接基数,一行元标签标记可以安全求和的内容。不需要学习新语言,也不需要手动维护模型。规则是字典查找,而不是LLM调用:相同的输入,每次都得到相同的裁决,离线处理。每次拒绝都会带有可机器操作的修复,因此AI代理自我修复:草拟→检查→修复→检查→执行。在我们的基准测试中,逐字应用修复有效率达到10/10次。快速入门使用pip安装sqlsure从sqlsure导入SemanticModel,检查违规 = 检查(sql,model) # []意味着语义安全或者克隆并运行30秒的演示:python check.py # 拒绝5个错误查询,1个批准——带有修复的python -m sqlsure.scan path/to/dbt-repo --report report.md # 审核任何dbt库 三个门,一个引擎 1. CI门——当PR重复计算时阻止合并:python -m sqlsure.cli --model model.json query.sql # 在违规时退出1 2. MCP服务器——您的AI代理必须在执行前通过检查:claude mcp add sqlsure -- python -m sqlsure.mcp_server --model /abs/path/model.json 请查看docs/MCP.md以获取工具参考和代理循环模式。 3. 库——在任何文本到SQL产品或代理框架中嵌入check()。一个嵌入式SemanticGate包装Vanna/WrenAI风格的生成器;一个语义评估指标对NL2SQL输出进行评分,其中执行精度是盲目的。 规则(v0.1) 规则 严重性 捕获 FANOUT错误 在一对多连接后可加性度量的SUM/COUNT CHASM错误 两个或多个粉碎连接互相相乘 ADDITIVITY错误 非可加测量的SUM(比率、平均值) SEMI_ADDITIVE错误 在其快照维度上的余额/普查求和 JOIN_KEY错误 在没有声明关系的列上连接 CROSS_JOIN错误 没有谓词的连接 WEIGHTED_AVG警告 平均值在粉碎中悄悄重新加权 UNDECLARED_JOIN警告 在没有声明关系的连接(无法验证 ≠ 安全) SENSITIVE_COLUMN政策 PHI/PII列在查询输出中暴露 当sqlsure无法验证某件事时,它会说“无法验证”——绝不会“看起来不错”。诚实的不确定性是一种特性。 信任属性 确定性——相同的SQL + 相同的规则书 = 相同的裁决,总是;规则是字典查找,可以逐行审计 离线——零网络调用;您的SQL永远不会离开您的机器 无数据访问——解析查询文本;从不连接到数据库 无遥测——从不收集任何信息(SECURITY.md) 供应链——发布仅通过PyPI 分发 从带有公共CI运行的标记提交中信任的发布(OIDC);两个运行时依赖项 规则书的来源 dbt(今天有效):manifest.json或schema.yml——团队已经编写的测试变为可执行语义,零配置 普通的PK/FK声明(今天有效——推动基准审计) 现场数据库本身(今天有效):根本没有语义层?sqlsure.introspect从目录构建规则书——SQLite PRAGMAs或信息模式PK/FK(postgres/mysql)。检查BIRD自己的数据库文件恢复了基准已发布架构中缺失的2个外键(bird-bench/mini_dev#37)来自sqlsure。 introspect导入model_from_sqlite model = model_from_sqlite(“app.db”) # PK -> 粒度,FK -> 连接边 Hand-written JSON——model.example.json OSI和WrenAI MDL(工作加载项在integrations/):OSI在规范发布的示例上进行了演示;WrenAI MDL在WrenAI自己的发布示例清单上进行了演示——primaryKey → 粒度,关系 joinType + 条件 → 连接边,立方体措施 → 可加性 立方体,Snowflake 语义视图——路线上适配器;引擎仅见一个SemanticModel 在16/16规则测试中验证,100%召回率/0%假阳性在配对基准上(docs/METRICS.md) 真实生产库(Mattermost 的仓库,Fivetran 包,dbt 的jaffle shop)— docs/TEST-REPORTS.md Spider + BIRD黄金查询——上述零噪声外部审计 了解更多 docs/EVIDENCE.md — 它为您做了什么,每项声明链接到可重跑的测量 docs/ARCHITECTURE.md — 它是如何物理工作的,ELI5 → 神级,带有真实的中间输出 docs/FOR-DUMMIES.md — 从零开始的每个概念 docs/INTEGRATIONS.md — GitHub行动、预提交,MCP,S
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡