购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.3 规范化提示

提示内容的格式不像编程那样需要遵循严格的规范,只要构建条理清晰、内容明确的提示即可。然而,为了使提示内容易于维护和修改,在本节中探索构建提示模板的方法。这些模板可以帮助我们更方便地生成各种类型的提示内容。

5.3.1 规范化提示

总结前面章节中的提示内容并结合ChatGPT API的请求参数,构建如图5-7所示的提示结构。此提示结构是在提示要素的基础上进行扩展,探索对应的规范化模板。

图5-7 提示结构

1.文本形式构建规范提示

规范的文本形式提示可以为用户提供清晰、连贯和高效的互动体验。文本相对简单,方便修改,这使其在很多交互场景下成为构建提示工程的首选。

2.半结构数据规范提示

半结构化数据的提示可以实现灵活、连贯和个性化的用户体验。相比纯文本,它增加了数据的智能性和自动化处理能力,适用于各类复杂的交互场景。

5.3.2 探索提示模板

构建提示模板是一个权衡选择的过程,提示模板需要在结构清晰与应用性之间保持平衡,推崇简洁和实用。

1.纯文本提示模板

下面是以纯文本形式呈现的提示模板,它的定义清晰而详细,涵盖了人机交互的各个方面。这个提示模板在结构和功能上已经相当完备,但在实际应用中可以根据具体需求选择使用其中的部分内容。

1. 角色:需要扮演何种角色

2. 指令/任务:

2.1 任务1

2.2 任务2

3. 提示上下文:

3.1 上下文说明1

3.2 上下文说明2

4. 提示数据

4.1 示例1

4.2 示例2

5. 输出指示:

5.1 输出格式、要求说明

5.2 问题

6. 提示参数:temperature、stop 等

(1)角色:明确定义了需要扮演的角色,这有助于更好地理解需要完成的任务和输出的要求。

(2)指令/任务:列出了需要完成的具体任务,这有助于明确方向,理解后续提示并完成响应。

(3)提示上下文:提供相关的上下文信息,这有助于模型理解任务的语境和要求,产生更加符合上下文的回答。

(4)提示数据:给出示例数据,这有助于模型理解不同任务与上下文的要求,并在生成时产生类似的回答。

(5)输出指示:明确定义了输出格式与要求,能清楚回答的具体形式和要点,定义详尽的输出指示可以产生更为准确的回答。

(6)提示参数:设置相关的参数来控制输出行为,能够根据要求控制响应内容的行为,选择合适的参数可以实现不同要求的生成效果。

2. JSON格式提示模板

下面是以JSON格式呈现的提示模板,这种格式使提示模板在信息的表达和获取方面表现出良好的效果。通过使用JSON数据格式,可以更清晰地组织和传递提示的信息。

3.权衡选择提示模板

构建提示模板需要在结构清晰与应用性之间保持平衡,在表5-1中总结了提示模板的优缺点,读者可以根据实际情况权衡选择。

表5-1 提示模板的优缺点

5.3.3 测试提示模板

构建的提示模板需要进行必要的测试,以持续改进其响应效果。接下来,将对前面介绍的模板进行实际测试和实践。通过实际应用和反馈,可以不断完善和优化这些模板。

1.提示模板的可识别性

(1)将纯文本模板内容提交给ChatGPT,要求它做出评价并给出建议,提示内容如下所示。

提示的内容如下(使用GPT-4模型)。

你可以理解以下提示模板吗,有何评论和建议?

“1.角色:需要扮演何种角色

2.指令/任务:

2.1 任务1

2.2 任务2

3.提示上下文:

……

ChatGPT首先表明自己可以理解这个模板的目的和作用,并对模板中的各部分给出相关的建议和评论。

ChatGPT的回答如下。

我可以理解您提供的这个提示模板。这是一个用于构建聊天机器人或人工智能系统的指导模板,旨在帮助您更好地组织和描述各种任务、场景和要求。关于这个模板,我有一些建议和评论。

1.角色:这部分描述了人工智能系统需要扮演的角色。请确保您为模型提供了清晰的角色描述,以便更好地完成任务。

2.指令/任务:这部分用于描述具体任务。为了方便理解和执行,建议将任务分解成更小的子任务,并按顺序列出。

3.提示上下文:这部分用于提供关于任务的背景信息。确保提供足够的上下文信息,以便模型在执行任务时更加准确。

4.提示数据:这部分可以提供一些示例数据,以帮助模型理解任务的具体要求。尽量确保示例数据的质量和数量。

5.输出指示:这部分描述了模型的输出要求。请提供详细的输出格式说明,以及需要回答的问题。这将帮助模型生成满足要求的答案。

6.提示参数:这部分包括一些与模型相关的参数,如temperature(温度)和stop(停止)。这些参数可以影响模型生成结果的方式。确保为模型提供合适的参数值,以获得理想的输出。

总之,这个模板对于构建一个人工智能系统是非常有用的。只要确保提供了足够详细的信息,模型就能够理解任务并提供合适的输出。同时,可以根据具体情况调整和优化这个模板,使其更符合您的需求。

(2)向ChatGPT询问该模板有何缺点和不足,对应的回答如下所示。ChatGPT的回答如下。

这个模板作为一个基本的指导框架,有一定的通用性,但也存在一些缺点和不足。

1.过于简化:该模板可能无法涵盖所有类型的任务和场景,对于一些复杂或特殊的任务,可能需要进一步细化和扩展模板来满足需求。

2.依赖于高质量输入:模板的有效性在很大程度上取决于提供的提示信息的质量。如果提示不清晰、不详细或包含错误,模板可能无法准确地理解任务并给出合适的回答。

3.适用性:虽然这个模板可以作为一个基本的框架来构建聊天机器人或人工智能系统,但它可能不适用于某些特定的场景或领域。在实际应用中,可能需要根据具体需求定制模板。

4.参数调整:模板中包含的参数设置对于生成高质量的输出至关重要。然而,找到适合特定任务的最佳参数组合,可能需要一定的尝试和错误。此外,不同任务可能需要不同的参数设置,从而增加了调整和优化的难度。

5.对于新手不够友好:对于缺乏经验的用户来说,这个模板可能不够直观和易于理解。需要提供更多的示例和解释,以便新手更好地掌握如何使用这个模板。

尽管存在这些缺点和不足,该模板仍然可以作为一个有用的工具来帮助构建和组织聊天机器人或人工智能系统。在实际应用中,根据具体需求和场景进行适当的调整和优化是很重要的。

(3)将JSON格式模板内容提交给ChatGPT,让其做出评价并给出建议。

提示的内容如下(使用GPT-4模型)。

你可以理解以下JSON提示模板吗,与上面的文本模板对比,你有何建议和评论,如何选择二者才能让你更好地做出回答。

ChatGPT首先表明可以理解JSON模板的目的和作用,并给出了相关的建议和评价。

ChatGPT的回答如下。

我可以理解您提供的这个JSON提示模板。这个模板以JSON格式组织了与之前文本模板相似的信息,使用JSON格式有助于标准化和结构化提示内容,使其更易于被其他人和大型语言模型理解。关于这个JSON模板,我有以下建议和评价。

结构化和可扩展性:JSON格式具有良好的结构化特性,使提示内容更加清晰和易于维护。此外,JSON格式可以方便地扩展和修改,以适应不同的任务和场景。

便于解析和处理:JSON格式易于解析和处理,与各种编程语言和库兼容。这意味着使用JSON格式的提示模板可以更容易地与其他系统集成。

可读性:虽然JSON格式在结构上比文本模板更加清晰,但对于非程序员用户来说,它可能不如文本模板那样直观和易于阅读。在选择使用哪种模板时,需要考虑目标用户群体的技能和需求。

适用于自动化处理:JSON格式的提示模板更适合与自动化处理和生成工具一起使用。这些工具可以自动根据JSON模板生成相应的输入和输出,提高工作效率。

在选择文本模板和JSON模板时,您可以根据实际需求和场景进行权衡。如果您关注更好地组织和标准化提示内容,且更易于与其他系统集成,那么JSON模板可能是更好的选择;如果您关注可读性和易用性,尤其是对于非程序员用户,文本模板可能更适合。

总之,根据您的具体需求和目标用户群体,可以灵活选择和调整提示模板。无论是文本模板还是JSON模板,都需要提供清晰、准确和详细的提示信息,以便能够更好地理解任务并提供合适的回答。

2.使用大语言模型测试

为了测试提示模板的通用性,在不同的大型语言模型环境中编写一些示例,并要求模型发现Python代码中的两个错误:print语句的缩进问题和字符串与数值相加的问题。下面是提示的具体内容。

(1)使用ChatGPT测试。向ChatGPT提交了上述的提示内容后,它给出了以下响应结果。ChatGPT能够发现Python代码中的两个错误,并提供了修正建议。

ChatGPT的回答如下。

根据您提供的提示模板,我将作为一个程序员,帮助初学者找出Python代码的错误并提供修正建议。

1.错误代码行:print("a test function")

错误原因:行的缩进不正确。

修正建议:在Python中,代码块的缩进应该保持一致。根据Python的规范,函数内部的代码应该有一个额外的缩进层次。修正后的代码行如下。

……

2.错误代码行:return 5 + "hello"

错误原因:尝试将整数(5)与字符串("hello")相加,这在Python中是不被允许的。

修正建议:请明确您希望实现的操作。如果想将数字5与字符串"hello"拼接在一起,可以将整数转换为字符串,使用str()函数,然后将两个字符串连接在一起。修正后的代码行如下。

……

(2)使用Bard测试。Bard是谷歌公司推出的大语言模型,目前处于测试使用阶段,对中文的支持还不够完善,将上述的提示内容翻译为英文后再提交。回答的内容如下所示,Bard只发现了一个错误,为了发现另一处代码错误需要继续提示。

(3)使用Claude测试。Claude是Anthropic新推出的一款类似于 ChatGPT的AI 助手,向Claude提交了上述的提示内容,响应结果如下。Claude可以发现Python代码中的两个错误,并给出修正建议。

Claude回答:

错误1: print语句缩进错误。

错误原因:print语句作为func_test函数体的一部分,缩进应与def语句相同。

修正建议:将print语句缩进与def语句一致。

错误2:return语句的数据类型不一致。

错误原因:数字5和字符串“hello”的数据类型不同,不能相加。

修正建议:

1) 将5改为b,如果a和b都是数字。

2) 使用str()将5转换为字符串,再与“hello”相加。

总之,这个代码示例中存在的两个错误分别是:缩进错误和数据类型不一致导致的错误。initialfixed缩进和数据类型一致,便可运行成功。 CCw7ks4oaPPx/A8nCUbvAm/i6gi8hi2e11H3L1pZe7Ovjjvsral+1e7hKM9Rh89j

点击中间区域
呼出菜单
上一章
目录
下一章
×