1.查看训练数据vn.get_training_data
vn.get_training_data 源码如下,可以看到返回的是df
格式的数据
@abstractmethoddef get_training_data(self, **kwargs) -> pd.DataFrame:"""Example:```pythonvn.get_training_data()```This method is used to get all the training data from the retrieval layer.Returns:pd.DataFrame: The training data."""pass
先添加训练数据
vn.train(ddl="""
CREATE TABLE IF NOT EXISTS people (name INT PRIMARY KEY COMMENT '姓名', gender INT COMMENT '性别(男性=1/女性=2)',age INT COMMENT '年龄',
""")
## 添加了 3 条测试数据
vn.train(ddl="""
INSERT INTO people (name, gender, age) VALUES
('张三', '1', 18,),
('李四', '2', 30,),
('王五', '1', 26,),
""") vn.train(question='张三的年龄是多少?',sql='SELECT age FROM people WHERE name = "张三"')
print('===========训练完毕===========')
查看训练数据
train_data = vn.get_training_data()
print('===查看训练数据===\n',train_data)
我运行了两次,所以训练数据中有两对记录。
可以看到,训练数据是df
格式,有四列:id、qustion、content 和 training_data_type组成。
training_data_type
:有 sql 和 ddl两类。(只是我用的训练方式是这两类,实际可能有4类,不懂的同学可以看这篇博客的 第3部分,向量库有4种格式。Text-to-SQL 工具Vanna + MySQL本地部署 | 数据库对话机器人 )- DDL(Data Definition Language)语句: 数据定义语言,主要是进行定义/改变表的结构、数据类型、表之间的链接等操作。常用的语句关键字有 CREATE、DROP、ALTER 等。
- SQL 问答对
id
:是主要标识,删除时用来指定的question
:SQL问答对类型,才有questioncontent
:sql语句内容
2.删除训练数据 vn.remove_training_data
vn.remove_training_data 源码如下:
@abstractmethoddef remove_training_data(id: str, **kwargs) -> bool:"""Example:```pythonvn.remove_training_data(id="123-ddl")```This method is used to remove training data from the retrieval layer.Args:id (str): The ID of the training data to remove.Returns:bool: True if the training data was removed, False otherwise."""pass
怎么删除训练数据
- 删除一条数据
vn.remove_training_data(id = '指定id')
vn.remove_training_data(id = '357472b0-1dbd-4038-b5e9-dfc50eb6d2de-sql')
- 删除所有数据
train_data = vn.get_training_data() id_list = train_data['id'].values for i in range(len(id_list)):vn.remove_training_data(id=id_list[i])