从脚本到应用:给 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/8/2 7:17:37 阅读更多 →
金融级机器学习系统上线:从模型部署到生产治理的全链路实践

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

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

2026/7/30 22:47:17 阅读更多 →
Python程序打包为exe的完整指南与实战技巧

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

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

2026/8/1 23:20:38 阅读更多 →

最新新闻

Loop命令行工具:一行命令实现自动化循环执行与文件监控

Loop命令行工具:一行命令实现自动化循环执行与文件监控

1. 项目概述:Loop究竟是什么,为何能引爆GitHub? 如果你最近在GitHub上闲逛,或者关注一些效率工具社区,大概率会看到一个叫“Loop”的项目热度飙升。它的口号简单直接:“一行命令直接上手”,而Gi…

2026/8/2 17:29:15 阅读更多 →
XIAO SAMD21与MicroBlocks:图形化编程快速入门嵌入式开发

XIAO SAMD21与MicroBlocks:图形化编程快速入门嵌入式开发

1. 项目概述:当开源硬件遇上图形化编程如果你手头有一块Seeed Studio的XIAO SAMD21开发板,又对Arduino那套C/C的编程方式感到有些头疼,或者想带小朋友、初学者快速入门嵌入式开发,那么“XIAO SAMD21 与 MicroBlocks”这个组合&…

2026/8/2 17:29:15 阅读更多 →
JSON实战全解析:从规范细节到多语言避坑与高级应用

JSON实战全解析:从规范细节到多语言避坑与高级应用

1. 从“数据搬运工”到“系统粘合剂”:我眼中的JSON干了这么多年开发,从写前端页面到调后端接口,再到设计微服务之间的数据交换,有一个东西几乎无处不在,却又常常被我们习以为常地忽略其精妙之处——那就是JSON。你可能…

2026/8/2 17:29:15 阅读更多 →
微软低调推 OneDrive Photos 应用,功能实用但推广管理欠佳?

微软低调推 OneDrive Photos 应用,功能实用但推广管理欠佳?

OneDrive Photos 应用程序的功能微软推出了一款名为 OneDrive Photos 的全新 Windows 11 应用程序,可访问、查看和编辑 OneDrive 中的照片,还能通过人脸识别技术将含相同人物的照片分组。本周早些时候,作者在 Windows 11 电脑开始菜单发现该应…

2026/8/2 17:29:15 阅读更多 →
Windows Claude Code 排错清单:路径、PowerShell、代理和更新

Windows Claude Code 排错清单:路径、PowerShell、代理和更新

如果你在 Windows 上装 Claude Code,最容易踩的坑通常不是模型能力,而是环境。Shell 用错、PATH 没生效、公司代理拦截、C:\Users 这类路径被转义,都会让一个本来简单的命令变成半天排查。 GitHub 上 Claude Code 最新 release 是 v2.1.220&a…

2026/8/2 17:29:15 阅读更多 →
DeepTutor:如何打造你的终极AI学习导师,开启个性化智能辅导新时代

DeepTutor:如何打造你的终极AI学习导师,开启个性化智能辅导新时代

DeepTutor:如何打造你的终极AI学习导师,开启个性化智能辅导新时代 【免费下载链接】DeepTutor DeepTutor: Lifelong Personalized Tutoring. https://deeptutor.info/. 项目地址: https://gitcode.com/GitHub_Trending/dee/DeepTutor 你是否渴望拥…

2026/8/2 17:28:09 阅读更多 →

日新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →