头图

我是一个老程序员,今年 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 编程的一个辅助工具。

我已经将这款工具,推荐给了我微信好友列表里,那些在传统企业上班的朋友们,希望能帮助他们提高工作效率。


注销
1k 声望1.6k 粉丝

invalid