《扣子开发AI Agent智能体应用(人工智能技术丛书)》(宋立桓,王东健,陈铭毅,程东升)【摘要 书评 试读】- 京东图书
提示词(Prompt)是一种自然语言的指令,用于告诉大语言模型需要生成什么样的内容。它也被称为“魔咒”,不同的“魔咒”内容可以召唤出指定的“神奇魔法”。通俗地说,提示词主要用来指导大语言模型完成具体的任务。
一个精心设计的提示词,能够最大限度地发挥大语言模型的能力,使其生成高质量、符合预期的内容。反之,如果提示词不够清晰、具体,AI生成的结果可能偏离用户的初衷,甚至产生误导性或有害的内容。可以说,提示词在人工智能应用中扮演着至关重要的角色,其质量直接决定了AI输出内容的质量。
在搭建智能体的过程中,设置提示词是一个非常重要的步骤。你可以根据自己的业务需求,直接编写提示词,也可以选择使用现成的提示词模板。如果需要,还可以引用一些已有的提示词资源。此外,扣子平台支持通过AI自动生成提示词,这不仅可以节省时间,还能确保提示词更加精准。本章将介绍提示词的工作原理、分类、写作方法、编写技巧,以及在扣子平台设置提示词的实操方法。
6.1 提示词的工作原理
要理解提示词的工作原理,我们需要先了解一下当前主流的AI模型—大型语言模型的基本架构。以GPT系列模型为例,它们本质上是一个巨大的神经网络,通过在海量文本数据上的预训练,学习自然语言的统计规律和语义特征。
当我们给GPT模型输入一个提示词时,模型会将其编码为一个高维向量,然后基于这个向量在神经网络中进行前向传播,预测下一个最可能出现的词。通过这种自回归(Auto-regressive)的方式,GPT可以根据提示词生成连贯、通顺的文本。
举个例子,如果我们给GPT输入提示词Once upon a time,模型会根据在预训练阶段学到的英语语言模型,预测下一个词最有可能是there,然后预测下一个词,直到生成一个完整的故事。在这个过程中,提示词起到了为文本生成定下基调、指明方向的作用。
除了文本生成外,提示词还可以引导AI完成问答、摘要、翻译等任务。以问答为例,我们可以将问题作为提示词输入,AI会根据提示词中的关键信息,在其知识库中搜索答案,并生成自然语言形式的回复。
提示词通过给AI提供必要的背景信息和任务指令,引导其在海量知识中检索、组合、生成符合人类需求的内容。它是人类赋予AI明确目标和行为约束的重要工具。随着AI模型变得越来越强大,提示词的设计也变得越来越关键,它已经成为人工智能领域一门新兴的艺术—提示词工程(Prompt Engineering)。
一个优秀的提示词工程师,需要深入理解AI模型的工作原理,洞察用户的真实需求,并用巧妙的语言将二者连接起来。这不仅需要扎实的自然语言处理知识,还需要跨学科的思维和丰富的想象力。相信在未来,随着AI技术的进一步发展,提示词工程将成为一个充满机遇和挑战的热门领域。
6.2 提示词的分类和写作方法
本节将深入讲解提示词的分类和写作方法,以及设计优质提示词的关键技巧。
1. 提示词可以分为两大类
根据应用场景和目的的不同,提示词可以分为两大类:任务型提示词和角色扮演型提示词。
1)任务型提示词
任务型提示词直接描述了需要AI完成的具体任务,如“请写一篇关于春天的诗歌”“请翻译以下英文段落”等。这类提示词通常包含明确的指令和目标,AI会根据提示词中的关键信息,在其知识库中检索、组合、生成相应的内容。
任务型提示词的优势在于目的性强,可以相对容易地引导AI生成符合预期的输出。但其局限性也比较明显,即过于依赖提示词本身的质量,缺乏灵活性和创造力。
2)角色扮演型提示词
与任务型提示词不同,角色扮演型提示词并不直接描述任务,而是通过设定一个虚拟的角色或场景,让AI代入其中进行创作。例如,“假设你是一位中世纪的吟游诗人,请创作一首歌颂骑士精神的诗歌”。
这类提示词给予了AI更大的想象空间和创作自由,有助于生成更加新颖、有趣的内容。同时,通过角色扮演,AI可以从不同的视角思考问题,并提供多元化的观点和见解。
但角色扮演型提示词对AI的理解能力和创造力提出了更高的要求,如果设定的角色或场景过于抽象、复杂,AI可能难以准确把握,导致生成的内容偏离预期。
2. 优质的提示词写作都应遵循CRISPE原则
无论是任务型提示词还是角色扮演型提示词,优质的提示词写作都应遵循以下CRISPE原则。
1)清晰(Clear)
提示词应该用简洁、明了的语言描述任务或角色,避免使用模棱两可或过于抽象的表述。AI对自然语言的理解能力虽然在不断提升,但仍然存在局限性。清晰的提示词可以帮助AI准确理解人类的意图,减少误解和无效输出。
2)相关(Relevant)
提示词中包含的信息应与目标任务紧密相关。不必要的背景信息或细节不仅会增加提示词的复杂度,还可能分散AI的注意力,导致生成的内容偏离主题。因此,在写作提示词时,我们应该聚焦于最关键的信息,去除无关的噪声。
3)具体(Specific)
具体的提示词可以为AI提供更多的约束和指引,帮助其生成更加符合预期的内容。例如,与其笼统地要求AI“写一篇文章”,不如具体说明文章的主题、目标受众、字数要求等。当然,也要注意平衡具体和灵活之间的关系,过于具体的提示词可能会限制AI的创造力。
4)全面(Comprehensive)
一个全面的提示词应涵盖完成任务所需的所有关键信息,不要遗漏重要的细节或要求。例如,在要求AI生成一个故事时,除了提供故事梗概外,还可以指定故事的体裁、风格、主要角色等。全面的提示词可以最大限度地发挥AI的能力,提高输出内容的质量。
5)示例(Examples)
在提示词中适当举例,可以帮助AI更好地理解任务要求和期望输出。例如,在要求AI生成一首诗歌时,我们可以给出几句示例,让AI了解我们想要的风格和意境。示例不仅能阐明人类的意图,还能启发AI的创意思维。
除了遵循CRISPE原则外,我们还可以通过一些写作技巧,在提示词中控制AI生成内容的语气、风格和结构。例如:
- 语气:可以在提示词中明确指定AI应该使用的语气,如严肃的、幽默的、专业的等。例如,“请用轻松幽默的语气介绍量子力学的基本概念。”
- 风格:提示词可以指定生成内容的风格,如新闻报道风格、学术论文风格、故事叙述风格等。例如,“请以科幻小说的风格,创作一个发生在未来火星殖民地的故事。”
- 结构:对于较长的生成任务,可以在提示词中提供一个大纲或框架,引导AI按照特定的结构组织内容。例如,“请写一篇关于全球变暖的文章,包括以下几个部分:全球变暖的定义和成因、全球变暖的影响、应对全球变暖的措施、总结与展望。”
总之,设计一个优质的提示词需要同时考虑清晰性、相关性、具体性、全面性等因素,并根据任务的需求灵活运用示例、语气、风格、结构等元素。这是一个需要不断实践和优化的过程,也是提示词工程师必须掌握的核心技能之一。
6.3 编写有效提示词的技巧
在搭建智能体或配置工作流中的大模型节点时,首要步骤是编写提示词,明确设定智能体和大模型节点的身份和目标。大语言模型会根据自己对提示词的理解来响应用户问题。一个好的提示词,可以显著提升大语言模型的输出质量。本节将逐步拆解编写提示词的技巧,并通过举例进行说明。
1. 明确目标和任务
编写提示词的第一步是明确智能体或大模型节点的目标和任务。问问自己,这个智能体需要完成什么?它应该如何表现?例如,你的目标是创建一个旅游助手,那么提示词可以这样写:“你是一个旅游助手,负责提供详细的旅游攻略和建议。”
2. 简洁而具体
提示词要尽量简洁,不要绕弯子。直接告诉智能体或大模型节点需要完成的任务。例如,如果想让智能体回答天气问题,提示词可以写:“回答用户关于当地天气的问题,包括温度和降雨情况。”如果让智能体翻译一句话,可以写“请将‘我爱中国’翻译成英文”。
3. 使用上下文信息
加入上下文信息可以让提示词更加精准。例如,你正在搭建一个智能客服,可以写:“用户正在咨询关于退货政策的问题,请根据公司的退货政策提供详细解答。”如果让智能体续写一个故事,需要在提示词中简单描述故事之前的情节,以便它更好地续写。
4. 避免歧义
提示词中的语言一定要清楚,避免模糊或多义的表达。模糊的指令可能导致智能体或大模型节点产生错误的理解,从而影响其性能。例如,不要写“请提供帮助”,而应该改成具体的要求:“告诉用户如何重置密码。”
5. 反馈和迭代
编写提示词是一个迭代的过程,根据智能体或大模型节点的反馈不断调整和优化提示词,以提高其效果。根据智能体或大模型节点的回答,观察效果是否符合预期。如果不满意,可以逐步调整提示词。例如,最初的提示词是:“帮我写一篇关于环境保护的文章。”如果发现结果不够深入,可以修改为:“写一篇关于环境保护的文章,重点讨论塑料污染的危害。”
6. 利用示例
提供示例输入和预期输出,可以帮助智能体或大模型节点学习如何正确响应。例如,输入:“我需要一份关于意大利的旅游攻略。”期望的输出是:智能体提供一份详细的意大利旅游攻略,包括景点和美食。如果想让智能体判断句子的情感倾向,可以给它几个示例句子,如“今天我很开心”是积极的,“我考试没及格,好难过”是消极的,然后让它对新的句子进行判断。
7. 考虑多样性
用户的表达方式多种多样,在编写提示词时,需要考虑不同用户的表达方式。智能体或大模型节点应该能够处理多种不同表达方式的输入。例如:“无论用户用什么方式提问,帮助用户找到最接近的问题答案。”
8. 测试和验证
在发布智能体或工作流之前,进行充分的测试和验证,以确保提示词在各种情况下都能正常工作,包括测试对异常输入的处理能力。例如,测试智能体如何处理一些异常输入。如果用户问了无关的问题,智能体能否正确回答?如果用户输入错误的信息,智能体能否纠正?
9. 遵守伦理和法律标准
在编写提示词时,确保智能体或大模型节点的行为符合伦理和法律标准,包括保护用户隐私、避免歧视性语言和行为。例如:“不要记录用户的隐私信息。不要提供与健康相关的错误建议。”
表6-1所示是一个提示词示例,包含人物设定、功能流程、约束限制和回复格式。
在为扣子的智能体或工作流大模型节点编写提示词时,支持通过输入{}来引用已经配置到智能体或工作流的技能,例如插件工具、工作流、图像流以及知识库,可以实现提示词的高效编写。