在开发人工智能应用时,一个常见的问题是缺乏统一的方法来管理提示。不同的团队往往会采取各自独特的做法来构建和存储提示,这不仅导致了资源的浪费,还阻碍了团队之间的知识共享与协作。为了解决这个问题,微软赞助的开源项目Prompty应运而生。Prompty是一个Visual Studio Code扩展,旨在简化和标准化大型语言模型(LLM)提示的构建与管理。
Prompty:实现模型无关的LLM工作新方式
在人工智能的开发和应用中,我们迫切需要一个与特定模型无关的大型语言模型(LLM)工作方式。这种方式应能在我们的开发工具中轻松尝试不同的LLM,使我们能够在不改变工作环境的情况下灵活使用它们。这正是微软赞助的Prompty项目所追求的目标。
Prompty,作为一个Visual Studio Code扩展,有效地解决了与LLM和其他生成式AI工具相关的众多挑战。通过Prompty,开发者能够在熟悉的编码环境中直接管理和测试LLM提示,大大提高了开发效率和灵活性。
Prompty项目已在GitHub上开源,并接受来自社区的贡献和反馈。无论你是希望贡献代码,还是向开发团队提出建议,Prompty都欢迎你的参与。如果你更倾向于直接开始编码,你可以在Visual Studio Code市场中轻松找到并安装Prompty扩展,它将与你的文件系统和代码编辑器紧密集成。
Prompty的设计理念是直观和易用。它采用了一种易于理解的格式,这种格式从YAML等广为人知的配置语言中汲取灵感。我们通过提示来配置生成式AI,这些提示实际上定义了模型在寻找答案时应探索的语义空间。
Prompty的核心是一种特定领域的语言,用于描述与生成式AI的交互。这种语言被嵌入到Visual Studio Code扩展中,充分利用了语言服务器的功能,如格式化、错误高亮和代码补全等。目前,Prompty支持Python和C#的输出,并计划在未来的版本中增加对JavaScript和TypeScript的支持。
如果你没有深入了解过Build 2024的会议内容,那么你可能错过了关于如何使用Prompty作为人工智能开发平台一部分的精彩讨论。Prompty不仅简化了LLM提示的管理和使用,还为开发者提供了一个强大的工具,以更高效地构建和测试生成式AI应用。
使用Prompty构建和测试提示
Prompty为开发者提供了一个直观且强大的工具,使他们能够在Visual Studio Code环境中轻松构建和测试大型语言模型(LLM)的提示。下面是如何使用Prompty来构建和测试提示的详细步骤:
设置应用程序框架:首先,除了安装Visual Studio Code和Prompty扩展外,您还需要搭建一个可以访问LLM端点的应用程序框架。这通常涉及配置适当的软件包和依赖项。创建.prompty文件:在Visual Studio Code的资源管理器中,右键点击您的项目或应用程序的根文件夹,并选择创建一个新的提示。这将自动生成一个以.prompty为扩展名的文件,您可以根据需要重命名该文件。编写提示内容:打开新创建的.prompty文件,开始构建您的提示资产。该文件主要分为两部分:应用程序描述:包括正在使用的模型的详细信息、应用程序需要的参数,以及基于模型的任何信息的样本。系统提示:定义您期望的输出类型。接下来是上下文信息,这可能是由用户提供的,或者是应用程序为了生成自然语言输出而提供给LLM的信息。测试提示:Prompty允许您在Visual Studio Code的输出窗格中直接测试您的提示,并显示LLM的生成输出。这使得开发者能够轻松细化LLM输出的行为,例如,从非正式、聊天式的输出切换到更正式的输出风格。配置环境变量:为了与LLM端点进行通信,您可能需要提供适当的环境变量,包括任何必要的身份验证令牌。为了保护这些敏感信息,最好将它们保存在一个单独的文件中,并确保它们不会被意外泄露。迭代和优化:根据LLM的输出结果,您可以不断调整和优化您的提示,以达到最佳的生成效果。Prompty的即时测试功能使得这一过程变得高效且直观。通过使用Prompty,开发者可以更加专注于构建高质量的LLM提示,而无需担心底层的复杂性和配置问题。这大大简化了与生成式AI的交互过程,并加速了AI应用的开发周期。
将Prompty与LM编排器结合使用
在使用Prompty构建和测试了LLM提示之后,开发者可以将这些提示资产数据与各种LLM编排器结合使用,从而创建出更加强大和灵活的AI应用。这包括Azure AI Studio中的提示流以及用于构建独立AI驱动代理的语义内核等工具。
通过这种方法,开发者可以利用提示作为检索增强生成(RAG)驱动的应用程序的基础。这意味着,通过添加基础数据和使用提示来生成外部数据源的自然语言接口,可以有效地降低错误输出的风险。
当与LLM编排器结合使用时,Prompty生成的提示描述可以用于构建与LLM的交互,这些交互可以被封装在异步操作中。这样,开发者可以创建出AI应用程序,其中大部分繁重的工作都由语义内核等工具处理。通过将提示定义与应用程序代码分离,开发者可以使用.prompty资产文件在应用程序之外更新LLM交互,从而提高了灵活性和可维护性。
将提示资产包含到应用程序中也非常简单。开发者只需选择适当的编排器,并自动生成代码片段以将提示集成到应用程序中。虽然目前支持的编排器数量有限,但Prompty是一个开源项目,因此开发者可以提交额外的代码生成器来支持其他应用程序开发工具链。
值得注意的是,Prompty目前主要关注于构建云托管的LLM提示。然而,随着技术的不断发展,我们正在从大型模型转向更小、更集中的工具,如微软的Phi Silica,这些工具设计用于在个人和边缘硬件上的神经处理单元上运行,甚至可以在手机上运行。
对于希望交付边缘AI应用程序的开发者来说,像Prompty这样的工具应该成为其工具链的重要组成部分。这些工具需要与本地端点合作,为通用SDK生成API调用。未来,我们期待看到微软扩展Prompty的功能,以支持其承诺在Windows App SDK中作为Copilot Runtime的一部分交付的Phi Silica等工具。这将为.Net和C++开发者提供必要的工具来管理本地提示以及针对云的提示,从而进一步推动AI技术的发展和应用。
发展人工智能工具链:Prompty的角色与协作优势
在构建人工智能(AI)应用的过程中,一个完善的工具链是不可或缺的。这样的工具链允许具有不同技能的人员进行高效的协作,从而加速AI应用的开发进程。Prompty,作为这样一个工具链中的关键组件,为提示工程师和应用程序开发者提供了一个桥梁,使他们能够以更加协同的方式进行工作。
Prompty的优势在于它允许提示工程师构建和管理交付连贯AI应用所需的提示,同时以应用程序开发者可以在其代码中使用的方式提供这些提示。这种方法的出现,使得提示的构建和管理变得更加直观和高效,大大降低了AI应用开发的复杂性。
此外,Visual Studio Code作为一个强大的代码编辑器,支持众多扩展,这使得我们可以将各种工具组装成一个连贯的工具链。与拥有单一的人工智能开发环境相比,这种方法提供了更高的灵活性和可扩展性。开发者可以根据项目的具体需求,选择并集成所需的扩展,从而构建出最适合自己的开发环境。
在AI工具链中,不同的工具扮演着不同的角色。例如,Windows AI工具包适用于那些正在进行模型调整的人员。而Prompty则专注于提示的构建和管理,使得开发者能够更加专注于应用逻辑的实现,而无需过多关心底层的AI技术细节。
值得一提的是,Prompty还促进了提示工程师和应用程序开发者之间的协作。通过记录和测试提示,他们可以并行进行应用程序和提示的构建工作。这种协作方式不仅提高了开发效率,还确保了AI应用的一致性和质量。
总的来说,Prompty在AI工具链中发挥着至关重要的作用。它通过与Visual Studio Code等工具的紧密集成,为开发者提供了一个强大而灵活的开发环境,使得他们能够更加高效地构建出高质量的AI应用。同时,Prompty还推动了不同技能人员之间的协作,为AI应用的开发注入了新的活力。
编译:https://www.infoworld.com/article/3477435/build-and-manage-llm-prompts-with-prompty.html