分享

一个老程序员对小浣熊 AI 办公助手的使用体验

 汪子熙 2024-07-14 发布于上海

我是一个老程序员,今年 42 岁,仍然在一线编程领域工作。

2022 年底以 ChatGPT 为代表的 AI 工具席卷整个业界后,我也使用了不少能提高办公效率的 AI 工具。比如程序员的好帮手,来自微软的 Copilot.

这款名叫小浣熊的 AI 办公工具,我之前并没有听说过。

在 InfoQ 社区首页看到它出自商汤旗下,我眼前一亮,觉得这款工具肯定不会差。于是就花了一点时间试用了一番,通过本文同各位同行交流。

我手头正好有个数据分析的实际需求。

我平时坚持技术写作,每一篇文章写好后,我都把文章标题维护到一个 Excel 文件中。不知不觉也有 5000 多篇了。

于是我想了解下,这 5000 多篇文章,大致的分类情况。

打开小浣熊工具集合里的办公小浣熊:

https://raccoon./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 编程的一个辅助工具。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多