Typefully
@beihuo
Log in
一个正确和错误提问 ChatGPT 的对比
Share
•
A year ago
•
View on X
我不会写 Emacs 插件,但是 ChatGPT 却能帮我写出来。只要正确的提问,ChatGPT 太适合在自己不熟悉的地方帮忙了。 但是,如何向 LLM 提出正确的问题,会是关键。下面是我的部分聊天记录,可以看到我一开始用了错误方式提问,走了弯路。最后我又去用正确的方式,重新提问,发现效果会好得多。
twitter.com/beihuo/status/1739427862179147836
这是前后对比图,可以看到修复之前,css 代码高亮是完全错误的。而且当时所有 @ apply rules 都会显示错误。 我当时并不知道这个可以修复,所以问 ChatGPT 能不能干脆关闭 css 代码高亮。
ChatGPT 没有给我一个满意的答案。因为我稍微知道一些 Emacs 的高亮的 package 名字。所以,当时我还是坚持用自己的知识来引导 ChatGPT 来解决这个问题。 后来的事实证明,这是一个错误的策略。
比如这个对话,我当时试图让 ChatGPT 用配置 tree-sitter 的方式解决问题。仅仅是因为,我知道 Emacs 最新版开始用 tree-sitter 来处理代码高亮。后来我又试图让 Emacs 去识别 @ apply rules。 这些都是同样的错误:试图用自己的受限知识去指挥 ChatGPT。
在几轮对话之后,我发现了一段有意思的代码。看起来,是可以让 Emacs 自己写代码去解决代码高亮问题的。
事情到这里,我意识到了,我最好只描述目前的情况,和我想要的效果。然后让 ChatGPT 用自己的知识去解决。因为在 Emacs Elisp 这块,ChatGPT 比我更懂。 如果渲染效果有问题,我就只用代码例子来说明目前的错误在哪里。ChatGPT 足够聪明,可以分析出来问题,并且给出新答案。
当然,如果答案已经很接近了,只是代码实现有点问题。这时候,可以给 ChatGPT 一些提示。
最后,我让给 ChatGPT 帮我把结果写成了一个 Doom Emacs module。最终代码如下:
现在,让我们看一个改进后的例子。我在第一个消息中,就尽可能描述出现的问题,和想要的效果。并要求 ChatGPT 配置我的 Emacs。可以看出,在第一个回复中,ChatGPT 就给出了那个关键代码。之后,就可以通过继续微调,快速解决问题。 可见当时我错误的询问方式,让我走了弯路。
所以,推荐
@Piglei
分享的这一篇文章。如何向 LLM 提出正确的问题,会成为非常重要的技能。
twitter.com/Piglei/status/1742399105891270747
Antirez 的文章,
@dotey
翻译了中文版。
twitter.com/dotey/status/1742413924396319183