自然语言转pandas (nl2pandas)
更新时间:2024-08-29
简介
自然语言转pandas (Nl2pandas)这个组件通过理解对表格信息的提问,生成对应语义的可执行Python代码,主要使用Pandas库。它可以用于基于表格的查询,问答等多种场景。
基本用法
这里是一个简单示例,展示如何使用自然语言转Pandas组件:
import os
import appbuilder
#设置环境变量
os.environ["APPBUILDER_TOKEN"] = '...'
#定义表格信息 假设有一个小学学校表格,包含学校名、所属地区、创办时间、类别、学生人数、教职工人数、教学班数量等列。列名后给出示例(例如清华附小是学校名的示例),以及列值类型(字符串类型、数字值类型),最后给出列名的解释。列之间使用换行符分隔。
table_info = '''表格列信息如下:\n学校名 : 清华附小 , 字符串类型,代表小学学校的名称\n所属地区 : 西城区 , 字符串类型,表示该小学学校所在的位置\n创办时间 : 1998 , 数字值类型,表示该小学学校的创办时间\n类别 : 公立小学 , 字符串类型,表示该小学学校所在的类别\n学生人数 : 2000 , 数字值类型,表示该小学学校的学生数量\n教职工人数 : 140 , 数字值类型,表示该小学学校的教职工数量\n教学班数量 : 122 , 数字值类型,表示该小学学校的教学班数量'''
#定义查询问题
query = "海淀区有哪些学校"
query = appbuilder.Message(query)
#定义并运行Nl2pandas实例,得到结果
nl2pandas = appbuilder.Nl2pandasComponent(model="eb-turbo-appbuilder")
answer = nl2pandas(query, table_info = table_info)
参数说明
初始化参数
model
(str): 千帆模型模型名称,例如”eb-turbo-appbuilder“,用于指定千帆模型。
调用参数
query
(Message 必填): 输入问题,一般是针对表格信息的提问,例如'海淀区的小学有哪些'。建议长度是50字以内。table_info
(str 必填): 表格信息,是表格列名以及对应列名的举例和释义。 例如:’表格列信息如下:\n学校名 : 清华附小 , 字符串类型,代表小学学校的名称\n所属地区 : 西城区 , 字符串类型,表示该小学学校所在的位置\n创办时间 : 1998 , 数字值类型,表示该小学学校的创办时间\n类别 : 公立小学 , 字符串类型,表示该小学学校所在的类别\n学生人数 : 2000 , 数字值类型,表示该小学学校的学生数量\n教职工人数 : 140 , 数字值类型,表示该小学学校的教职工数量\n教学班数量 : 122 , 数字值类型,表示该小学学校的教学班数量‘stream
(bool, 可选): 指定是否以流式形式返回响应。默认为Fasle,既blocking的方式返回完整响应。temperature
(float 可选) :默认为 1e-10,模型配置的温度参数。- 返回值:Message 对象,为模型运行后的输出消息。