POML(Prompt Orchestration Markup Language)是一种新型标记语言,旨在通过类似 HTML 的结构化语法、强大的数据处理能力以及内容与样式分离的设计,解决大型语言模型(LLM)高级提示工程中常见的结构混乱、数据集成复杂等问题。它帮助开发者创建更复杂、更可靠的 LLM 应用,并提供配套的开发工具包。
核心特性
结构化提示标记:采用类似 HTML 的语法,包含
<role>、<task>和<example>等语义化组件。这种设计鼓励模块化开发,从而提高提示词的可读性、可重用性和可维护性。全面的数据处理:集成了专门的数据组件(如
<document>、<table>),可以无缝嵌入或引用文本文件、电子表格等外部数据源,并提供可定制的格式化选项。内容与样式分离:引入了类似 CSS 的样式系统,将提示词的核心内容与最终呈现方式解耦。开发者可以通过
<stylesheet>定义或内联属性来修改输出风格(如详细程度、语法格式),而无需改动核心逻辑。这一特性有效降低了大型语言模型对特定格式的敏感性,让提示词的调整更加灵活。
集成模板引擎:内置模板引擎支持变量(
{{ }})、循环(for)、条件判断(if)和变量定义(<let>),能够动态生成复杂的、由数据驱动的提示词。
丰富的开发工具包
POML 提供了一系列工具来简化开发流程:
IDE 扩展 (Visual Studio Code):提供语法高亮、自动补全、悬停文档、实时预览、错误检查和集成式交互测试等功能。
软件开发工具包 (SDK):为 Node.js (JavaScript/TypeScript) 和 Python 提供 SDK,以便轻松地将 POML 集成到各类应用程序和主流的 LLM 框架中。
快速入门
下面是一个简单的 POML 示例。它为模型定义了一个角色和任务,并指定了期望的输出格式。
<poml>
<role>你是一位正在向10岁孩子解释概念的耐心老师。</role>
<task>参考提供的图片,解释光合作用的概念。</task>
<img src="photosynthesis_diagram.png" alt="光合作用图解" />
<output-format>
解释应简单、有趣,且不超过100个字。
以“嘿,未来的科学家!”开头。
</output-format>
</poml>
安装指南
Visual Studio Code 扩展:
- 可从 Visual Studio Code Marketplace 安装。
- 在测试提示词之前,请务必配置好您偏好的 LLM 模型、API 密钥和端点。
Node.js SDK:
- 即将通过 npm 提供。
Python SDK:
- 通过
pip安装。
- 通过
项目信息与资源
- 详细文档:关于 POML 语法、组件、样式、模板、SDK 和 VS Code 扩展的完整信息,请参阅官方文档。
- 演示视频:观看 YouTube 上的 POML 介绍与演示视频。
- 开源贡献:该项目遵循 Microsoft 开源行为准则,并欢迎社区贡献。
- 负责任的 AI:项目已通过 Microsoft 负责任 AI 标准认证。
- 许可证:本项目采用 MIT 许可证。