實用工具
輸入
結果
結果會顯示在這裡。真實應用中的提示詞都是範本:一段系統訊息,這裡一個 {{product.name}},那裡一個 {{history}},在請求時由程式碼填入。當回答出錯時,第一個要問的就是模型到底收到了什麼。貼上範本,把變數值以 JSON 物件放進變數欄,這個工具就會像 promptfoo(promptfoo/promptfoo,MIT)以及所有 Mustache 風格的範本引擎一樣產生提示詞,列出沒有被填入的變數,並計算結果的 Token 數,讓你在範本上線前先測試。
它是怎麼運作的
- 會填入 {{ name }} 以及 {{ user.name }}、{{ items.0 }} 這類以點號分隔的路徑;大括號內的空格可有可無。
- 字串原樣插入,由純值組成的清單變成每項一行,物件或物件清單以縮排的 JSON 插入,null 則變成空字串。
- 沒有值的變數會保留在原處,並列在統計資料中;JSON 裡範本從未使用的每個頂層鍵也會一併列出。
- Jinja 和 Nunjucks 的邏輯——{% if %}、{% for %},以及 {{ name | upper }} 這類過濾器——會列為「未執行」並原封不動保留,所以輸出絕不會是猜測的結果。
你的資料去了哪裡
哪也沒去。本工具完全在你的瀏覽器裡執行:你貼上的文字由頁面處理,不會傳輸到任何伺服器,也不會寫進任何紀錄。
本工具免費且免登入,執行結果只存在於你目前的頁面裡,不會被儲存到任何地方。
它要花多少
本工具完全免費,不需要登入,也不消耗點數。
常見問題
- 支援哪些範本語法?
- 支援所有引擎都一致的部分:雙大括號變數與點號路徑。這涵蓋了 Mustache、Handlebars、promptfoo、LangChain 的 mustache 格式,以及簡單的 Jinja2 和 Nunjucks 範本。迴圈、條件、過濾器和引入不會執行,但會被列出,讓你知道範本的哪些部分需要真正的引擎才能處理。
- 要怎麼傳入之前的訊息清單或搜尋結果?
- 把變數設為 JSON 陣列。字串陣列會每項寫成一行,適合工單標題清單或檢索到的段落;物件陣列會寫成排版過的 JSON,模型能穩定地讀懂。如果需要編號清單,請自己在字串裡加上編號。
- 為什麼缺值的變數要留在輸出裡,而不是直接清空?
- 空白是看不見的:模型收到「署名為 。」卻沒有人察覺。殘留的 {{agent_name}} 在預覽和模型的回答中都一目了然,統計資料也會列出它的名稱。如果你真的要它是空的,就把變數設為空字串。
背後的開源專案
本工具是獨立實作,並未打包第三方函式庫。promptfoo/promptfoo(MIT)在程式碼層面做的是同一件事——如果你需要在自己的程式裡實作它,從那裡開始,而不是呼叫一個網頁。
promptfoo/promptfoo也常被稱作
- 提示詞範本
- prompt 範本
- prompt 變數
- mustache 範本
- jinja prompt
- 提示工程工具