(注:本文为小报童精选文章,已订阅小报童或加入知识星球「玉树芝兰」用户请勿重复付费)
需求
最近我喜欢上了用 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 会遭遇这么大的挫折。