Synth Daily

Microsoft POML —— 提示编排标记语言

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 许可证