vanna.base.base
class VannaBase(abc.ABC)
提供使用继承创建 ABC 的标准方法的辅助类。
def generate_questions(self, **kwargs) -> list[str]:
示例
vn.generate_questions()
生成可以向 Vanna.AI 提出的问题列表。
@abstractmethod
def get_sql_prompt( self, question: str, question_sql_list: list, ddl_list: list, doc_list: list, **kwargs):@abstractmethod
def get_followup_questions_prompt( self, question: str, question_sql_list: list, ddl_list: list, doc_list: list, **kwargs):@abstractmethod
def generate_plotly_code( self, question: str = None, sql: str = None, df_metadata: str = None, **kwargs) -> str:
def connect_to_snowflake( self, account: str, username: str, password: str, database: str, role: Optional[str] = None, warehouse: Optional[str] = None):
def connect_to_postgres( self, host: str = None, dbname: str = None, user: str = None, password: str = None, port: int = None):
使用 psycopg2 连接器连接到 postgres。这只是一个设置 [vn.run_sql
][vanna.run_sql] 的辅助函数。示例:
vn.connect_to_postgres(
host="myhost",
dbname="mydatabase",
user="myuser",
password="mypassword",
port=5432
)
参数
- host (str): postgres 主机。
- dbname (str): postgres 数据库名称。
- user (str): postgres 用户。
- password (str): postgres 密码。
- port (int): postgres 端口。
def connect_to_bigquery(self, cred_file_path: str = None, project_id: str = None):
使用 bigquery 连接器连接到 gcs。这只是一个设置 [vn.run_sql
][vanna.run_sql] 的辅助函数。示例:
vn.connect_to_bigquery(
project_id="myprojectid",
cred_file_path="path/to/credentials.json",
)
参数
- project_id (str): gcs 项目 ID。
- cred_file_path (str): gcs 凭据文件路径
def ask( self, question: Optional[str] = None, print_results: bool = True, auto_train: bool = True) -> Optional[Tuple[Optional[str], Optional[pandas.core.frame.DataFrame], Optional[plotly.graph_objs._figure.Figure]]]:
def train( self, question: str = None, sql: str = None, ddl: str = None, documentation: str = None, plan: vanna.types.TrainingPlan = None) -> str:
示例
vn.train()
使用问题及其相应的 SQL 查询训练 Vanna.AI。如果您不带参数调用它,它将检查您是否连接到数据库,并尝试训练该数据库的元数据。如果您使用 sql 参数调用它,则等同于 [add_sql()
][vanna.add_sql]。如果您使用 ddl 参数调用它,则等同于 [add_ddl()
][vanna.add_ddl]。如果您使用 documentation 参数调用它,则等同于 [add_documentation()
][vanna.add_documentation]。此外,您可以传递一个 [TrainingPlan
][vanna.TrainingPlan] 对象。使用 [vn.get_training_plan_experimental()
][vanna.get_training_plan_experimental] 获取训练计划。
参数
- question (str): 用于训练的问题。
- sql (str): 用于训练的 SQL 查询。
- ddl (str): DDL 语句。
- documentation (str): 用于训练的文档。
- plan (TrainingPlan): 用于训练的训练计划。
def get_training_plan_snowflake( self, filter_databases: Optional[List[str]] = None, filter_schemas: Optional[List[str]] = None, include_information_schema: bool = False, use_historical_queries: bool = True) -> vanna.types.TrainingPlan:
def get_plotly_figure( self, plotly_code: str, df: pandas.core.frame.DataFrame, dark_mode: bool = True) -> plotly.graph_objs._figure.Figure:
示例
fig = vn.get_plotly_figure(
plotly_code="fig = px.bar(df, x='name', y='salary')",
df=df
)
fig.show()
从数据框和 Plotly 代码获取 Plotly 图形。
参数
- df (pd.DataFrame): 要使用的数据框。
- plotly_code (str): 要使用的 Plotly 代码。
返回
plotly.graph_objs.Figure: Plotly 图形。
提供使用继承创建 ABC 的标准方法的辅助类。
继承的成员
- VannaBase
- config
- run_sql_is_set
- generate_sql
- generate_followup_questions
- generate_questions
- generate_embedding
- add_question_sql
- add_ddl
- add_documentation
- get_training_data
- remove_training_data
- get_sql_prompt
- get_followup_questions_prompt
- submit_prompt
- generate_question
- generate_plotly_code
- connect_to_snowflake
- connect_to_sqlite
- connect_to_postgres
- connect_to_bigquery
- run_sql
- ask
- train
- get_training_plan_generic
- get_training_plan_snowflake
- get_plotly_figure