我是一个老程序员,今年 42 岁,仍然在一线编程领域工作。
2022 年底以 ChatGPT 为代表的 AI 工具席卷整个业界后,我也使用了不少能提高办公效率的 AI 工具。比如程序员的好帮手,来自微软的 Copilot.
这款名叫小浣熊的 AI 办公工具,我之前并没有听说过。
在 InfoQ 社区首页看到它出自商汤旗下,我眼前一亮,觉得这款工具肯定不会差。于是就花了一点时间试用了一番,通过本文同各位同行交流。
我手头正好有个数据分析的实际需求。
我平时坚持技术写作,每一篇文章写好后,我都把文章标题维护到一个 Excel 文件中。不知不觉也有 5000 多篇了。
于是我想了解下,这 5000 多篇文章,大致的分类情况。
打开小浣熊工具集合里的办公小浣熊:
https://raccoon.sensetime.com/office
选择本地 Excel 文件进行上传。
然后发出指令:
我上传的 Excel,第一列为文章标题,请你分析这个 Excel 里总共的文章数量,并且根据文章标题,智能地将这些文章进行归类,然后绘制出饼状图,展示每一类的文章,占文章总数的百分比。
我们在小浣熊办公助手里,能看到其自动生成 Python 代码,使用的 pands 库进行数据分析。
很快就看到了数据分析的结果:
分析结果显示,编程类文章约占五分之一,设计类占 16.1%, 而其他类文章占据了五分之三。
我觉得这个结果不太准确。因为事实上,我的大部分文章,都是和计算机编程技术相关的。而现在 60% 的文章,被分类成了「其他」。
那么来看看生成这段结果的 Python 代码:
# 重命名列名以便于处理
df.columns = ['文章标题']
# 计算文章总数
total_articles = df['文章标题'].nunique()
# 对文章标题进行分类
# 这里我们可以尝试使用关键词匹配的方式进行分类
# 定义一些关键词和对应的分类
categories = {
'编程': ['编程', '代码', '开发', '开发', '算法', '数据结构', '软件', '系统', '技术', '技术', '技术', '技术'],
'设计': ['设计', 'UI', 'UX', '图形', '界面', '视觉'],
'产品': ['产品', '运营', '市场', '用户', '体验'],
'其他': []
}
# 为每篇文章分配一个类别
def categorize_article(title):
for category, keywords in categories.items():
if any(keyword in title for keyword in keywords):
return category
return '其他'
df['分类'] = df['文章标题'].apply(categorize_article)
# 计算每个分类的文章数量
category_counts = df['分类'].value_counts()
# 显示分类结果和文章总数
total_articles, category_counts
可以看出,这段代码定义了一个字典数据结构 categories,键为硬编码的编程,设计,产品和其他四个字符串,值为数组。
然后遍历 5000 多篇文章的标题,如果标题至少包含这四个类别对应数组里任意一个元素,就认为该文章属于该类别。
举个例子,假设有篇文章的标题为 SAP UI5 List Report Lazy Load 技术介绍。因为标题里包含技术这个字符串,而小浣熊办公助手生成的硬编码的编程类别里,也定义了一个叫做技术的元素。
因此二者匹配,SAP UI5 List Report Lazy Load 技术介绍这篇文章,被划分到编程的类别范畴内。
于是我调整了提示指令,新的内容如下:
你好,我阅读了你生成的 Python 源代码。我发现你是通过简单的字符串匹配方法,即分析每篇文章标题,是否包含了硬编码的类别关键字,来对文章进行分类。
我现在想请你换一种方式,通过对文章标题,进行语义分析,来对其进行分类。
我举个例子,有这样一篇文章标题:SAP UI5 List Report 的 Lazy loading 实现机制分析。
虽然文章标题,并没有出现类似“技术”的关键字。
但是在编程领域,Lazy loading 是一种公认的异步加载数据技术,因此这篇文章,应该被划分到技术文章的范畴。
请你根据我上述的例子,重新对 Excel 里的文章进行分类。
然而当我发出指令后,收到提示消息:
当前会话已过期,请打开新会话。
这就稍稍有点影响用户体验了,要知道 ChatGPT 可是没有这个限制的,我们可以随时对一个现成对话,展开追加交谈。
于是创建一个新的对话。再次向小浣熊发出指令后,发现其处理逻辑,仍然采取之前的硬编码关键词+字符串匹配的方式来完成:
不过瑕不掩瑜,小浣熊办公助手支持用户采用自然语言的方式来发送指令,对于那些没有任何编程基础,但仍然有需求使用 AI 工具来辅助办公的用户来说,仍然能够发挥非常大的作用。
下面再尝试用小浣熊助手解决另一个实际办公需求。
有个大姐向我求助,她每天有很多 Word 文件需要处理。每个文件的初始内容只有正文,她需要逐一打开每个文件,进行重复操作。比如添加正文标题,设置页眉,调整段落格式等等。
有没有可能通过工具来自动化这些繁琐的流程?
我的第一反应是可以用 RPA 解决此类需求。
不过考虑到有些企业里,员工使用的办公电脑,不能随意安装一些其他的客户端。
那么,有没有办法通过浏览器端运行的工具,来实现自动化?
使用小浣熊办公来尝试一下。
我先制作好了一个 Word 文件作为模版:页眉字体大小为 14,字体类型为宋体,背景色为黄色。
发出指令:
我上传了一个 Word 文档给你。文章的页眉字体类型为宋体,字体大小为 14,字体背景颜色为黄色。请你记住这个设置。
这里我显式要求它记住这个设置。
通过对话,小浣熊成功将模版文件页眉的字体类型和字体大小解析了出来。
从生成的代码看,小浣熊将解析出来的页眉字体设置,分别存储到了三个变量中。
继续测试,给小浣熊提供第二个文件。我期望它能够把“第二篇文章,把这段文字设置为页眉”这句话,设置为页眉,并且按照第一个模版文件中包含的页眉参数,进行同样的设置。
指令如下:
我上传了一个 Word 文档给你。请你按照前一篇 Word 文档的页眉设置属性,比如字体类型,字体大小,字体颜色,将这个 Word 文档的第一句话,设置为该 Word 文档的页眉。
从自动生成的 Python 代码看,小浣熊之前从第一个文档里解析出来的页眉设置,存储在变量 header_font.name 和 header_size 中,然后将这些值,赋给第二个文档的页眉。
理论上看这个处理方式没有问题。不过打开修改后的文件,发现页眉的字体类型和大小,并没有修改成期望中的宋体和 14.
我们再将小浣熊生成的解析第一个模版 Word 文件的 Python 代码,拷贝到本地,发现可以直接运行,看来小浣熊生成代码指令的质量确实很高。
并且从 Python 调试器里,能看到确实成功将宋体和 14 这两个属性提取出来了。
看来在同一个上下文的两次对话里,小浣熊 Python 代码里全局变量的值保存处理,有一点小小的问题。
不过这个问题也不大,因为我们可以把要设置的页眉属性,直接通过指令的方式,发送给小浣熊即可。
从体验过程中我发现,小浣熊根据自然语言发布的指令,生成的 Python 代码质量非常高。因此除了作为办公助手之外,它也可以用来作为 Python 零基础的学习者,想入门 Python 编程的一个辅助工具。
我已经将这款工具,推荐给了我微信好友列表里,那些在传统企业上班的朋友们,希望能帮助他们提高工作效率。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。