宝玉xp
24-10-12 13:53 微博认证:前微软Asp.Net最有价值专家 2025微博年度新知博主 科技博主

《如何在输入内容很长的情况下,让 GPT 不“偷懒”?》

最近比较好的解决了一个困扰我很久的 Prompt 难题:如何在输入内容很长的情况下,让 GPT 不偷懒?

注明一下,本文说的长内容是指相对比较长,比如几千上万字的输入,但是输入输出又没有超过上下文窗口限制的情况。

经常用 GPT 的朋友可能有这样的经历,就是在输入的内容很长的情况下,它会“偷懒”,也就是不输出完整内容,变成摘要。尤其体现在翻译长文、生成较长代码的情况下。

以前我的方案都是手动或者半手动的将长内容拆分成短内容,再合并,这样好处是不担心超长,但是坏处是如果拆分后在不同会话会导致风格不一致。

以前有个“偏方”,就是在提示词里面说“我是残疾人没有手指头”,那么善良的 AI 会尽力生成完整内容。但并不总是有效。

前几天突然有了个灵感《GPT 无法翻译超长内容的提示词优化尝试》 http://t.cn/A6EjgXrv ,那就是让 AI 分页输出,遇到超长的内容每次只输出一页。

这些天用翻译 GPT ( http://t.cn/A6HjUiOx )实验下来用在翻译上效果非常好,再不会总结,而是每次都完整的输出要翻译的内容,只是分成了好多页,需要多次手动输入 continue。但是不需要自己去切分,而且所有内容都在同一个上下文中,结果很一致。

提示词的技巧就是few-shot,针对短内容和长内容分别给出示例,长内容给出翻译完和没翻译完的示例。输出使用了 XML 标签,加了个 tag,可以清楚看到第几页,以及是否结束。

但是输出代码上效果还不太如意,主要是文章分页相对容易,代码分页 GPT 又犯迷糊了,它不知道是该输出一个独立的模块还是模块的一部分代码,如果是独立模块内容同样很长,一分页就乱掉了,每页都有大量重复代码。代码的分页输出还在研究中。

完整提示词:http://t.cn/A6EjgXrv

本文同步发表于 :http://t.cn/A6ERe0nB

发布于 美国