Shuyi’s Newsletter

Share this post

User's avatar
Shuyi’s Newsletter
如何用魔法提示词打破 Code Interpreter 修改代码的「鬼打墙」?

如何用魔法提示词打破 Code Interpreter 修改代码的「鬼打墙」?

Code Interpreter 编程中遇到自己无法解决 Bug 时,我们该如何通过提示词帮助它解决

Wang Shuyi's avatar
Wang Shuyi
Jul 24, 2023
∙ Paid

Share this post

User's avatar
Shuyi’s Newsletter
如何用魔法提示词打破 Code Interpreter 修改代码的「鬼打墙」?
Share

需求

最近我喜欢上了用 Claude 2,而不是 GPT-4 来润色文章。最主要的原因是 Claude 2 100K 的 tokens 长度,实在是优势显著。

你让 GPT-4 输出,一会儿是输入文本过长报错,一会儿是输出文本被截断。我这个懒人喜欢语音输入半天,然后一起转换,几乎就没有一回是开心从头输出到尾,总得出点儿岔头儿。ChatGPT 有时莫名奇妙喜欢「总结」和「提炼」,输入 2000 字,输出可能只有 400-500. 做摘要还算不错,但与我让他做的「润色」功能其实差别很大。

但是你看 Claude ,润色文本的效果就大不相同了。

至少,内容输出是完整的。

顺便说一下,我使用 Claude 的方式并不是官网,而是 Poe 。为什么呢?Poe 每天 30 条限制,官网不是免费用不限额度吗?

关键问题,在于官网回答输出有可能莫名其妙消失。

同样的提示词,处理同样的输入内容,官网给我显示的对话是这样。

其实,我刚刚明明看见它输出了几千字的润色后全文文稿,但是现在仿佛一切都没有发生过一般。

我不知道问题出在哪里,猜测是因为 token 限制中途发生截断,但是不确定。不过既然现在 Poe 可以正常用,那咱们就不要为这些 bug 操心了。相信 Claude 官方后面会修复的。

可惜不管是 Poe 还是 Claude 官网,输出内容总是不让人满意。你看:

从这张图里面,你可以清楚看出,几乎所有的逗号,全都弄错了。明明我使用的语言是中文,顿号、句号也都是中文标点,只可惜所有的逗号,却全都显示成了半角英文标点形式。

我当然需要处理一下。处理的方法自然不能是手动替换,那样低效又麻烦。所以咱们得让 ChatGPT 编程进行处理。

尝试

据江湖传闻,如今 GPT-4 的智商大幅下降;江湖小道消息还说,Code Interpreter 的表现相对好一些。于是,这个编程的活儿,咱们就交给 Code Interpreter 做好了。

这是我的提示词,注意我把 Claude 2 的润色结果也放了进去,好让 Code Interpreter 对要处理的内容有更清晰的认识。

Code Interpreter 立即就给出了代码。

所有的替换,都是半角符号到全角符号,挺好。

但是这个代码并不全。我并不只是要一个转换函数,更希望能有完整代码,帮我处理实际的输入。

所以我提出了要求。还对内容输入的不同方式分别做出要求。

Code Interpreter 非常迅速做出了应答。

不仅如此,Code Interpreter 还告诉我需要安装哪些依赖。

我把它贴到了 Visual Studio Code 里面运行,用 Claude 2 输出文本放到剪贴板测试,所有的半角逗号,都正确转换过来了。

看起来一切都很美好,是吧?

不,这里面其实有很大的问题。

因为不是所有文本中的半角符号,都应该转换成全角的。

Markdown 格式里面,有可能包含代码、链接或者 Markdown 图片链接。这些内容里面,可能有各种符号出现。例如代码里面可能出现 . 和 , ,链接里面出现 ":" ,图片更是可能有 !,[,. 等。

如果这些都不分青红皂白,转换成全角符号,那肯定要出问题的。

你可能会纳闷儿 —— 语音识别的内容里面,为什么会有这些东西呢?

原因是,有时我先做了幻灯,然后录制了视频,之后再把视频转换成为文字稿。为了避免润色之后,部分内容被合并,导致和图片无法一一对应,我先使用语音转录的初稿填充到图片对应的位置,然后再统一利用 GPT-4 或者 Claude 进行润色。这样一来,半角符号同时出现在链接和正文,就比较尴尬了。

所以,我进一步提出修改意见,希望 Code Interpreter 能编程,帮我一劳永逸解决 Markdown 输出文字半角符号转换问题。

我这里特别强调「依此类推」,赋予 GPT-4 主动权,让它凭借见多识广积累的经验来处理该问题。

下面是 GPT-4 给我的回答。

实话实说,它说「你的观察非常到位」这句话,夸得我很受用。哈哈。

不仅会夸人,Code Interpreter 还给出了处理方案。紧接着,它自己就去实施方案了。真的是「全自动」啊,哈哈。

标红色方框的地方,使用了正则表达式,处理 Markdown 里面的链接、图片等特殊内容。

我不打算每一次修改,都拿到外面来自己运行测试。既然 Code Interpreter 本身就带了运行环境,还是让它自己测试好了再给我最终修改结果比较好。

我虽然已经一上来就给 Code Interpreter 上传了 Claude 2 输出的文本,不过那个文件里面都是文字和标点,并没有 Markdown 链接或者代码,所以不太适合测试。

但这不是问题,咱们可以让 Code Interpreter 自己生成合适的测试样例。

Code Interpreter 毫不犹豫就写了一个 Markdown 样例出来。

这里的显示,其实有点儿问题。主要问题在于 Code Interpreter 里面默认输出代码的格式是 Python 。而在这样的设定里,三个反引号所代表的,是代码段的开始和结束。所以下图中标红的部分,实际上显示格式是错乱的。

不过样例显示不正确无所谓,只要它实际内容准确, Code Interpreter 认得这个 Markdown 样例就行。

我于是说:你先自己尝试运行一下,看看有没有问题。

然后 Code Interpreter 兢兢业业开始执行。

一开始,Code Interpreter 还挺开心,认为一切正常。但是很快,它自己发现了问题。

现在图片链接里面,! 和 [ 以及文件名和扩展名之间的 . ,全都错误转换成了全角。

不过,既然 Code Interpreter 自己已经发现了错误,并且声称有应对方案,那咱们放手让它自己改吧。

所以,我只是轻飘飘说了句,「请继续」。哪知道,自信满满的 Code Interpreter 会遭遇这么大的挫折。

Keep reading with a 7-day free trial

Subscribe to Shuyi’s Newsletter to keep reading this post and get 7 days of free access to the full post archives.

Already a paid subscriber? Sign in
© 2025 Wang Shuyi
Privacy ∙ Terms ∙ Collection notice
Start writingGet the app
Substack is the home for great culture

Share