当前位置:   article > 正文

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

texttosql

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

先添加训练数据

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('===========训练完毕===========')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

查看训练数据

train_data = vn.get_training_data()
print('===查看训练数据===\n',train_data)
  • 1
  • 2

在这里插入图片描述
我运行了两次,所以训练数据中有两对记录。
可以看到,训练数据是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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

怎么删除训练数据

  • 删除一条数据 vn.remove_training_data(id = '指定id')
    vn.remove_training_data(id = '357472b0-1dbd-4038-b5e9-dfc50eb6d2de-sql')
    
    • 1
  • 删除所有数据
    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
    • 2
    • 3
    • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/659828
推荐阅读
相关标签
  

闽ICP备14008679号