我们可以用 Prompt 让 LLM 生成各种结果,但是怎么让 LLM 输出固定的格式?怎么对 LLM 输出的结果进行解析?
现在很多人对于如何使用像 ChatGPT 这样的 LLM 已经比较有经验了,可以使用各种不同的 Prompt 得到自己想要的结果。但有时候我们的使用场景不局限于手动操作,而是需要结合程序去调用 API,并且解析 API 的返回结果,从而实现一些自动化的功能。但是 LLM 的输出不确定性很大,所以我们需要想办法去控制 LLM 的输出格式,从而让程序得到稳定的输出,并且进一步对输出结果进行解析。
platform.openai.com/docs/guides…
输出结果参考
容错处理
由于生成式 AI 现阶段的特点,我们很难保证输出结果的稳定性,所以我们需要对输出结果进行容错处理,以防止程序出错。这是我的一些经验总结:
1. 降低 temprature 参数的值会让结果更稳定。
temprature 越低,输出结果越稳定,当然温度低会影响输出结果的多样性,你可以灵活运用,比如出错后降低 temprature 值。
2. 对 JSON 结果进行容错处理
即使是 GPT-4,输出 JSON 时也不够稳定,经常会错误输出多余的逗号或者引号,但是老是重试也废 token,所以最好是用日志把出错的结果都记录下来,找出其中的规律,然后做一些字符串预处理,降低出错概率。
比如这里是我针对我的程序写的一个处理 JSON 错误的函数:
[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object],
,[object Object]
仅供参考,最好还是你根据自己的 JSON 格式,记录日志,然后针对你的错误情况去写容错函数。
以上就是我对于我在日常使用 LLM 中,如何控制输出结果格式,以及如何对输出结果进行解析的一些经验总结,希望对你有帮助。也欢迎分享你的经验,一起进步。