从脚本到应用:给 Web 加个安全的问答接口
正要交付给业务方使用时我们还需要一个 Web 接口并加上安全认证。这正是 Vanna 中文文档里 web-app-auth 示例所着重强调的。下面是一个用 Flask 搭建的最小安全接口思路简化版from flask import Flask, request, jsonifyimport vanna as vnapp Flask(name)vn.set_api_key(‘your-api-key’)vn.connect_to_sqlite(‘prod.db’)vn.train(…) # 已训练简单的 token 认证装饰器def require_auth(f):def decorated(*args, **kwargs):token request.headers.get(‘Authorization’)if token ! ‘Bearer my-secret-token’:return jsonify({“error”: “Unauthorized”}), 401return f(*args, **kwargs)return decoratedapp.route(‘/ask’, methods[‘POST’])require_authdef ask():question request.json.get(‘question’)# allow_llm_to_see_dataFalse 可以先只生成SQL由你审核后再执行sql vn.generate_sql(question)# 在这里可以加入权限校验如表白名单、Limit 强制添加等if not sql.lower().startswith(‘select’):return jsonify({“error”: “Only SELECT allowed”}), 403df vn.run_sql(sql)return jsonify({“sql”: sql, “data”: df.to_dict()})几个关键的安全实践只给数据库只读账户Vanna 连接的数据库账号永远不要给 DROP、DELETE 权限。SQL 白名单校验在 run_sql 前用正则确保只执行 SELECT 语句并强制加上 LIMIT 1000。按用户注入行级过滤在生成 SQL 后自动拼接 WHERE tenant_id ‘当前用户所属租户’实现数据隔离。这些手段在 Vanna 的文档中都有详尽的最佳实践确保你能把 AI 的能力安全地封装成产品功能而不是制造一个 SQL 注入的后门。凭什么不自己从零撸你可能会说“我用 LangChain 的 SQL Agent或者直接拼 Prompt 调 GPT-4o也能跑起来呀。” 确实但 LangChain 的 Agent 更加通用且重面向 SQL 场景时往往需要你写大量脚手架代码去管理 Schema 上下文、历史缓存、连接池等。而 Vanna 专注一件事成为连接数据库和 LLM 最高效的那根管道。它用简短的代码量提供了开箱即用的训练机制、向量记忆和结果缓存让你能把精力放在理解业务问题本身。写在最后Vanna 正在让自然语言查数据从一个需要整个团队啃半年的项目变成一名后端工程师一个下午就能集成完的特性。它把最复杂的语义理解、SQL 生成、上下文检索打包成了一个优雅的 Python 库同时又把模型和存储的掌控权完整地交到了你手上。下次产品经理再拍出那个搜索框需求时你可以云淡风轻地回一句“好啊下班前给你 demo。”

相关新闻

Ghibli-Fication与MCP:面向复杂系统决策的数学建模实战

Ghibli-Fication与MCP:面向复杂系统决策的数学建模实战

1. 项目概述:这不是一次技术杂烩,而是一场跨学科方法论的实战拆解“LAI #70: Math Behind Ghibli-Fication, MCP, Deep Research Tools, and Quantum!”——这个标题乍看像四块拼图被随手扔进一个盒子里:吉卜力动画风格、数学建模、MCP&#…

2026/7/19 4:06:16 阅读更多 →
金融级机器学习系统上线:从模型部署到生产治理的全链路实践

金融级机器学习系统上线:从模型部署到生产治理的全链路实践

1. 为什么“模型上线”不是终点,而是系统性风险的起点?你有没有经历过这样的场景:凌晨两点,手机突然震动,钉钉消息一条接一条弹出来——“风控决策延迟超时”“用户申请失败率飙升至32%”“实时反欺诈服务响应时间突破…

2026/7/19 4:06:16 阅读更多 →
Python程序打包为exe的完整指南与实战技巧

Python程序打包为exe的完整指南与实战技巧

1. Python程序打包为exe的完整指南作为一名长期使用Python开发工具的开发者,我经常需要将写好的脚本分享给没有Python环境的同事或客户。这时候,把.py文件打包成.exe可执行文件就成了刚需。今天我就来分享这个过程中积累的实战经验。PyInstaller是目前最…

2026/7/19 4:06:16 阅读更多 →

最新新闻

Nemo Skills合成数据生成:如何创建高质量的数学、代码和科学数据集

Nemo Skills合成数据生成:如何创建高质量的数学、代码和科学数据集

Nemo Skills合成数据生成:如何创建高质量的数学、代码和科学数据集 【免费下载链接】Skills A project to improve skills of large language models 项目地址: https://gitcode.com/gh_mirrors/ne/Skills Nemo Skills是一个强大的开源框架,专门用…

2026/7/19 14:53:00 阅读更多 →
09 AI 写 SQL:把需求描述丢进去,生产级SQL就出来了

09 AI 写 SQL:把需求描述丢进去,生产级SQL就出来了

摘要:本文分享了作者作为十年经验后端开发者,如何利用AI工具(如Cursor)高效处理SQL相关工作的实战经验。文章通过四个典型场景——业务需求翻译为SQL、慢查询优化、复杂统计报表编写、SQL与ORM代码互转——展示了AI在SQL编写中“更…

2026/7/19 14:53:00 阅读更多 →
Talisman API参考手册:所有函数与方法的详细说明

Talisman API参考手册:所有函数与方法的详细说明

Talisman API参考手册:所有函数与方法的详细说明 【免费下载链接】talisman Straightforward fuzzy matching, information retrieval and NLP building blocks for JavaScript. 项目地址: https://gitcode.com/gh_mirrors/tal/talisman 📖 Talis…

2026/7/19 14:53:00 阅读更多 →
rtsp-stream黑名单机制:如何防止恶意请求与资源保护

rtsp-stream黑名单机制:如何防止恶意请求与资源保护

rtsp-stream黑名单机制:如何防止恶意请求与资源保护 【免费下载链接】rtsp-stream Out of box solution for RTSP - HLS live stream transcoding. Makes RTSP easy to play in browsers. 项目地址: https://gitcode.com/gh_mirrors/rt/rtsp-stream 在RTSP流…

2026/7/19 14:53:00 阅读更多 →
实战idevicerestore:突破iOS固件恢复的技术边界

实战idevicerestore:突破iOS固件恢复的技术边界

实战idevicerestore:突破iOS固件恢复的技术边界 【免费下载链接】idevicerestore Restore/upgrade firmware of iOS devices 项目地址: https://gitcode.com/gh_mirrors/id/idevicerestore 当iOS设备陷入白苹果循环,当测试环境需要特定固件版本&a…

2026/7/19 14:53:00 阅读更多 →
rules_foreign_cc与CI/CD集成:自动化构建和测试的完整流程

rules_foreign_cc与CI/CD集成:自动化构建和测试的完整流程

rules_foreign_cc与CI/CD集成:自动化构建和测试的完整流程 【免费下载链接】rules_foreign_cc Build rules for interfacing with "foreign" (non-Bazel) build systems (CMake, configure-make, GNU Make, boost, ninja, Meson) 项目地址: https://git…

2026/7/19 14:51:59 阅读更多 →

日新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/19 0:00:40 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/19 0:00:40 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/19 0:00:40 阅读更多 →

月新闻