Zugang aus Übersee: www.kdjingpai.com
Ctrl + D Lesezeichen für diese Seite

POML(Prompt Orchestration Markup Language)是微软公司开发的一种新型标记语言,专门用于解决大型语言模型(LLM)高级提示词工程中遇到的挑战。在实际应用中,复杂的提示词往往缺乏有效的组织结构,难以集成多种数据格式,并且容易受到模型对特定格式的敏感性影响。POML通过提供一套类似HTML的结构化语法和类似CSS的样式系统,将提示词的内容与表现形式分离。这种设计不仅提升了提示词的可读性、可维护性和可重用性,还允许开发者通过专门的标签无缝嵌入文本、表格、图片等多种外部数据源。此外,它内置了模板引擎,支持变量、循环和条件判断,可以动态生成复杂的提示词。POML还提供包括VS Code插件和多语言SDK在内的开发工具,帮助开发者更高效地构建和测试复杂的LLM应用。

 

Funktionsliste

  • 结构化标记语法: 使用类似HTML的标签(如<role><task><example>)来组织提示词,实现模块化设计,增强可读性和可重用性。
  • 多样化数据处理:: Adoption<document><table><img>等专用组件,可以直接嵌入或引用外部数据,并自定义格式。
  • 内容与样式分离: 类似CSS的样式系统,允许通过<stylesheet>或内联属性来调整输出格式(如冗长程度、语法格式),而不必修改核心逻辑。
  • 内置模板引擎: 支持使用{{ }}变量、for循环、if条件判断和<let>变量定义,用于动态生成数据驱动的提示词。
  • 丰富的开发工具: 提供Visual Studio Code插件,支持语法高亮、自动补全、实时预览和错误诊断等功能。
  • Mehrsprachiges SDK: 提供Node.js(JavaScript/TypeScript)和Python的软件开发工具包,方便将其集成到现有工作流和LLM框架中。

Hilfe verwenden

POML通过提供标记语言、开发工具和SDK,简化了创建、测试和维护复杂提示词的流程。下面将详细介绍如何安装和使用POML。

1. der Einbau

POML提供了多种安装方式,开发者可以根据自己的工作环境选择最合适的一种。

Visual Studio Code 插件

这是最推荐的入门方式,因为插件提供了丰富的功能来提升开发效率。

  1. Öffnen Sie Visual Studio Code.
  2. 在左侧的活动栏中点击“扩展”图标。
  3. 在搜索框中输入“POML”。
  4. 找到官方发布的插件并点击“安装”。

安装插件后,你将获得语法高亮、代码自动补全、悬停文档提示、实时预览和错误检查等功能。

Node.js (NPM)

如果你的项目基于Node.js环境,可以通过npm来安装POML的JavaScript/TypeScript库。

npm install pomljs

Python (PyPI)

对于Python开发者,可以通过pip来安装POML库。

pip install poml

如果你希望从克隆的GitHub仓库进行本地开发安装,可以使用以下命令:

pip install -e .

2. 配置LLM模型

为了在VS Code插件中测试提示词,你需要配置所使用的大语言模型API。

  1. 在VS Code中,通过菜单栏 文件 > 首选项 > 设置 打开设置界面。
  2. 在搜索框中输入“POML”,找到相关配置项。
  3. 根据你的模型提供商(如OpenAI, Azure, Google等)设置以下信息:
    • Modell-Anbieter: 选择你的模型提供商。
    • API-Schlüssel: 填入你的API密钥。
    • Endpoint URL: 填入模型的API端点地址。

你也可以直接将这些配置信息添加到你的settings.jsonDokumentation.

3. 编写第一个POML文件

POML的语法非常直观,类似HTML。下面是一个基础示例,将其保存为example.pomlDokumentation.

<poml>
<role>你是一位耐心的老师,正在向一个10岁的孩子解释概念。</role>
<task>参考提供的图片,解释光合作用的概念。</task>
<img src="photosynthesis_diagram.png" alt="光合作用示意图" />
<output-format>
让解释保持简单、有趣,并且不超过100个字。
开头请说“你好,未来的科学家!”。
</output-format>
</poml>

代码解释:

  • <poml>: 所有内容的根标签。
  • <role>: 定义了希望LLM扮演的角色。
  • <task>: 描述了需要LLM完成的具体任务。
  • <img>: 嵌入一张图片作为上下文参考。src属性指向本地图片文件路径。
  • <output-format>: 明确指定了输出内容的格式要求。

4. 核心语法与功能操作

Dateneinbettung

POML最强大的功能之一是能够轻松集成不同类型的数据。

  • (Computer-)Datei: Verwendung<document>标签嵌入外部文本文件。
<document src="./report.txt" />
  • tabellarisch: Verwendung<table>标签可以直接定义表格数据或引用CSV文件。
<table src="./data.csv" />

模板引擎

POML内置了模板功能,可以动态生成提示词内容。

  • Variante: Verwendung<let>定义变量,并通过{{ }}在文本中使用。
<let name="concept">光合作用</let>
<task>请解释什么是{{concept}}。</task>
  • Zyklus: Verwendungfor属性遍历数据。
<let name="topics" type="json">["光合作用", "细胞呼吸", "基因遗传"]</let>
<task>
请依次解释以下概念:
<for each="item" in="topics">- {{item}}
</for>
</task>
  • 条件判断: Verwendungif属性来根据条件生成不同内容。
<let name="is_simple" type="boolean">true</let>
<if condition="is_simple">
<task>请用简单的语言解释这个概念。</task>
</if>

样式化

passieren (eine Rechnung oder Inspektion etc.)<stylesheet>标签,可以像CSS一样定义提示词的“样式”,将内容和格式分离。这有助于应对不同LLM对特定格式的偏好。

<stylesheet>
task {
format: "markdown";
verbosity: "high";
}
</stylesheet>
<task>解释黑洞的形成过程。</task>

In diesem Beispiel ist die<task>标签的内容将根据样式表的定义,以高详细度的Markdown格式呈现给LLM。

Anwendungsszenario

  1. 构建复杂的对话智能体
    在开发客服机器人或个人助理时,需要处理多轮对话、外部知识库和多变的输出格式。可以使用POML将对话逻辑、用户信息、文档数据和输出要求进行模块化管理,使提示词结构清晰,易于维护和扩展。
  2. Automatisierte Erstellung von Inhalten
    在报告生成、代码编写或营销文案创作等场景中,可以通过POML的模板引擎,将数据(如CSV文件、JSON数据)与固定的文本结构动态组合,批量生成高度定制化的内容。
  3. 教育和培训工具
    可以创建一个动态的学习辅助工具。例如,根据学生的年龄(作为变量),动态调整解释同一科学概念(如光合作用)的语言风格和详细程度,并结合图片、表格等多种媒体进行说明。
  4. Entwicklung multimodaler Anwendungen
    对于需要处理文本、图像等多种输入的LLM应用,POML提供了统一的接口。例如,在开发一个图像分析工具时,可以用<task>描述分析任务,用<img>标签传入待分析的图片,用<output-format>指定输出JSON格式的分析结果。

QA

  1. POML是什么?它解决了什么问题?
    POML是一种专为大型语言模型(LLM)设计的标记语言。它主要解决了在编写复杂提示词时遇到的结构混乱、数据集成困难、格式要求多变以及缺乏专业工具支持等问题,让提示词的开发和维护变得更加系统和高效。
  2. POML与直接编写文本提示词有什么区别?
    直接编写文本提示词就像在记事本里写代码,虽然简单,但当逻辑变复杂时会变得难以管理。POML则提供了类似网页开发的结构(HTML)、样式(CSS)和动态能力(模板引擎),将提示词的不同部分(如角色、任务、数据、格式要求)解耦,使其更易于阅读、修改和重用。
  3. 我是否需要学习一种全新的语言才能使用POML?
    不需要。POML的语法设计借鉴了HTML,非常直观易懂。如果你有任何标记语言(如HTML或XML)的使用经验,会发现上手POML非常快。官方提供的VS Code插件也极大地降低了学习门槛。
  4. 使用POML是否会影响与LLM的交互性能?
    不会。POML本身不直接与LLM交互。POML文件在使用SDK或工具时会被“渲染”成一个最终的纯文本或多模态请求,然后才发送给LLM。因此,它是一个在开发阶段提升效率的工具,不会给最终的API请求增加额外开销。
0Lesezeichen
0Gelobt

Sie können keine AI-Tools finden? Versuchen Sie es hier!

Geben Sie einfach das Schlüsselwort Barrierefreiheit Bing-SucheDer Bereich KI-Tools auf dieser Website bietet eine schnelle und einfache Möglichkeit, alle KI-Tools auf dieser Website zu finden.

zurück zum Anfang

de_DEDeutsch