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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/799040.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web 性能入门指南-1.2 分析在线零售 Web 性能及优化方向

让顾客满意是零售业成功的秘诀。事实证明,提供快速、一致的在线体验可以显著提高零售商关心的每项指标——从转化率和收入到留存率和品牌认知度。 本文大纲: 页面速度影响在线零售业务数据 如何将您的网站速度与竞争对手进行比较 性能优化入门&#xf…

怎样在 PostgreSQL 中优化对复合索引的选择性?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 怎样在 PostgreSQL 中优化对复合索引的选择性一、理解复合索引的概念二、选择性的重要性三、优化复合索…

神经网络识别数字图像案例

学习资料:从零设计并训练一个神经网络,你就能真正理解它了_哔哩哔哩_bilibili 这个视频讲得相当清楚。本文是学习笔记,不是原创,图都是从视频上截图的。 1. 神经网络 2. 案例说明 具体来说,设计一个三层的神经网络。…

采用自动微分进行模型的训练

自动微分训练模型 简单代码实现: import torch import torch.nn as nn import torch.optim as optim# 定义一个简单的线性回归模型 class LinearRegression(nn.Module):def __init__(self):super(LinearRegression, self).__init__()self.linear nn.Linear(1, 1) …

链接追踪系列-07.logstash安装json_lines插件

进入docker中的logstash 容器内: jelexbogon ~ % docker exec -it 7ee8960c99a31e607f346b2802419b8b819cc860863bc283cb7483bc03ba1420 /bin/sh $ pwd /usr/share/logstash $ ls bin CONTRIBUTORS Gemfile jdk logstash-core modules tools x-pack …

如何预防最新的baxia变种勒索病毒感染您的计算机?

引言 在当今数字化时代,网络安全威胁层出不穷,其中勒索病毒已成为企业和个人面临的重大挑战之一。近期,.baxia勒索病毒以其高隐蔽性和破坏性引起了广泛关注。本文将详细介绍.baxia勒索病毒的特点、传播方式,并给出相应的应对策略…

2024-07-15 Unity插件 Odin Inspector3 —— Button Attributes

文章目录 1 说明2 Button 特性2.1 Button2.2 ButtonGroup2.3 EnumPaging2.4 EnumToggleButtons2.5 InlineButton2.6 ResponsiveButtonGroup 1 说明 ​ 本章介绍 Odin Inspector 插件中有关 Button 特性的使用方法。 2 Button 特性 2.1 Button 依据方法,在 Inspec…

YOLOv8训练自己的数据集(超详细)

一、准备深度学习环境 本人的笔记本电脑系统是:Windows10 YOLO系列最新版本的YOLOv8已经发布了,详细介绍可以参考我前面写的博客,目前ultralytics已经发布了部分代码以及说明,可以在github上下载YOLOv8代码,代码文件夹…

力扣经典题目之->移除值为val元素的讲解,的实现与讲解

一:题目 博主本文将用指向来形象的表示下标位的移动。 二:思路 1:两个整形,一个start,一个end,在一开始都 0,即这里都指向第一个元素。 2:在查到val之前,查一个&…

昇思25天学习打卡营第12天|MindSpore 助力下的 GPT2:数据集加载处理及模型全攻略

环境配置 %%capture captured_output 此乃 Jupyter Notebook 中的一个魔法命令,其作用在于捕获后续单元格中的输出,并将之存储于变量 captured_output 当中,而非直接于输出区域予以显示。如此一来,便可隐匿某些可能存在的输出信息…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(九)-无人机服务区分离

引言 本文是3GPP TR 22.829 V17.1.0技术报告,专注于无人机(UAV)在3GPP系统中的增强支持。文章提出了多个无人机应用场景,分析了相应的能力要求,并建议了新的服务级别要求和关键性能指标(KPIs)。…

小程序里面使用vant ui中的vant-field组件,如何使得输入框自动获取焦点

//.wxml <van-fieldmodel:value"{{ userName }}"placeholder"请输入学号"focus"{{focusUserName}}"/>// .js this.setData({focusUserName: true});vant-field

钡铼ARMxy控制器在智能网关中的应用

随着IoT物联网技术的飞速发展&#xff0c;智能网关作为连接感知层与网络层的枢纽&#xff0c;可以实现感知网络和通信网络以及不同类型感知网络之间的协议转换。钡铼技术的ARMxy系列控制器凭借其高性能、低功耗和高度灵活性的特点&#xff0c;在智能网关中发挥了关键作用&#…

RPC与服务的注册发现

文章目录 1. 什么是远程过程调用(RPC)?2. RPC的流程3. RPC实践4. RPC与REST的区别4.1 RPC与REST的相似之处4.2 RPC与REST的架构原则4.3 RPC与REST的主要区别 5. RPC与服务发现5.1 以zookeeper为服务注册中心5.2 以etcd为服务注册中心 6. 小结参考 1. 什么是远程过程调用(RPC)?…

大语言模型诞生过程剖析

过程图如下 &#x1f4da; 第一步&#xff1a;海量文本的无监督学习 得到基座大模型&#x1f389; &#x1f50d; 原料&#xff1a;首先&#xff0c;我们需要海量的文本数据&#xff0c;这些数据可以来自互联网上的各种语料库&#xff0c;包括书籍、新闻、科学论文、社交媒体帖…

<数据集>光伏板缺陷检测数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;2400张 标注数量(xml文件个数)&#xff1a;2400 标注数量(txt文件个数)&#xff1a;2400 标注类别数&#xff1a;4 标注类别名称&#xff1a;[Crack,Grid,Spot] 序号类别名称图片数框数1Crack8688922Grid8248843S…

全栈智能家居系统设计方案:STM32+Linux+多协议(MQTT、Zigbee、Z-Wave)通信+云平台集成

1. 项目概述 随着物联网技术的快速发展,智能家居系统正在成为现代生活中不可或缺的一部分。本文介绍了一个基于STM32微控制器和Linux系统的智能家居解决方案,涵盖了硬件设计、软件架构、通信协议以及云平台集成等方面。 该系统具有以下特点: 采用STM32作为终端设备的控制核心…

springboot3——项目部署

springboot的项目开发完了&#xff0c;怎么样把他放到服务器上或者生产环境上让他运行起来跑起来。就要牵扯到项目部署&#xff0c;打包的方式了。 springboot支持jar和war: 打jar包&#xff1a;默认方式&#xff0c;项目开发完打个jar包&#xff0c;通过命令把jar包起起来就…

汇川ST 实现分拣

//初始化 IF init FALSE THEN// 初始化init : 1 ;//45 Y数组 BOOL[8] [OFF发料Y OFF分拣Y OFF送料Y OFF取料Y OFF摆取Y OFF摆放Y OFF升降Y OFF夹料Y] [OFF发料Y OFF分拣Y OFF送料Y OFF取料Y OFF摆取Y OFF摆放Y OFF升降Y OFF夹料Y] 不保持 私有 Y0(*Y数组[0] BOOL OFF 发料…

MySQL 中的几种锁

MySQL 中的锁 #按锁粒度如何划分? 按锁粒度划分的话&#xff0c;MySQL 的锁有&#xff1a; 表锁&#xff1a;开销小&#xff0c;加锁快&#xff1b;锁定力度大&#xff0c;发生锁冲突概率高&#xff0c;并发度最低;不会出现死锁。行锁&#xff1a;开销大&#xff0c;加锁慢…