跳到内容

常见问题解答

这是开源的吗?

是的。本文档指的是 Vanna OSS,它是开源的。如果您正在寻找我们的托管版本 Vanna Cloud,请访问 Vanna Cloud

我可以“离线”运行吗?

是的。您可以将 Vanna 与 Ollama 一起使用,这使您能够离线运行您的 LLM;对于向量存储,您可以使用 ChromaDB。如果您实际上在没有互联网连接的机器上运行(即处于隔离网络中),您可能需要对 ChromaDB 进行一些调整以预下载嵌入函数的权重。同样,您可能需要预下载 LLM 的权重。

我可以将其与我的 SQL 数据库一起使用吗?

是的。Vanna 适用于任何您可以使用 Python 连接的 SQL 数据库(应该包括所有数据库)。Vanna 包含许多预构建的连接器,您可以使用它们通过一行代码连接到数据库,但您始终可以自定义连接。

Vanna 查询数据库所必需的只是一个名为 vn.run_sql 的函数,该函数接收 SQL 查询并返回一个 pandas DataFrame。如果您能编写一个执行此操作的函数,您就可以将 Vanna 与您的数据库一起使用。这是一个示例

import pandas as pd
import psycopg2

def run_sql(sql):
    conn = psycopg2.connect(
        host="localhost",
        database="my_database",
        user="my_user",
        password="my_password"
    )
    return pd.read_sql(sql, conn)

vn.run_sql = run_sql
vn.run_sql_is_set = True

如何自定义 ChromaDB 路径?

您可以在配置对象中传递一个 'path' 参数

from vanna.chromadb.chromadb_vector import ChromaDB_VectorStore

class MyVanna(ChromaDB_VectorStore):
    def __init__(self, config=None):
        ChromaDB_VectorStore.__init__(self, config=config)

vn = MyVanna(config={'path': '/path/to/chromadb'})

我相信这六个常见问题非常常见,而原始的常见问题解答并未涵盖

vn.ask 太慢了,在 notebook 中一直加载不停

这可能有很多原因,但以下是最常见的:1. Plotly 无法生成数据的图表,设置参数 visualize=False 2. LLM 可能没有响应,如果您使用本地 LLM,请检查您的 API 3. SQL 引擎可能已耗尽资源,请咨询您的数据库管理员

如何查看我的训练数据?如何编辑它?

使用 vn.get_training_data() 查看您的训练数据的 dataframe。您可以在运行 vn.askvn.generate_sql 时随时添加训练数据,并设置 auto_train = True。您可以使用 vn.remove_training_data(id='训练数据行id') 删除训练数据。您可以遍历 vn.get_training data 中的所有 id 来全部删除。

我可以要求 Vanna 总结查询结果或按我的意愿使用查询结果吗?

在 Vanna 的最新更新中,我们添加了额外的 LLM 功能。您可以在此处查看 链接

如果我的 SQL 数据库不在文档中列出的数据库之列,我该如何将其连接到 Vanna?

您可以连接到它们,但您需要实现 此处 列出的方法

当我尝试运行训练计划时,Vanna 无法停止训练或不进行训练?

这可能有很多原因,最常见的是:1) 您的训练数据大于模型的上下文窗口,尝试截断计划或一次处理一个 DDL 语句 2) Vanna 接收特定格式的训练计划。基本上,您的计划 dataframe 必须包含 SELECT * FROM INFORMATION_SCHEMA.COLUMNS 中的所有列 3) 训练计划中可能存在损坏或异常语句

每当我执行 vn.ask()vn.generate_sql() 时,Vanna 什么都不返回,只返回一个错误?或者 Vanna 返回包含奇怪字符字符串的乱码语句。

可能的原因如下:1) Vanna 尚未在 SQL 语句上进行训练 2) 训练数据中存在损坏,例如,SQL 训练中可能添加了一些非 SQL 语句。某些示例可能包含意外字符,尝试删除部分数据或使用 vn.get_related_sql()vn.get_related_ddl() 来查看它引用的是训练数据中的哪个示例 3) LLM 可能出现幻觉,如果问题持续存在,请尝试使用不同的 LLM。

Vanna Logo Vanna.AI

只需提问即可从数据库中获取洞察的最快方法