嘿 ChatGPT,写一篇关于 Prompt Engineering 的博客文章 [第 2 部分] | Mendix

跳到主要内容

提示工程的艺术:精准引导AI生成理想结果(上篇)

在本系列中,我们将研究如何通过实践和实验掌握制定精确有效提示的艺术。 在第一部分中,我们介绍了不同的提示类型、提示创建的最佳实践以及五种顶级提示技术。在第二部分中,我们将探索思维树提示以及如何开始提示——尤其是如果您是新手的话。

用例思维树提示

智能客服助手模板应用 是一个意念波· Mendix 可以下载并根据您的需求进行调整的应用程序。它使用 检索增强生成 (RAG) 和函数调用来连接到您自己的数据库,使这个用例成为提示的一个很好的例子(现在 - 还有更多!)。

支持助手应用程序旨在展示如何在公司中将 GenAI 用作支持助手,帮助遇到 IT 相关咨询的员工。它根据静态数据或以前的类似问题提供解决方案,并在聊天机器人无法单独解决查询时为 IT 帮助台创建支持凭单。同样,如果用户需要新的许可证或硬件,机器人可以为用户打开新的请求并促进体验。有关更多信息,请查看下面的动画。

为了实现支持助手应用程序的功能,我们创建了九个功能微流,LLM 可以调用这些微流来帮助生成响应。要确定在特定场景中需要解决哪个功能,提示起着至关重要的作用。因此,我们将重点介绍提示的相关部分,我们鼓励您在下一次 GenAI 丰富的活动中考虑这些部分 Mendix 应用

要阅读完整提示,请下载支持助手入门应用程序并搜索 TicketBot_ActionMicroflow 微流,位于 从 ChatContext 创建请求 活动并寻找 系統提示 在参数中。

首先,为机器人分配角色并提供初始信息至关重要。在支持助理应用示例中,我们为其分配了助理角色,并赋予其访问私人数据库以进行查询的权限。

You are a helpful assistant supporting the IT department with employees' inquiries, such as support tickets, licenses (e.g., Mendix) or hardware (e.g., Computer) requests. 
Use the knowledge base and previous support tickets as a database to find a solution to the user’s request without disclosing sensitive details or data from previous tickets.

接下来,我们开始提供一些关于所需输出的细节,包括语言、语气和格式。

The user expects direct, and clear answers from you. 
Use language that users who might not be familiar with advanced software or hardware usage can understand. 
The text will be rendered in markdown ...

现在机器人有了“个性”,我们开始使用思维树来执行指令,如下图所示。为此,我们列举了每种情况,以便 LLM 更容易遵循指令。

例如,作为第一种情况,我们考虑 请求不明确或不完整。我们希望防止 AI 模型解释用户的输入,因为它可能会提供错误的响应。因此,我们包括:

Never assume the user’s issue based on a vague input. 
If the user’s input is not clear or seems incomplete, you must first ask the user for more details to clarify the problem...

Do not proceed to suggest solutions or actions until the user’s issue is clearly understood.

可以提供其中一些类型的请求以及示例响应,例如:

Example response: "Could you please provide more details about the issue you are experiencing?"

或者,您可以通过在提示中包含以下内容并附上示例响应来限制机器人可以解决的主题。

Avoid answering questions about cooking, music, or dancing. 
Example response: "Your request is not an IT topic. I am here to assist you on support ticket and new licenses or hardware matters."

一旦建立了基础,我们就可以将指南转移到具体用例。在这种情况下,user 请求说明,在这里处理可用的请求。

There are two types of requests - requesting a new license or hardware, or IT support.

随后,我们可以深入研究每个请求的具体指令,并提及如果满足要求模型应该调用的函数名称。

If the user asks for help with an issue (e.g., battery drain, connection problems, etc.), call the RetrieveStaticInformation function to provide a solution from the knowledge base.

如上图所示,在要求未得到满足的情况下,包含一个替代部分,这就是思路树方法发挥作用的地方。在支持助理应用程序示例中,每当调用特定函数的条件不满足时,LLM 就会继续执行下一个条件,直到找到一个精确的函数来处理。

例如,如果在 检索静态信息 函数,它继续调用 检索类似票证 一。只有当以上条件都不满足时,它才会转到下一个功能并创建新的支持单。考虑到提示可以是指令列表,因此可以引用未来的命令,以防止多次指令重复导致提示过长。此引用的一个示例是:

If none of the options above help the user, proceed to step 3 Handling New Support Tickets.

第三步,重点是 处理新的支持单,可以再次拥有一个模型要跟踪的订单列表。如演示中所示,AI模型有助于创建新票证。因此,您可以为与此步骤相关的模型添加指南,例如:

Write the ticket description from the user’s perspective.
If you do not agree with an update request (e.g., the user wants to categorize a Miro license request as a hardware issue), explain to the user why you do not recommend that change. 
However, if the user insists, you can make the change.

当然,你希望每次都包含某些限制或规则,正如图表所示 附加规则。此步骤的重点不能包含在前面提到的类别之一中,因为这些被视为机器人必须遵循的更一般规则。

例如,应用程序限制(即,如果机器人没有执行某些活动的权限,例如保存或删除票证,则应通知用户手动执行)或功能限制(即,当机器人不确定要调用哪个功能时该怎么做)。

对于新手来说,这听起来和看起来可能有点让人不知所措,但有一个可以依赖的结构是必不可少的。因此,每当需要将新功能、说明或规则添加到提示中时,都可以更轻松地适应它们。在下一节中,我们将提供有关如何开始您的旅程的更多提示。

如何开始:无限制提示

开始提示可能会觉得很有挑战性。但是,您可以遵循一些建议,以便在这一旅程中更加自信。其中包括:

从小事做起,注重实验

第一次尝试时没有完美的提示。专注于写几行代码,了解 AI 模型如何响应您的命令。这对后续步骤很重要。

找到用例并收集所有需求

如果没有现成的用例,或者不知道 LLM 的期望是什么,就很难简单地提示并期望模型给出正确的答案。因此,请列出要求和请求。

从场景到即时创作

写下所有用例场景以及对提示的期望有助于创建第一个提示草稿。考虑提示类型、最佳实践,以及(如果必要)提示技巧。

迭代改进(测试、更多测试)

测试所有书面场景以评估创建的提示。尝试以多种形式编写问题以评估答案。

外部审查

为了进一步改进模型,您可能需要一些外部反馈。不同的视角可能会带来新的问题,这些问题可以在提示中得到解决。

如果输出不符合预期

AI 模型可能无法为您提供所需的输出,但请不要担心。哪里有问题,哪里就有解决方案。以下是其中一些:

  • 更改模型变体: 将模型更新为更高版本可能会对其性能产生很大影响。例如,选择 GPT4o 而不是 GPT3.5 可能会在大多数任务中表现出色,因为它在架构、训练和整体功能方面都有所改进。
  • 寻找替代方案: 根据用例,通过重新组织、简化或减少提示中的指令数量来寻找替代方案可以提高性能。例如,在使用函数调用的情况下,创建新函数而不是向提示中添加新指令可能是一种解决方案。
  • 按步骤测试: 确定提示失败的地方是了解输出为何不符合预期的另一种方法。通过针对给定的每条指令向 LLM 提出一系列问题并确定 AI 模型可能未执行的地方,它可以帮助您确定改进的重点领域。
  • 从‘零’开始: 有时从不同的角度删除提示大纲或改变提示技巧可能会提高性能。例如,如果指令的顺序发生变化,或者您决定采用三种想法的方法。
  • 变更项目范围: 虽然这可能是最不理想的,但如果您遇到很多问题,可能需要重新调整项目范围以确保响应的准确性。例如,对于像支持助理应用程序这样的项目,可以有两个提示,其中一个处理支持票,另一个处理许可证或硬件应用程序。

展望未来:制定成功提示

有了这些知识,你就可以开始你的快速工程之旅,并根据需要多次访问此博客以获取指导和提示。话虽如此,请随时访问 提示创建的基本最佳实践 在本系列的第一篇文章中讨论过。祝你好运!

如果您正在开发自己的 GenAI 用例并需要帮助或希望提供反馈,我们很乐意听取您的意见。请联系您的客户成功经理或在 #genai-connectors 频道​​中向我们发送消息 Mendix 社区 Slack。 在这里注册!

需要查看的其他资源: 提示库.

选择你的语言