自然语言转pandas (nl2pandas)

简介

自然语言转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 对象,为模型运行后的输出消息。