What is Poml?
POML (Prompt Orchestration Markup Language) 引入了一種結構化、宣告式的方法,用於為大型語言模型 (LLM) 建構複雜精密的提示(指令)。如果您曾因管理凌亂且難以維護的文字和程式碼區塊形式的複雜提示而感到困擾,POML 提供了一個清晰的解決方案。它專為需要創建可靠、可擴展且多功能的 LLM 應用程式的開發人員和提示工程師而設計。
核心功能
✍️ 結構化與模組化提示 POML 採用清晰的類似 HTML 語法,包含諸如
<role>、<task>和<example>等元件。這鼓勵您將複雜的提示拆解為邏輯清晰、可重複使用的部分,使它們更易於閱讀、除錯及長期維護。🎨 呈現樣式解耦 運用類似 CSS 的系統,POML 將您的核心提示邏輯與其最終呈現方式分離。這讓您可以透過簡單地更改樣式表來嘗試不同的輸出格式(例如 JSON 與純文字)或調整詳細程度,而無需更動底層的提示內容。這直接有效降低了 LLM 對於格式變化的敏感性。
🔗 無縫資料整合 輕鬆地將外部資料來源直接嵌入或引用到您的提示中。透過專用元件,如
<img>、<table>和<document>,您可以整合圖片、CSV 資料或文字檔案,無需繁瑣的手動格式設定,確保您的提示既強大又簡潔。⚙️ 整合式模板與工具 POML 內建一個模板引擎,可使用變數、迴圈和條件式來創建動態、資料驅動的提示。結合功能齊全的 VS Code 擴充功能以及 Python 和 Node.js 的 SDK,您將獲得一個完整、專業的開發環境,具備語法突顯、自動完成和整合測試等功能。
應用情境:
動態、資料驅動的內容生成 想像您需要生成一份每週銷售摘要。透過 POML,您可以創建一個單一提示模板,透過
<table>元件接受銷售試算表。提示隨後可利用模板引擎遍歷資料、執行計算,並生成一份格式完美的敘述性報告,將手動任務轉化為自動化工作流程。提示格式的 A/B 測試 假設您想判斷 LLM 是透過項目符號列表還是 JSON 物件提供更好的結果。與其編寫兩個獨立、硬編碼的提示,您可以為您的核心邏輯使用單一 POML 檔案和兩種不同的樣式表。這讓您能夠快速測試和比較輸出格式,以找到最適合您特定任務的有效結構。
複雜的多模態指令 對於建立教育內容等任務,您可以輕鬆結合多種輸入。一個 POML 提示可以定義一個角色 (
<role>您是一位有耐心的老師...</role>)、設定一個目標 (<task>解釋這張圖表...</task>),並包含一個視覺參考 (<img src="diagram.png" />),所有這些都集中在一個結構化、易於人類閱讀的檔案中。
為何選擇 POML?
清晰度優於字串串接: 傳統提示工程通常涉及在應用程式程式碼中直接進行凌亂的字串操作,而 POML 提供了一種簡潔、宣告式的標記語言。這將您的提示邏輯與應用程式邏輯分離,使程式碼大幅提升可讀性和維護性。
透過解耦提升韌性: 與簡單的模板庫不同,POML 獨特地將提示*內容*與其*呈現方式*解耦。這意味著您可以透過修改樣式表來適應不同 LLM 的「格式敏感度」,而無需重寫您的核心提示邏輯—這是建構穩健、模型無關應用程式的關鍵優勢。
整合式工作流程,而不僅是語法: POML 不再是將提示在一個地方編寫、在另一個地方測試的分散流程,而是提供統一的開發體驗。VS Code 擴充功能提供即時預覽、錯誤檢查和互動式測試,從建立到部署都創造了無縫且高效的工作流程。
結論:
POML 將提示工程從字串操作的技藝轉變為一個結構化、可擴展的領域。透過提供建構、測試和維護複雜提示的工具,它讓您能夠以清晰度和信心創建更穩健、更精密的 AI 應用程式。
歡迎查閱官方文件或觀看示範影片以開始使用!
常見問題
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 是一個依據微軟開源行為準則發布的開源專案。該專案歡迎各界貢獻,並經評估符合微軟負責任 AI 標準。





