总结/朱季谦

在日报、读后感、小说、公文模版、编程等场景体验了一把chatGPT,说下体会。

昨天经过一顿操作猛如虎的捣鼓,终于在Mac笔记本上将chatGPT的访问环境搭建了起来,忍不住立马开始玩起来。

一、让chatGPT写日报

想起似乎曾经在哪里看到过说很适合用它来写日报和周报,故而随便找了一个日报内容喂给它,过了一会儿,看到它的回答时,卧槽,震惊了,它竟然很聪明地对内容做了补充与扩展,整块日报内容顿时就饱满起来,近乎可以直接粘贴复制到钉钉上提交当日日报了。

后来,我又试了一下让它写周报,发现只需要提供简略关键的几句话,它就可以针对这些话做进一步的补充,将内容扩展得更加像一篇比较适合上交的总结。

二、让chatGPT写《百年孤独》的读后感

听说国外很多学生正用它来写作业,我忽然想到,以前读书时,经常要写各种读后感,是不是也可以用它来写些读后感当作业。我选了比较喜欢的《百年独孤》小说,让它给我写一篇一千字的读后感。然后,它写出的文章,还蛮符合《百年孤独》里的内容,例如马孔多城市,家族七代人的生活、命运和梦想。最后,还有读后感题材特有的总结与感悟。可以说,再稍微修改下,确实能以假乱真地当语文课后作业上交了。

注意一点是,太长的文字生成,可能生成一半就结束了,这时候只需要发送“继续”两字,它就会继续往下写。

但是,我忽然想到,若学生开始依赖Ai去完成学业的话,某种程度而言是在放弃了自我思考,长此以往,只会越来越缺乏思考的能力,最后更像是沦为了Ai的喂养工具人,得不偿失。

三、让chatGPT写小说

我在自己的一篇小说里,描写过这样一个片段:

在头骨灯笼的映照下,巨鼎里竟浮出一团黑糊糊的东西。

远远看去,就像是一堆黑色的烂泥,上面不断地掉落黑色的粘稠。

只见它慢慢站成一个人形,样子极其怪异,仿佛一尊身躯严重而干枯的老人,当它抬起头,深陷的眼洞里发出了暗淡的红光。

站在宫殿里的龙桀看到这幅光景,眼里闪过一丝震惊的神色,但很快就消失不见了,重新换上一副镇静的神色……

宫殿中央巨鼎里的怪物看着正站在门口的龙桀,脸上浮现出一抹惨然的笑意,开始用一副沙哑而低沉的声音说道:“好久不见,我年轻的陛下。”

然后,我就用这个片段的开头,让它来写一篇短篇小说,它写了一个探险家,发现了一个古老的巨鼎,触摸巨鼎里的黑色东西时,突然被一股神秘力量吸入了巨鼎里,然后,就穿越到了另一个世界,那个世界里,有恶龙、精灵以及魔力......

突然感慨,这个chatGPT是懂网络小说的套路的。

有朝一日,它会不会进化到只需提供一篇大纲,它就能自动生成一部小说呢?

很难说,网络写作者瑟瑟发抖......

四、让chatGPT提供公文写作模版

日常工作中,我们经常会遇到写论文、需求分析文档、招标文档等等需求,那么,这时候,就需要先找到一份模版大纲,然后在模版上进行内容完善。

我试验了一下,发现它提供的文档、论文等模版大纲,都是比较对的。

这确实比其他搜索引擎方便,某个搜索引擎,不仅一堆无用广告,还得自己去翻找查询结果,才能找到自己需要的。

五、让chatGPT写代码

最后,就是终极大招,这个大招顿时让程序员瑟瑟发抖,似乎在未来,chatGPT第一个替代的,就是程序员啊。

它的代码生成搜索,确实很好用,例如,我下午的时候突然想到一个需要,就是想写一段代码,去指定目录下遍历近百个老项目,读取项目里各个文件,找出存在依赖中间件IP为xxx.xxx.xxx.xxx的文件。于是,我给chatGPT提了一个需求:用Java帮写一个遍历指定目录下所有文件存在包含192.168.1.1的IP信息文件,获取文件路径。

然后,它就出来了一个结果——

我只是改了一下判断条件,如下面源代码,就立马能满足我的需求了,几乎没有太大改动。

package com.zhu.fte.biz.test.ThreadTest;

import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List; public class FileSearch {
private static final String IP_ADDRESS = "192.168.1.1"; public static void main(String[] args) {
String directoryPath = "/Users/helloword/workspace/bqs";
File directory = new File(directoryPath);
List<String> filePaths = searchFilesContainingIpAddress(directory, IP_ADDRESS);
System.out.println("Files containing IP address " + IP_ADDRESS + ":");
for (String filePath : filePaths) {
System.out.println(filePath);
}
} public static List<String> searchFilesContainingIpAddress(File directory, String ipAddress) {
List<String> filePaths = new ArrayList<>();
File[] files = directory.listFiles();
if (files == null) {
return filePaths;
}
for (File file : files) {
String filePath = file.toPath().toString();
if (file.isDirectory()) {
filePaths.addAll(searchFilesContainingIpAddress(file, ipAddress));
} else if(filePath.contains(".properties") || filePath.contains(".xml") || filePath.contains(".java")|| filePath.contains(".pom")){
try {
List<String> lines = Files.readAllLines(file.toPath(), StandardCharsets.UTF_8); for (String line : lines) {
if (line.contains(ipAddress)) {
filePaths.add(file.getAbsolutePath());
break;
}
}
} catch (IOException e) {
System.err.println("Error reading file: " + file.getAbsolutePath());
}
}
}
return filePaths;
}
}

顿时,让我觉得这厮很恐怖,它竟然能很准确地读懂我的需求,又很准确地将结果给我。

这是要让程序员失业的节奏啊。

这就是以上我的体验感受,应该还有更多玩法,等我慢慢发掘出来。然而,它同样存在许多不足,例如,看了官网文档,发现它的数据局限在2021年以前,这就意味着,2021年以后真实发生的事情,问它得到的答案,都可能是有误的。接口访问目前还时不时会出现异常提示,可能是短时间内太多人访问了,导致负载跟不上,最后就是,虽然某些场景下,它确实很有用,但同样存在许多场景是目前有较大不足的,例如,你让它写小说,它的叙述风格其实还是很生硬的。

chatGPT仍存在较多不足,但能确定的是,作为一个工具,确实能在一定程度给我带来更多的便捷。

在日报、读后感、小说、公文模版、编程等场景体验了一把chatGPT的更多相关文章

  1. go语言模版编程

    传送门: 柏链项目学院 go语言与模版编程 什么是模版编程 模板是将一个事物的结构规律予以固定化.标准化的成果,它体现的是结构形式的标准化.对于我们程序员来说,更直白的理解是:对于要输出的内容,个人位 ...

  2. 【读后感】《Java编程思想》~ 异常

    [读后感]<Java编程思想>~异常 终于拿出压箱底的那本<Java编程思想>.这本书我年轻的时候就买了,但是翻过几页后就放弃了.没想到这两天翻了一下,真的有收获. 看了一下第 ...

  3. 读后感+资源-----java8函数式编程pdf

    花了两周时间工作之余抽空读完了这本书,对lamdba以及java的理解又有了一个新的认识(装个逼,哈哈) 以前看视频学习的还是太基本了,感觉读书更容易理解背后的设计思想和编程思路 这本书还是挺不错,就 ...

  4. Python爱好者社区历史文章列表(每周append更新一次)

    2月22日更新:   0.Python从零开始系列连载: Python从零开始系列连载(1)——安装环境 Python从零开始系列连载(2)——jupyter的常用操作 Python从零开始系列连载( ...

  5. 【Cocos2d-x游戏开发】细数Cocos2d-x开发中那些常用的C++11知识

    自从Cocos2d-x3.0开始,Cocos2dx就正式的使用了C++11标准.C++11简洁方便的特性使程序的可拓展性和可维护性大大提高,也提高了代码的书写速度. 下面我们就来一起学习一下Cocos ...

  6. !! python 之半年总结

    http://blog.chinaunix.net/uid-26443921-id-3481357.html 半年前开始系统完整深入的了解学习 python 读书篇: <python 核心编程2 ...

  7. Trailing return types

    Trailing return types是C++11关于函数声明的语言特性之一,旨在解决模版编程遇到的语法相关的问题,先看一个简单例子,感受一下什么是trailing return types: C ...

  8. [转载]string转化大小写(C++)

    如何将一个字符串转换成大写或者小写?这是字符串匹配中经常需要做的事情,然而C++的Standard Library并没有提供将std::string转成大写和小写的功能,只有在提供将char转成大写( ...

  9. Go语言打造以太坊智能合约测试框架(level3)

    传送门: 柏链项目学院 第三课 智能合约自动化测试 之前课程回顾 我们之前介绍了go语言调用exec处理命令行,介绍了toml配置文件的处理,以及awk处理文本文件获得ABI信息.我们的代码算是完成了 ...

  10. Go语言打造以太坊智能合约测试框架(level1)

    传送门: 柏链项目学院 Go语言打造以太坊智能合约测试框架 前言 这是什么? 这是一个基于go语言编写的,自动化测试以太坊智能合约的开发框架,使用此框架,可以自动化的部署合约,自动测试合约内的功能函数 ...

随机推荐

  1. csharp 基础

    1.C#基础 1.1 C#简介 C#是一个面向对象的.由微软开发的高级编程语言,它专门为公共语言基础结构(CLI)设计的,CLI是由可执行代码和运行时环境组成的. C#语言在编写时有点像JAVA,在运 ...

  2. jquery datatable 粗犷

    需要学习: HTML.CSS.Javascript Bootstrap: 基于以上三个的一个框架 jQuery:一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程 ...

  3. RK3568开发笔记(五):在虚拟机上使用SDK编译制作uboot、kernel和ubuntu镜像

    前言   buildroot虽然灵活,但是基于实际情况,本身是侧重驱动和应用定制开发的只定制一次文件系统投入有点多,还不如直接ubunt自己交叉编译依赖库,做一些库的移植裁剪.  于是本篇就使用ubu ...

  4. Java8中那些方便又实用的Map函数

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 java8之后,常用的Map接口中添加了一些非常实用的函数,可以大大简化一些特定场景的代码编写,提升代码可读性,一 ...

  5. C#一个16进制数用二进制数表示是几位?

    1个字节是8位,二进制8位:xxxxxxxx 范围从00000000-11111111,表示0到255.一位16进制数(用二进制表示是xxxx) 最多只表示到15(即对应16进制的F),要表示到255 ...

  6. 关于软件物料清单(SBOM),你所需要了解的一切

    在此前的多篇文章中,我们已经详细地介绍了软件物料清单(SBOM)对于保障软件供应链安全的重要性以及一些注意事项.在本文中,我们将会更深入地介绍SBOM,包括最低要求元素.格式.使用场景以及如何对其进行 ...

  7. 第2-3-3章 文件处理策略-文件存储服务系统-nginx/fastDFS/minio/阿里云oss/七牛云oss

    目录 5.2 文件处理策略 5.2.1 FileStrategy 5.2.2 AbstractFileStrategy 5.2.3 LocalServiceImpl 5.2.4 FastDfsServ ...

  8. Go语言核心36讲26

    你好,我是郝林.今天我分享的主题是测试的基本规则和流程的(下)篇. Go语言是一门很重视程序测试的编程语言,所以在上一篇中,我与你再三强调了程序测试的重要性,同时,也介绍了关于go test命令的基本 ...

  9. 硬核!Apache Hudi Schema演变深度分析与应用

    1.场景需求 在医疗场景下,涉及到的业务库有几十个,可能有上万张表要做实时入湖,其中还有某些库的表结构修改操作是通过业务人员在网页手工实现,自由度较高,导致整体上存在非常多的新增列,删除列,改列名的情 ...

  10. LayuI 动态下拉框和动态设置选中

    动态下拉框 //下拉框异步加载 function asyncSelect(thisId, grade, selectNodeName) { $("#" + selectNodeNa ...