加固指南
默认的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图表
重写特定函数
请参阅行为定制文档了解如何覆盖特定函数。