Skip to content

常见问题

我可以在没有API密钥的情况下使用Vanna吗?

是的,Vanna API 密钥仅在您使用 Vanna 托管的组件(即 LLM 或向量存储)时才需要。如果您已经可以访问 LLM 和向量存储,您可以在没有 API 密钥的情况下使用 Vanna Python 包。

我们免费提供gpt-3.5-turbo,所以如果你正在寻找一种快速简便的方法来开始而不必支付费用,你可以注册一个免费的Vanna API密钥。

如何获取Vanna API密钥?

获取API密钥

如何创建一个Vanna“模型”?

在这里创建一个Vanna模型

我可以在“离线”状态下运行这个吗?

是的。你可以将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 太慢了,它在笔记本上无法停止加载

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

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

使用 vn.get_training_data() 查看您的训练数据的数据框。每当您运行 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以特定格式接收训练计划。基本上,您的计划数据框必须包含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) 大型语言模型可能会出现幻觉,如果问题持续存在,请尝试使用不同的大型语言模型。