Skip to content

面向开发者的提示工程

让大模型给我返回一个JSON

相信不少人跟我一样,调用API时需要结果有固定格式规范或者多结果时,我们希望大模型能返回一个JSON格式的结果,但是大模型有时会忽略掉格式而把它当做普通文本(文本多时更容易触发)。

可以通过使用xml代码块包裹来解决:

xml
<role>你是一名资深读者</role>
<task>你正在阅读一篇文章,请仔细阅读,然后基于文章的内容,回答四个问题并返回json格式
	<questions>
        <question>标签?每个5个字以内,多个用逗号分隔</question>
		<question>文章概要?</question>
		<question>看法?</question>
		<question>时间?格式yyyy/MM/dd</question>
	</questions>
</task>
<response_example>
{
    "quest1": "",
    "quest2": "",
    "quest3": "",
    "quest4": ""
}
</response_example>
<article>
{article}
</article>

得到结果

{
"quest1": "ActiveMQ, 消息队列, 协议, 安装, 特性",
"quest2": "文章介绍了ActiveMQ的安装方法、特性(如Advisory、Wildcards、Virtual Topic、Delay & Schedule)以及支持的协议(如AMQP、MQTT)。",
"quest3": "ActiveMQ功能强大,适合需要灵活配置和扩展的场景,但安装和配置可能对新手不太友好。",
"quest4": "2019/02/07"
}

TIP

网上有使用```包裹内容的, 这种方式如果结果也包含了代码块容易解析不出需要二次处理

粤ICP备20009776号