免費全文 提示工程 進階

用提示模板管理版本:把提示當程式碼看待

提示散落在各個檔案的字串裡,就沒辦法回答「上週效果比較好的是哪一版」。

提示工程教程封面

提示是會影響產品行為的邏輯,卻常被當成隨手可改的文案。結果是:效果變差時無法回溯,也沒人說得清當時改了什麼。把提示當程式碼管理,成本很低,回報很高。

最小可行做法

  1. 把提示抽到獨立檔案,例如 prompts/classify_log.v3.txt,不要內嵌在程式邏輯裡。
  2. 檔名或檔頭帶版本號,舊版保留不刪。
  3. 呼叫時把版本號記進日誌,之後才能把「哪一版產生了這個輸出」對起來。
  4. 每個版本附一份評測結果,哪怕只有 30 題。

模板變數要有預設與檢查

from string import Template

class Prompt:
    def __init__(self, path, version):
        self.tpl = Template(open(path, encoding='utf-8').read())
        self.version = version

    def render(self, **kw):
        missing = [k for k in self.tpl.get_identifiers() if k not in kw]
        if missing:
            raise KeyError(f'提示模板缺少變數:{missing}')
        return self.tpl.substitute(**kw)

少了一個變數就丟例外,比讓 \$log 原封不動送進模型好得多——後者不會報錯,只會安靜地產生爛結果。

日誌至少記三樣:提示版本、模型版本、輸入雜湊。少了任何一樣,事後都很難重現問題。
下一步

這個主題還有更深入的實戰教程

VIP 專區收錄 50 篇進階內容:架構設計、生產環境取捨、成本與合規。 每週五新增 3 篇。

看訂閱方案 → 先逛逛 VIP 專區

延伸閱讀

更多提示工程 →