Text-to-SQL 工具Vanna | 查看训练数据、删除训练数据

1.查看训练数据vn.get_training_data

vn.get_training_data 源码如下,可以看到返回的是df格式的数据

	@abstractmethod
 	def get_training_data(self, **kwargs) -> pd.DataFrame:
	    """
	    Example:
	    ```python
	    vn.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问答对类型,才有question
  • content:sql语句内容

2.删除训练数据 vn.remove_training_data

vn.remove_training_data 源码如下:

	@abstractmethod
    def remove_training_data(id: str, **kwargs) -> bool:
        """
        Example:
        ```python
        vn.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])
    

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-16 12:08:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-16 12:08:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-16 12:08:03       87 阅读
  4. Python语言-面向对象

    2024-03-16 12:08:03       96 阅读

热门阅读

  1. 笔记:12.1 使用sqlplus /as sysdba登录报错ORA-01017

    2024-03-16 12:08:03       40 阅读
  2. 项目示例 - 3.降级熔断 - 2.Sentinel

    2024-03-16 12:08:03       36 阅读
  3. react中使用腾讯地图

    2024-03-16 12:08:03       48 阅读
  4. 解决 ArrayList 的并发问题

    2024-03-16 12:08:03       39 阅读
  5. 【力扣】234. 回文链表

    2024-03-16 12:08:03       51 阅读
  6. leetcode第49题字母异位词分组

    2024-03-16 12:08:03       47 阅读
  7. curl c++ 实现HTTP GET和POST请求

    2024-03-16 12:08:03       49 阅读
  8. MongoDB聚合运算符:$firstN

    2024-03-16 12:08:03       47 阅读
  9. MySQL常见的数据类型

    2024-03-16 12:08:03       41 阅读
  10. 一个干净的SSL连接

    2024-03-16 12:08:03       48 阅读
  11. ajax中各个参数的含义是什么?

    2024-03-16 12:08:03       40 阅读
  12. Linux系统——rsync命令

    2024-03-16 12:08:03       34 阅读
  13. 第二十章 构建和配置 Nginx (UNIX® Linux macOS)

    2024-03-16 12:08:03       40 阅读