Anthropic發(fā)布Prompt Engineering全新指南
Anthropic 發(fā)布的全新 Prompt Engineering 指南,包含:元提示、模板、系統(tǒng)角色、XML 標簽等關(guān)鍵技術(shù)。
prompt通常包含以下兩種類型的內(nèi)容:
- 固定內(nèi)容:在多次交互中保持不變的靜態(tài)指令或上下文
- 變量內(nèi)容:隨每個請求或?qū)υ挾兓膭討B(tài)元素,例如:
用戶輸入
用于檢索增強生成(RAG)的檢索內(nèi)容
對話上下文,如用戶賬戶歷史
系統(tǒng)生成的數(shù)據(jù),如來自其他調(diào)用的工具使用結(jié)果
prompt模板:將這些固定和變量部分結(jié)合在一起,為動態(tài)內(nèi)容使用占位符??{{}}??表示。
prompt模板提供了以下幾個好處:
- 一致性:確保在多次交互中保持提示的一致結(jié)構(gòu)
- 效率:無需重寫整個提示即可輕松替換變量內(nèi)容
- 可測試性:通過僅更改變量部分來快速測試不同的輸入和邊緣情況
- 可擴展性:隨著應(yīng)用程序復(fù)雜度增加,簡化提示管理
- 版本控制:通過僅跟蹤提示的核心部分(與動態(tài)輸入分開),輕松跟蹤提示結(jié)構(gòu)的變化
為了系統(tǒng)地講解Prompt Engineering技術(shù),將從一個示例開始。
一、一個好的prompt長什么樣
- 差的prompt
從以下維基百科文章標題列表中,識別這個句子來自哪篇文章。
只需回答文章標題,不要添加其他內(nèi)容。
文章標題:
{{titles}}
要分類的句子:
{{sentence}}- 好的prompt
您是一個智能文本分類系統(tǒng),專門將句子與維基百科文章標題匹配。您的任務(wù)是根據(jù)提供的文章標題列表,確定給定句子最可能屬于哪篇維基百科文章。
首先,請查看以下維基百科文章標題列表:
<article_titles>
{{titles}}
</article_titles>
現(xiàn)在,考慮需要分類的這個句子:
<sentence_to_classify>
{{sentence}}
</sentence_to_classify>
您的目標是確定提供的列表中哪個文章標題最匹配給定的句子。請按照以下步驟操作:
1. 列出句子中的關(guān)鍵概念
2. 將每個關(guān)鍵概念與文章標題進行比較
3. 對最相關(guān)的前3個標題進行排名并解釋原因
4. 選擇最適合或最相關(guān)的文章標題
在<analysis>標簽中包含您的分析。包括以下內(nèi)容:
- 句子中的關(guān)鍵概念列表
- 每個關(guān)鍵概念與文章標題的比較
- 最相關(guān)的前3個標題排名及解釋
- 您的最終選擇和理由
在分析之后,提供您的最終答案:從列表中選擇單個最適合的維基百科文章標題。
僅輸出所選的文章標題,不要添加任何額外的文本或解釋。通過對比可以總結(jié)以下prompt必備的要素。
1.1 賦予角色,包含以下幾點:
- 角色本身的描述:?
?您是一個智能文本分類系統(tǒng)?? - 角色所處的背景:?
?專門將句子與維基百科文章標題匹配?? - 角色的任務(wù):?
?根據(jù)提供的文章標題列表,確定給定句子最可能屬于哪篇維基百科文章??
那么,為什么要使用角色提示呢?
- 提高準確性:在復(fù)雜場景中(如法律分析或財務(wù)建模),角色提示可以顯著提升大模型的表現(xiàn)。
- 定制語氣:無論您需要CFO的簡潔還是文案撰寫人的文采,角色提示都可以調(diào)整大模型的溝通風(fēng)格。
- 提升專注度:通過設(shè)置角色背景,e能更好地保持在您任務(wù)特定要求的范圍內(nèi)。
1.2 prompt中的上下文,必須保持清晰、直接、具體。
舉個例子:
你的任務(wù)是為我們第三季度 AcmeCloud 功能發(fā)布制作一封有針對性的營銷郵件。
指示:
1. 針對目標受眾:從本地部署升級到云端的中型科技公司(100-500名員工)
2. 突出3個關(guān)鍵新功能:高級數(shù)據(jù)加密、跨平臺同步和實時協(xié)作
3. 語氣:專業(yè)但平易近人。強調(diào)安全性、效率和團隊協(xié)作
4. 包含明確的行動號召:30天免費試用,優(yōu)先獲得入門培訓(xùn)
5. 主題行:少于50個字符,提到”安全”和”協(xié)作”
6. 個性化:使用{{COMPANY_NAME}}和{{CONTACT_NAME}}變量
結(jié)構(gòu):
1. 主題行
2. 郵件正文(150-200字)
3. CTA按鈕文本- 任務(wù)結(jié)果將用于什么:?
?營銷郵件?? - 輸出內(nèi)容面向什么受眾:?
?中型科技公司?? - 任務(wù)屬于什么工作流程,以及這個任務(wù)在工作流程中的位置
工作流程可以按照順序,使用編號列表或項目符號,讓大模型按照順序執(zhí)行
提示中的2、3、4、5、6就是工作流程
- 任務(wù)的最終目標,或者成功完成任務(wù)是什么樣子
- 郵件輸出的結(jié)構(gòu)
基于上述兩點,一個基礎(chǔ)版本的prompt就完成了,但是當(dāng)我們測試它的時候,如果有不如意的地方,該如何改進它呢?
二、優(yōu)化Prompt的技巧
提示詞優(yōu)化器通過4個步驟增強您的提示詞:
- 添加示例:在提示詞模板中添加與任務(wù)相關(guān)的示例
- 思維鏈精煉:添加和完善詳細的推理指令
- 模板結(jié)構(gòu)化:創(chuàng)建具有清晰章節(jié)和XML標簽的結(jié)構(gòu)化模板
- 鏈式提示增強:展示從輸入到輸出的逐步推理
2.1 添加示例
- 添加示例的原因
準確性:示例減少對指令的誤解。
一致性:示例強制執(zhí)行統(tǒng)一的結(jié)構(gòu)和風(fēng)格。
性能:精心選擇的示例可以提升大模型處理復(fù)雜任務(wù)的能力。
- 什么樣的示例是有效的
- 相關(guān)的:你的示例反映了你的實際用例。
- 多樣化的:你的示例涵蓋邊緣情況和潛在挑戰(zhàn),并且有足夠的變化使大模型不會無意中捕捉到不必要的模式。
- 清晰的:你的示例用
<example>標簽包裝(如果有多個,則嵌套在<examples>標簽中)以保持結(jié)構(gòu)。
舉個例子:
我們的客服團隊被非結(jié)構(gòu)化反饋淹沒了。你的任務(wù)是為我們的產(chǎn)品和工程團隊分析反饋并對問題進行分類。使用這些類別:UI/UX、性能、功能請求、集成、定價和其他。同時評估情感(積極/中性/消極)和優(yōu)先級(高/中/低)。這里有一個示例:
<example>
輸入:新儀表板一團糟!加載需要很長時間,而且我找不到導(dǎo)出按鈕。請盡快修復(fù)這個問題!
類別:UI/UX、性能
情感:消極
優(yōu)先級:高</example>
現(xiàn)在,分析這個反饋:{{FEEDBACK}}2.2 添加思維鏈CoT
- 添加思維鏈的原因
準確性:鼓勵大模型逐步分解問題,可以減少錯誤,尤其是在數(shù)學(xué)、邏輯、分析或一般復(fù)雜任務(wù)中。
連貫性:結(jié)構(gòu)化思維可以產(chǎn)生更連貫、組織更完善的回答。
調(diào)試:查看 大模型 的思維過程有助于你找出提示可能不清晰的地方。
- 思維鏈不好的地方
- 增加輸出長度可能影響延遲。
- 并非所有任務(wù)都需要深入思考,簡單不需要逐步解決的問題,不需要思維鏈
- 明智地使用思維鏈以確保性能和延遲的適當(dāng)平衡。
什么樣的思維鏈是好的,從基礎(chǔ)的思維鏈開始
- 基本思維鏈提示:在提示中添加?
?逐步思考??這類關(guān)鍵詞
起草個性化郵件,向捐贈者請求為今年的關(guān)愛兒童計劃捐款。
項目信息:
<program>{{PROGRAM_DETAILS}}
</program>
捐贈者信息:
<donor>{{DONOR_DETAILS}}
</donor>
在寫郵件之前逐步思考。缺乏關(guān)于如何思考的指導(dǎo)(如果任務(wù)特別針對你的應(yīng)用、用例或組織,這尤其不理想)
- 引導(dǎo)式提示:在思考過程中要遵循具體的步驟
起草個性化郵件,向捐贈者請求為今年的關(guān)愛兒童計劃捐款。
項目信息:
<program>{{PROGRAM_DETAILS}}
</program>
捐贈者信息:
<donor>{{DONOR_DETAILS}}
</donor>
在寫郵件之前先思考。首先,根據(jù)他們的捐贈歷史和他們過去支持過的活動,思考什么信息可能吸引這位捐贈者。然后,根據(jù)他們的歷史,思考關(guān)愛兒童計劃的哪些方面會吸引他們。最后,使用你的分析寫出個性化的捐贈者郵件。缺乏結(jié)構(gòu)化,難以剝離和分離答案與思考過程。
- 結(jié)構(gòu)化提示:使用像?
?<thinking>?? 和??<answer>?? 這樣的 XML 標簽來分離推理和最終答案。
起草個性化郵件,向捐贈者請求為今年的關(guān)愛兒童計劃捐款。
項目信息:
<program>{{PROGRAM_DETAILS}}
</program>
捐贈者信息:
<donor>{{DONOR_DETAILS}}
</donor>
在寫郵件之前在 <thinking> 標簽中思考。首先,根據(jù)他們的捐贈歷史和他們過去支持過的活動,思考什么信息可能吸引這位捐贈者。然后,根據(jù)他們的歷史,思考關(guān)愛兒童計劃的哪些方面會吸引他們。最后,在 <email> 標簽中使用你的分析寫出個性化的捐贈者郵件。2.3 XML標簽
在思維鏈提示當(dāng)中,可以看到結(jié)構(gòu)化提示中使用??<thinking>??這種xml標簽,能幫助大模型進行思考。
那么為什么它有這么大的魔力呢?
- 清晰度:清晰地分隔提示詞的不同部分,確保提示詞結(jié)構(gòu)良好。
- 準確性:減少因大模型誤解提示詞部分而導(dǎo)致的錯誤。
- 靈活性:無需重寫所有內(nèi)容即可輕松查找、添加、刪除或修改提示詞的部分內(nèi)容。
- 可解析性:讓大模型在輸出中使用XML標簽,可以通過后處理更容易提取其響應(yīng)的特定部分。
XML標簽構(gòu)建時需要遵守的原則:
- 保持一致性: 在整個提示詞中使用相同的標簽名稱,并在談?wù)搩?nèi)容時引用這些標簽名稱(例如,?
?使用<contract>標簽中的合同??)。 - 嵌套標簽: 對于層次結(jié)構(gòu)內(nèi)容,你應(yīng)該嵌套標簽?
?<outer><inner></inner></outer>??。
舉兩個例子:
你是AcmeCorp的財務(wù)分析師。為我們的投資者生成Q2財務(wù)報告。
AcmeCorp是一家B2B SaaS公司。我們的投資者重視透明度和可行的見解。
使用這些數(shù)據(jù)生成報告:<data>{{SPREADSHEET_DATA}}</data>
<instructions>
1. 包括以下部分:收入增長、利潤率、現(xiàn)金流。
2. 突出優(yōu)勢和需要改進的領(lǐng)域。
</instructions>
使用簡潔專業(yè)的語氣。遵循這個結(jié)構(gòu):
<formatting_example>{{Q1_REPORT}}</formatting_example>
分析這份軟件許可協(xié)議的法律風(fēng)險和責(zé)任。
我們是一家考慮將此協(xié)議用于核心數(shù)據(jù)基礎(chǔ)設(shè)施的跨國企業(yè)。
<agreement>
{{CONTRACT}}
</agreement>
這是我們的標準合同供參考:
<standard_contract>{{STANDARD_CONTRACT}}</standard_contract>
<instructions>
1. 分析以下條款:
- 賠償
- 責(zé)任限制
- 知識產(chǎn)權(quán)所有權(quán)
2. 注意不尋常或令人擔(dān)憂的條款。
3. 與我們的標準合同進行比較。
4. 在<findings>標簽中總結(jié)調(diào)查結(jié)果。
5. 在<recommendations>標簽中列出可行的建議。</instructions>輸出:
<findings>
1. 賠償(第8條):
- 問題:過于寬泛。我們需要對”任何和所有”因使用而產(chǎn)生的索賠進行賠償。
- 風(fēng)險:即使是供應(yīng)商的疏忽或產(chǎn)品缺陷也可能使我們承擔(dān)責(zé)任。
- 偏差:我們的標準合同將賠償限制在因我們違反協(xié)議而產(chǎn)生的索賠。
2. 責(zé)任限制(第9條):
- 問題:將所有損害賠償(包括直接損害)上限設(shè)為500美元。
- 風(fēng)險:對企業(yè)使用來說嚴重不足。關(guān)鍵故障可能造成數(shù)百萬美元損失。
- 偏差:我們的標準允許直接損害賠償最高達已付費用的12個月。
3. 知識產(chǎn)權(quán)所有權(quán)(第12條):
- 問題:授予供應(yīng)商對我們的修改/集成的共同所有權(quán)。
- 風(fēng)險:供應(yīng)商可能使用或出售我們的專有算法或數(shù)據(jù)洞察。
- 偏差:我們的標準保留我們工作的完全所有權(quán)。
4. 不尋常條款:
- 第5.3條:供應(yīng)商可以”出于任何目的”使用我們的使用數(shù)據(jù)。
- 第7.2條:供應(yīng)商可以僅提前7天通知就”隨意”終止。
- 第11條:不提供任何保證,即使是基本的適銷性保證。
</findings>
<recommendations>
1. 拒絕這份協(xié)議。對企業(yè)來說風(fēng)險遠大于收益。
2. 提出反建議:
- 賠償:限制在因我們違反協(xié)議而產(chǎn)生的索賠。
- 責(zé)任:直接損害上限設(shè)為12個月費用;就間接損害進行談判。
- 知識產(chǎn)權(quán):完全擁有我們的修改/集成。
- 數(shù)據(jù)使用:僅限于服務(wù)改進。
- 終止:最少90天通知;僅限有正當(dāng)理由。
- 保證:要求基本的適銷性和適用性保證。
3. 如果供應(yīng)商拒絕,探索替代供應(yīng)商或內(nèi)部解決方案。
4. 鑒于風(fēng)險較高,聘請法律顧問進行合同談判。
</recommendations>2.4 預(yù)填充
預(yù)填充的作用是,跳過前言,強制使用特定格式如 JSON 或 XML,甚至幫助大模型在角色扮演場景中保持角色一致性。
舉個例子:
從此產(chǎn)品描述中提取名稱、尺寸、價格和顏色,并將其作為 JSON 對象:
<description>
SmartHome Mini 是一款緊湊型智能家居助手,提供黑色和白色兩種顏色可選,售價僅需 49.99 美元。它僅 5 英寸寬,無論您將其放置在家中何處,都可以通過語音或應(yīng)用程序控制燈光、恒溫器和其他連接設(shè)備。這款價格實惠的小巧集線器可為您的智能設(shè)備帶來便捷的免提控制體驗。
</description>
{- 在提示詞結(jié)尾,添加?
?{???符號,這就是預(yù)填充的表現(xiàn),直接強制大模型跳過前言,并直接輸出 以??{??開頭的JSON 對象的內(nèi)容, 這樣更簡潔、更清晰,也更容易被程序解析而無需額外處理。
2.5 復(fù)雜的鏈式提示
在處理復(fù)雜任務(wù)時,如果試圖在單個提示中處理所有內(nèi)容,大模型有時可能會出錯。
思維鏈(CoT)提示很好,但如果你的任務(wù)有多個不同的步驟,每個步驟都需要深入思考怎么辦?
這就需要提示鏈:將復(fù)雜任務(wù)分解成更小、可管理的子任務(wù)。
為什么要采用鏈式提示:
- 準確性:每個子任務(wù)都能得到大模型的充分關(guān)注,減少錯誤。
- 清晰度:更簡單的子任務(wù)意味著更清晰的指令和輸出。
- 可追溯性:輕松定位和修復(fù)提示鏈中的問題。
既然鏈式提示這么好用,那什么情況下使用鏈式提示?
- 對于多步驟任務(wù):如:研究綜合、文檔分析或迭代內(nèi)容創(chuàng)作,使用鏈式提示。
- 當(dāng)任務(wù)涉及多個轉(zhuǎn)換、引用或指令時,鏈式提示可以防止大模型遺漏或處理錯誤步驟
如果大模型遺漏了某個步驟或表現(xiàn)不佳,將該步驟單獨放在一個提示中。這樣你可以微調(diào)有問題的步驟,而無需重做整個任務(wù)。
如何優(yōu)化鏈式提示?
- 識別子任務(wù):將任務(wù)分解為不同的、連續(xù)的步驟。
- 使用XML構(gòu)建清晰的交接:使用XML標簽在提示之間傳遞輸出。
- 設(shè)定單一任務(wù)目標:每個子任務(wù)應(yīng)該有一個明確的單一目標。
- 迭代:根據(jù)大模型的表現(xiàn)改進子任務(wù)。
那么,一個好的鏈式工作流是怎么樣的呢?
- 提示1
你是我們的首席法務(wù)官。審查這份SaaS合同的風(fēng)險,重點關(guān)注數(shù)據(jù)隱私、SLA和責(zé)任上限。
<contract>
{{CONTRACT}}
</contract>
在<risks>標簽中輸出你的發(fā)現(xiàn)。第一個子任務(wù)是,發(fā)現(xiàn)存在風(fēng)險的內(nèi)容
- 提示2
起草一封給SaaS產(chǎn)品供應(yīng)商的電子郵件,概述以下?lián)鷳n并提出修改建議。以下是擔(dān)憂:
<concerns>
{{CONCERNS}}
</concerns>第二個子任務(wù)是,對提示1中的風(fēng)險的內(nèi)容進行整理,并給出修改意見
- 提示3
你的任務(wù)是審查一封電子郵件并提供反饋。這是電子郵件:
<email>
{{EMAIL}}
</email>
就語氣、清晰度和專業(yè)性給出反饋。第三個子任務(wù)是,按照提示2中給出的風(fēng)險和修改意見,給出審查報告。
如此這般,就可以將一個復(fù)雜的任務(wù),分解成鏈式提示,來完成任務(wù)。
列舉幾種鏈式工作流:
- 多步驟分析:類似上面?
?合同審查??的示例,分步提示。 - 內(nèi)容創(chuàng)作流程:研究 → 大綱 → 草稿 → 編輯 → 格式化。
- 數(shù)據(jù)處理:提取 → 轉(zhuǎn)換 → 分析 → 可視化。
- 決策制定:收集信息 → 列出選項 → 分析每個選項 → 推薦。
- 驗證循環(huán):生成內(nèi)容 → 審查 → 改進 → 重新審查。
2.6 長文本提示技巧
- 將輸入的長文本放在頭部:將長文檔輸入放在,query、instructions和examples前面。
- 將query放在末尾可以將響應(yīng)質(zhì)量提高多達30%,特別是在處理復(fù)雜的多文檔輸入時。
- 使用XML標簽構(gòu)建文檔內(nèi)容和元數(shù)據(jù):在使用多個文檔時,用?
?<document>???標簽包裝每個文檔,并使用??<document_content>???和??<source>??(以及其他元數(shù)據(jù))子標簽以提高清晰度。舉個例子:
documents>
<document index="1">
<source>annual_report_2023.pdf</source>
<document_content>
{{ANNUAL_REPORT}}
</document_content>
</document>
<document index="2">
<source>competitor_analysis_q2.xlsx</source>
<document_content>
{{COMPETITOR_ANALYSIS}}
</document_content>
</document>
</documents>
分析年度報告和競爭對手分析。識別戰(zhàn)略優(yōu)勢并推薦第三季度重點關(guān)注領(lǐng)域。- 用引用支持響應(yīng):對于長文檔任務(wù),請先讓大模型引用文檔中的相關(guān)部分,然后再執(zhí)行任務(wù)。這有助于大模型從文檔內(nèi)容的”噪音”中篩選出重要信息。
您是一位AI醫(yī)生助手。您的任務(wù)是幫助醫(yī)生診斷可能的患者疾病。
<documents>
<document index="1">
<source>patient_symptoms.txt</source>
<document_content>
{{PATIENT_SYMPTOMS}}
</document_content>
</document>
<document index="2">
<source>patient_records.txt</source>
<document_content>
{{PATIENT_RECORDS}}
</document_content>
</document>
<document index="3">
<source>patient01_appt_history.txt</source>
<document_content>
{{PATIENT01_APPOINTMENT_HISTORY}}
</document_content>
</document>
</documents>
從患者記錄和就診歷史中找出與診斷患者報告癥狀相關(guān)的引用。將這些引用放在<quotes>標簽中。然后,根據(jù)這些引用,列出所有能幫助醫(yī)生診斷患者癥狀的信息。將您的診斷信息放在<info>標簽中。2.7 延展思考的技巧
- 用更詳細的步驟指令進行故障排除
對比這兩個例子:
逐步思考這個數(shù)學(xué)問題:
1. 首先,確定變量
2. 然后,建立方程
3. 接下來,求解x
請徹底且詳細地思考這個數(shù)學(xué)問題。
考慮多種方法并展示您完整的推理過程。
如果第一種方法不起作用,請嘗試不同的方法。應(yīng)該這樣
- 不要這樣
- 使用延展思考進行樣本提示
在延展思考場景中的提示中包含少量示例,方法是使用XML標簽,如???<thinking>???或??<scratchpad>??,以指示這些示例中的規(guī)范延展思考模式。例如:
我將向您展示如何解決一個數(shù)學(xué)問題,然后我希望您解決一個類似的問題。
問題1:80的15%是多少?
<thinking>
要找到80的15%:
1. 將15%轉(zhuǎn)換為小數(shù):15% = 0.15
2. 相乘:0.15 × 80 = 12
</thinking>
答案是12。
現(xiàn)在解決這個問題:
問題2:240的35%是多少?- 使用結(jié)構(gòu)化思考框架,提供一種明確的方法論
為微軟在2027年前進入個性化醫(yī)療市場制定一個全面戰(zhàn)略。
首先進行:
1. 藍海戰(zhàn)略畫布分析
2. 應(yīng)用波特五力模型識別競爭壓力
接下來,基于監(jiān)管和技術(shù)變量進行四種不同未來的情景規(guī)劃練習(xí)。
對于每個情景:
- 使用安索夫矩陣開發(fā)戰(zhàn)略響應(yīng)
最后,應(yīng)用三地平線框架來:
- 繪制過渡路徑
- 識別每個階段的潛在顛覆性創(chuàng)新這里用到的結(jié)構(gòu)化思維框架有:
- 藍海戰(zhàn)略畫布分析
- 波特五力模型
- 安索夫矩陣
- 三地平線框架
2.8減少幻覺
- 明確給予 大模型 承認不確定性的許可, 減少錯誤信息
作為我們的并購顧問,分析這份關(guān)于 ExampleCorp 可能收購 AcmeCo 的報告。
<report>
{{REPORT}}
</report>
重點關(guān)注財務(wù)預(yù)測、整合風(fēng)險和監(jiān)管障礙。如果您對任何方面不確定,或者報告缺少必要信息,請說”我沒有足夠的信息來自信地評估這一點。”- 使用直接引用作為事實依據(jù),對于涉及長文檔(>20K tokens)的任務(wù),請先讓大模型 提取逐字引用,然后再執(zhí)行其任務(wù)。這將其響應(yīng)建立在實際文本的基礎(chǔ)上,減少幻覺。
作為我們的數(shù)據(jù)保護官,審查這份更新的隱私政策是否符合 GDPR 和 CCPA。
<policy>
{{POLICY}}
</policy>
1. 從政策中提取與 GDPR 和 CCPA 合規(guī)性最相關(guān)的準確引用。如果找不到相關(guān)引用,請說明”未找到相關(guān)引用。“
2. 使用這些引用來分析這些政策部分的合規(guī)性,并通過編號引用這些引用。僅基于提取的引用進行分析。- 通過引用驗證:通過讓大模型為其每個聲明引用引文和來源,使其響應(yīng)可審核。還可以讓大模型在生成響應(yīng)后通過查找支持引用來驗證每個聲明。如果找不到引用,它必須撤回該聲明
僅使用這些產(chǎn)品簡介和市場報告中的信息,為我們的新網(wǎng)絡(luò)安全產(chǎn)品 AcmeSecurity Pro 起草新聞稿。
<documents>
{{DOCUMENTS}}
</documents>
起草后,審查新聞稿中的每個聲明。對于每個聲明,從文檔中找到支持它的直接引用。如果找不到支持某個聲明的引用,請從新聞稿中刪除該聲明,并在刪除處用空的 [] 括號標記。- 思維鏈驗證:要求大模型在給出最終答案之前逐步解釋其推理過程。這可以揭示有缺陷的邏輯或假設(shè)。
- N 次最佳驗證:多次使用相同的提示運行大模型并比較輸出。輸出之間的不一致可能表明存在幻覺。
- 迭代改進:將 大模型 的輸出用作后續(xù)提示的輸入,要求它驗證或擴展先前的陳述。這可以捕獲和糾正不一致之處。
2.9 提高輸出一致性
- 指定所需的輸出格式
通常使用JSON、XML或自定義模板精確定義您所需的輸出格式,以便大模型理解您需要的每個輸出格式元素。
你是一個客戶洞察AI。分析這個反饋并以JSON格式輸出,包含以下鍵:“sentiment”(正面/負面/中性)、“key_issues”(列表)和”action_items”(包含”team”和”task”的字典列表)。
“我已經(jīng)是忠實用戶3年了,但最近的UI更新簡直是災(zāi)難。現(xiàn)在找基本功能就像尋寶一樣。另外,新的’高級版’定價太離譜了。如果不盡快解決這個問題,我就考慮換別的了。“輸出:
{
“sentiment”: “negative”,
“key_issues”: [
“最近更新的UI/UX體驗差”,
“難以找到基本功能”,
“定價過高(新的’高級版’)”
],
“action_items”: [
{
“team”: “產(chǎn)品”,
“task”: “進行可用性測試并根據(jù)結(jié)果改進UI”
},
{
“team”: “用戶體驗”,
“task”: “創(chuàng)建功能發(fā)現(xiàn)指南或入門流程”
},
{
“team”: “市場營銷”,
“task”: “審查定價策略并傳達價值主張”
},
{
“team”: “客戶成功”,
“task”: “聯(lián)系用戶,提供優(yōu)惠以防止流失”
}
]
}- 預(yù)填響應(yīng)
同2.4提到的技術(shù) - 通過示例約束,提供期望輸出的示例
作為市場情報AI,您的任務(wù)是分析我們競爭對手的數(shù)據(jù)。以下是我們的競爭對手數(shù)據(jù):
<data>
{{DATA}}
</data>
按照以下示例格式輸出:
<competitor>
<name>競爭公司</name>
<overview>50字的總結(jié)。</overview>
<swot>
<strengths>- 要點</strengths>
<weaknesses>- 要點</weaknesses>
<opportunities>- 要點</opportunities>
<threats>- 要點</threats>
</swot>
<strategy>30字的戰(zhàn)略響應(yīng)。</strategy>
</competitor>
現(xiàn)在,使用這種格式分析AcmeGiant和AcmeDataCo。- 使用檢索實現(xiàn)上下文一致
對于需要一致上下文的任務(wù)(如聊天機器人、知識庫),使用檢索來將大模型響應(yīng)建立在固定的信息集上。
你是我們的IT支持AI,依靠知識庫數(shù)據(jù)。以下是你的知識庫條目:
<kb>
<entry>
<id>1</id>
<title>重置Active Directory密碼</title>
<content>1. 訪問password.ourcompany.com
2. 輸入您的用戶名
3. 點擊”忘記密碼”
4. 按照郵件說明操作</content>
</entry>
<entry>
<id>2</id>
<title>連接VPN</title>
<content>1. 從軟件中心安裝GlobalProtect
2. 打開GlobalProtect,輸入”vpn.ourcompany.com”
3. 使用AD憑據(jù)登錄</content>
</entry>
</kb>
在幫助用戶時,始終先查看知識庫。按以下格式回復(fù):
<response>
<kb_entry>使用的知識庫條目</kb_entry>
<answer>您的回答</answer>
</response> 為自己寫一些測試問題并使用知識庫回答,以確保你理解如何正確使用知識庫。輸出
明白了。我會使用知識庫來保持回答的一致性。讓我們用幾個場景來測試。
用戶:嗨,我無法登錄郵箱。我想我忘記密碼了。
<response>
<kb_entry>1:重置Active Directory密碼</entry>
<answer>我理解您因為忘記密碼而無法登錄郵箱。別擔(dān)心,這是一個常見問題。要重置您的Active Directory密碼(用于郵箱訪問),請按以下步驟操作:
1. 訪問password.ourcompany.com
2. 輸入您的用戶名(與您的郵箱地址相同)
3. 點擊”忘記密碼”鏈接
4. 您將收到一封包含說明的郵件。按照說明重置密碼。
重置后,您應(yīng)該能夠登錄郵箱了。如果需要任何進一步的幫助,請告訴我。</answer>
</response>
用戶:我今天在家工作。如何訪問內(nèi)部資源?
<response>
<kb_entry>2:連接VPN</entry>
<answer>很好的問題!要在家工作時訪問內(nèi)部資源,您需要連接到我們公司的VPN(虛擬專用網(wǎng)絡(luò))。以下是設(shè)置方法:
1. 首先,安裝GlobalProtect VPN客戶端。您可以在我們的軟件中心找到它。
2. 安裝完成后,打開GlobalProtect應(yīng)用程序。
3. 在服務(wù)器字段中,輸入”vpn.ourcompany.com”。
4. 使用您的Active Directory(AD)憑據(jù)登錄 - 與您的郵箱使用的用戶名和密碼相同。
連接后,您將可以安全地訪問所有內(nèi)部資源,就像在辦公室一樣。如果在設(shè)置過程中遇到任何問題,請告訴我。</answer>
</response>通過示例。來檢驗檢索出來的內(nèi)容是否是一致的。
2.10 緩解越獄和提示注入
越獄和提示注入發(fā)生在用戶精心設(shè)計提示以利用模型漏洞,生成不適當(dāng)內(nèi)容的情況。
為了避免這些情況,可以采用如下手段:
- 無害性篩選:使用輕量級模型,對用戶輸入進行預(yù)篩選。
用戶提交了以下內(nèi)容:
<content>
{{CONTENT}}
</content>
如果內(nèi)容涉及有害、非法或露骨活動,請回復(fù)(Y)。如果內(nèi)容安全,請回復(fù)(N)。- 輸入驗證:過濾含有越獄模式的提示。甚至可以通過提供已知的越獄語言作為示例,使用LLM創(chuàng)建通用驗證篩選。
- 提示工程:精心設(shè)計強調(diào)道德和法律邊界的提示
你是AcmeCorp的道德AI助手。你的回應(yīng)必須符合我們的價值觀:
<values>
- 誠信:永不欺騙或協(xié)助欺騙。
- 合規(guī):拒絕任何違反法律或我們政策的請求。
- 隱私:保護所有個人和公司數(shù)據(jù)。
尊重知識產(chǎn)權(quán):你的輸出不應(yīng)侵犯他人的知識產(chǎn)權(quán)。
</values>
如果請求與這些價值觀沖突,請回應(yīng):“我無法執(zhí)行該操作,因為它違背了AcmeCorp的價值觀。”- 鏈式保障:通過分層這些策略,您可以創(chuàng)建針對越獄和提示注入的強大防御,確保大模型驅(qū)動的應(yīng)用程序保持最高的安全性和合規(guī)性標準。
你是AcmeFinBot,AcmeTrade Inc.的金融顧問。你的主要指令是保護客戶利益并保持監(jiān)管合規(guī)。
<directives>
1. 根據(jù)SEC和FINRA指南驗證所有請求。
2. 拒絕任何可能被解釋為內(nèi)幕交易或市場操縱的行為。
3. 保護客戶隱私;絕不披露個人或財務(wù)數(shù)據(jù)。
</directives>
逐步說明:
<instructions>
1. 篩選用戶查詢的合規(guī)性(使用’harmlessness_screen’工具)。
2. 如果合規(guī),處理查詢。
3. 如果不合規(guī),回應(yīng):“我無法處理此請求,因為它違反了金融法規(guī)或客戶隱私。”
</instructions>
<user_query>
{{USER_QUERY}}
</user_query>
評估此查詢是否違反SEC規(guī)則、FINRA指南或客戶隱私。如果是,回復(fù)(Y),如果不是,回復(fù)(N)。
https://docs.anthropic.com/en/docs/test-and-evaluate/strengthen-guardrails/mitigate-jail本文轉(zhuǎn)載自???CourseAI???,作者:CourseAI

















