总结/朱季谦
昨晚经过一顿操作猛如虎的捣鼓,终于将chatGPT的访问环境在Mac笔记本上搭建了起来。
基于日报、读后感、短文、公文模版、编程这五个场景,我进行了一下简单的体验。
在网上随便找到一个日报内容喂给它,它竟然很聪明地基于日报格式对内容做了扩展。
后来,我又试了一下让它写周报,发现只需要提供简略关键的几句话,它就可以针对这些话做进一步的补充,最后自动将内容扩展到像一篇总结报告。
想到以前读书时,经常需要写各种读后感——那是不是也可以用它帮忙写些读后感。于是我选了比较喜欢的《百年独孤》小说,让它给我写一篇千字读后感。
我只是告诉它“帮写一篇一千字的《百年孤独》读后感”。
按下回车键,它的光标闪了一会儿后,就开始一个字一个字地打印在屏幕上。
需要注意一点是,目前太长的文字生成过程中,可能生成一半时,就结束了。这时候,得像对话一样告诉它,“继续写”。然后,光标一闪,它很快又会重新扑哧扑哧地往屏幕上吐字。
chatGPT写的《百年孤独》读后感,里面提到了马孔多城市,家族七代人的生活、命运和梦想等,确实都是原著里的东西。整篇读下来,说真的,还真有点那味儿了。
文章的最后,是读后感特有的总结与感悟——看来,这丫是懂套路的。
基于这篇生成的读后感,再手动修改下,大概能以假乱真地当语文课后作业交上去了。
我在一篇小说里描写过这样一个片段:
在头骨灯笼的映照下,巨鼎里竟浮出一团黑糊糊的东西。
远远看去,就像是一堆黑色的烂泥,上面不断掉落黑色的粘稠。
它慢慢站成一个人形,样子极其怪异,仿佛一尊身躯严重而干枯的老人,只见它缓缓抬起头,深陷的眼洞里发出了暗淡的红光。
我用了这个片段做开头,让chatGPT写一篇短文。
chatGPT写了个探险家意外发现了一尊古老巨鼎的故事——
当探险家触摸到巨鼎里的黑色东西时,突然被一股神秘力量吸入到巨鼎里,然后,探险家就穿越到了另一个世界。在那个世界里,有恶龙、精灵以及魔力......
突然感慨,这个chatGPT是懂网络小说套路的。
有朝一日,它会不会进化到只需提供一篇大纲,它就能自动生成一部小说呢?
很难说,网络写作者瑟瑟发抖......
我们经常会遇到写论文、需求分析文档、招标文档等需求。如果手头上没有现成的文档,那么,首先想到的,是先找到一份模版大纲,然后按照大纲进行内容完善。
我试验了一下,发现它提供的总结类文档、论文、项目需求类文档等的模版大纲,都是比较合理的。
最后,就是这个终极大招,这个大招让作为程序员的我很是惊讶。它的代码生成功能很好用,特别适合用来辅助工作和学习。
今天临近下班时,我忽然有一个小想法,就是想写一段简单的代码,去指定目录下遍历近百个老项目代码,然后自动找出存在依赖中间件IP为xxx.xxx.xxx.xxx的文件。这就相当于让代码自动帮我从几千个乃至几万个文件里找出里面有关键词是xxx的文件。我尝试将这个想法丢给了chatGPT:用Java帮写一个遍历指定目录下所有文件存在包含192.168.1.1的IP信息文件,获取文件路径。
然后,它就出来了一个结果——
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 = "/path/to/directory";
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) {
if (file.isDirectory()) {
filePaths.addAll(searchFilesContainingIpAddress(file, ipAddress));
} else {
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;
}
}
最后我只是稍微改动一下if-else的判断,就完美地实现了我的小需求。让我觉得惊讶的是,它竟然能准确地根据我的需求去找到几乎正确的代码,若是换到某浏览器,我至少还得像翻沙子一样翻几下,才能从一堆狗屎般的广告堆中找出需要的沙子。
这就是以上我的体验感受,应该还有更多玩法,等我慢慢发掘出来。然而,它同样存在许多不足,例如,看了官网文档,发现它的数据局限在2021年以前,这就意味着,2021年以后真实发生的事情,问它而得到的答案可能是错的。它的接口访问目前还时不时出现服务器过载异常提示,可能是短时间内太多人访问了,导致负载跟不上。除此之外,还有蛮多场景下的回答不是很好。
不过,若真能迭代发展起来,确实是革命性的,相比传统的搜索引擎,它省去了“搜”的时间,只剩下“索”的结果。
就看这个“索”的质量日后能否跟上来了。