相比傳統的搜尋引擎,它省去了“搜”的時間,只剩下“索”的結果。——題記
總結/朱季謙
昨晚經過一頓操作猛如虎的搗鼓,終於將chatGPT的訪問環境在Mac筆記本上搭建了起來。
基於日報、讀後感、短文、公文模版、程式設計這五個場景,我進行了一下簡單的體驗。
一、讓chatGPT寫日報
在網上隨便找到一個日報內容餵給它,它竟然很聰明地基於日報格式對內容做了擴充套件。
後來,我又試了一下讓它寫週報,發現只需要提供簡略關鍵的幾句話,它就可以針對這些話做進一步的補充,最後自動將內容擴充套件到像一篇總結報告。
二、讓chatGPT寫《百年孤獨》的讀後感
想到以前讀書時,經常需要寫各種讀後感——那是不是也可以用它幫忙寫些讀後感。於是我選了比較喜歡的《百年獨孤》小說,讓它給我寫一篇千字讀後感。
我只是告訴它“幫寫一篇一千字的《百年孤獨》讀後感”。
按下Enter鍵,它的游標閃了一會兒後,就開始一個字一個字地列印在螢幕上。
需要注意一點是,目前太長的文字生成過程中,可能生成一半時,就結束了。這時候,得像對話一樣告訴它,“繼續寫”。然後,游標一閃,它很快又會重新撲哧撲哧地往螢幕上吐字。
chatGPT寫的《百年孤獨》讀後感,裡面提到了馬孔多城市,家族七代人的生活、命運和夢想等,確實都是原著裡的東西。整篇讀下來,說真的,還真有點那味兒了。
文章的最後,是讀後感特有的總結與感悟——看來,這丫是懂套路的。
基於這篇生成的讀後感,再手動修改下,大概能以假亂真地當語文課後作業交上去了。
三、讓chatGPT寫小說
我在一篇小說裡描寫過這樣一個片段:
在頭骨燈籠的映照下,巨鼎裡竟浮出一團黑糊糊的東西。
遠遠看去,就像是一堆黑色的爛泥,上面不斷掉落黑色的粘稠。
它慢慢站成一個人形,樣子極其怪異,彷彿一尊身軀嚴重而乾枯的老人,只見它緩緩抬起頭,深陷的眼洞裡發出了暗淡的紅光。
我用了這個片段做開頭,讓chatGPT寫一篇短文。
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年以後真實發生的事情,問它而得到的答案可能是錯的。它的介面訪問目前還時不時出現伺服器過載異常提示,可能是短時間內太多人訪問了,導致負載跟不上。除此之外,還有蠻多場景下的回答不是很好。
不過,若真能迭代發展起來,確實是革命性的,相比傳統的搜尋引擎,它省去了“搜”的時間,只剩下“索”的結果。
就看這個“索”的質量日後能否跟上來了。