AI代码编写助手Sketch:理解数据内容的得力工具
Sketch作为一款独特的AI代码编写助手,专为pandas用户量身定制,在数据处理与代码编写领域展现出诸多优势。
一、便捷的使用方式
Sketch的使用极为便捷,无需在IDE中添加插件,短短几秒即可投入使用。只需简单地通过pip install sketch
进行安装,然后导入sketch,之后任何pandas数据框都会注册一个扩展。比如,通过import sketch
导入后,对于已有的pandas数据框,就可以使用其新扩展.sketch
。像.sketch.ask
这个基本的问答系统,能依据数据的汇总统计信息和描述返回文本形式的答案,帮助用户了解数据、获取更好的列名、提出假设性问题等。例如df.sketch.ask("Which columns are integer type?")
就能查询哪些列是整数类型。而.sketch.howto
作为基本的“代码编写”提示,会返回一个可供复制粘贴的代码块,可作为对数据进行各种操作(如清洗数据、归一化、创建新特征、绘图甚至构建模型等)的起点或终点,比如df.sketch.howto("Plot the sales versus time")
可用于绘制销售与时间的关系图。
二、多样的功能特点
- 理解数据上下文:Sketch能够深入理解用户数据的上下文,这使得它所给出的建议相关性大大提高。它并非单纯地生成代码,而是结合数据实际情况给出贴合需求的代码编写提示。
- 多种提示类型:除了上述的
.sketch.ask
和.sketch.howto
,还有.sketch.apply
这种更高级的提示,其在数据生成方面更为有用,可用于解析字段、生成新特征等。不过使用.sketch.apply
时,需要设置OpenAI的免费账户并设置环境变量来提供API密钥。
三、灵活的运行模式
Sketch运行模式十分灵活,目前它借助prompts.approx.dev来实现以最少的设置运行。同时,用户还可以直接使用一些预构建的Hugging Face模型(如当前的MPT-7B和StarCoder),只需从HF下载模型权重,并设置相关环境变量(如设置os.environ['LAMBDAPROMPT_BACKEND'] = 'StarCoder'
、os.environ['SKETCH_USE_REMOTE_LAMBDAPROMPT'] = 'False'
、os.environ['HF_ACCESS_TOKEN'] = 'your_hugging_face_token'
),就可实现完全在本地运行。当然,用户也可以直接使用自己的API密钥调用OpenAI(不使用Sketch的端点),只需设置SKETCH_USE_REMOTE_LAMBDAPROMPT=False
和OPENAI_API_KEY=YOUR_API_KEY
这两个环境变量即可。
四、工作原理
Sketch运用高效的近似算法(数据草图)来快速汇总用户数据,并将这些信息输入到语言模型中。当下,它是通过汇总列并将这些汇总统计信息作为额外的上下文写入代码编写提示中。未来,有望将这些数据草图直接输入到定制的“数据 + 语言”基础模型中,以获取更准确的结果。
总之,Sketch作为AI代码编写助手,以其理解数据内容的特性、多样的功能以及灵活的运行模式,为pandas用户在数据处理与代码编写方面提供了极大的便利。