What is Poml?
POML(Prompt Orchestration Markup Language)引入了一种结构化、声明式的方法,用于构建大型语言模型(LLM)的复杂提示。如果你曾为管理复杂提示而烦恼,它们常常表现为难以维护的零散文本和代码块,那么POML提供了一个清晰的解决方案。它专为需要创建可靠、可扩展和多功能LLM应用的开发者和提示工程师而设计。
主要功能
✍️ 结构化和模块化的提示 POML采用清晰的、类似HTML的语法,包含诸如
<role>、<task>和<example>等组件。这鼓励用户将复杂的提示分解成逻辑清晰、可重用的部分,从而使其在长期使用中更易于阅读、调试和维护。🎨 解耦的呈现样式 POML利用类似CSS的系统,将核心提示逻辑与其最终呈现分离。这使得您可以通过简单地更改样式表来尝试不同的输出格式(例如,JSON与纯文本)或调整详细程度,而无需改动底层提示内容。这直接降低了LLM对格式变化的敏感性。
🔗 无缝数据集成 您可以毫不费力地直接在提示中嵌入或引用外部数据源。借助诸如
<img>、<table>和<document>等专用组件,您可以集成图像、CSV数据或文本文件,而无需繁琐的手动格式化,确保您的提示既强大又简洁。⚙️ 集成式模板和工具 POML内置了一个模板引擎,用于使用变量、循环和条件语句创建动态的、数据驱动的提示。结合功能完备的VS Code扩展以及Python和Node.js的SDK,您将获得一个完整的专业开发环境,具备语法高亮、自动补全和集成测试等功能。
使用场景:
动态、数据驱动的内容生成 设想您需要生成一份每周销售总结。使用POML,您可以创建一个单独的提示模板,通过
<table>组件接受销售电子表格。该提示随后可以使用模板引擎遍历数据、执行计算,并生成一份格式完美的叙述性报告,从而将一项手动任务转变为自动化工作流程。A/B测试提示格式 假设您想确定LLM在处理项目符号列表或JSON对象时,哪种格式能提供更好的结果。与其编写两个独立的、硬编码的提示,不如使用一个POML文件来承载您的核心逻辑,并搭配两种不同的样式表。这使您能够快速测试和比较输出格式,从而为您的特定任务找到最有效的结构。
复杂的、多模态指令 对于创建教育材料之类的任务,您可以轻松组合多种输入。一个POML提示可以定义一个角色(
<role>You are a patient teacher...</role>)、设定一个目标(<task>Explain this diagram...</task>),并包含一个视觉参考(<img src="diagram.png" />),所有这些都集中在一个结构化、易于人类阅读的文件中。
为何选择POML?
清晰胜于拼接: 传统提示工程通常涉及在应用程序代码中直接进行杂乱的字符串操作,而POML提供了一种清晰、声明式的标记语言。这将提示逻辑与应用程序逻辑分离,使代码更易于阅读和维护。
解耦带来的弹性: 与简单的模板库不同,POML独具匠心地将提示内容与其呈现解耦。这意味着您可以通过修改样式表来适应不同LLM的“格式敏感性”,而无需重写核心提示逻辑——这对于构建健壮、模型无关的应用程序至关重要。
一体化工作流程,而非仅仅一种语法: POML提供了一种统一的开发体验,而非在不同地方编写和测试提示的碎片化流程。VS Code扩展提供实时预览、错误检查和交互式测试功能,从而创建从创建到部署的无缝高效工作流程。
总结:
POML将提示工程从一种字符串操作的技巧转变为一门结构化、可扩展的学科。通过提供清晰自信地构建、测试和维护复杂提示的工具,它使您能够创建更健壮、更复杂的AI应用。
立即查阅官方文档或观看演示视频,开始您的POML之旅吧!
常见问题
1. 如何开始使用POML? 最简单的入门方法是直接从Visual Studio Code Marketplace安装POML扩展。这提供了语法高亮、自动补全和集成测试功能。您也可以安装Python(pip install poml)或Node.js的SDK,将POML集成到您的应用程序中。
2. 使用VS Code扩展是否需要LLM API密钥? 对于语法高亮和自动补全等功能,您不需要API密钥。然而,要使用集成的提示测试和实时预览功能,您必须在VS Code设置中配置您的LLM提供商(例如OpenAI、Azure、Google)、API密钥和端点。
3. POML是开源项目吗? 是的,POML是一个在Microsoft Open Source Code of Conduct下发布的开源项目。该项目欢迎贡献,并已通过评估,符合Microsoft Responsible AI Standard。





