强化指南
默认的 Vanna 设置旨在让您轻松快速地启动并运行个人助手/概念验证。如果您想将 Vanna 公开给其他用户,可以按照以下指南强化系统。
登录
入门级前端没有登录系统。如果您正在实现自己的前端,则应该实现一个登录系统。
使用适当的数据库凭据
运行 vn.generate_sql
可以生成任何 SQL。如果您允许最终用户运行此函数,则应使用具有适当范围权限的数据库凭据。
对于大多数数据分析用例,您希望使用只读数据库用户。根据您的具体要求,您可能还需要使用行级安全性 (RLS),这因数据库而异。
Plotly 代码
运行 vn.generate_plotly_code
可以生成任意 Python 代码,这可能是创建图表所必需的。如果您将此函数暴露给最终用户,则应使用沙盒环境。
您还可以覆盖 vn.generate_plotly_code
以仅返回一个空字符串。如果这样做,那么 vn.get_plotly_figure
将使用确定性默认值。
内置 Web 应用中的执行流程
sql = vn.generate_sql(question=...)
: 生成任何 SQL 语句vn.is_sql_valid(sql=...)
: 用于检查是否应运行 SQL。您可以根据您的用例覆盖此函数。df = vn.run_sql(sql=...)
: 运行 SQL 并返回 pandas DataFrameplotly_code = vn.generate_plotly_code(question=..., sql=..., df_metadata=...)
: 生成任何将生成 plotly 图形的 Python 代码fig = vn.get_plotly_figure(plotly_code=..., df=...)
: 运行 plotly 代码并返回 plotly 图形
覆盖特定函数
有关如何覆盖特定函数,请参阅行为定制文档。