ChatGPT API 提示指南和優(yōu)秀實(shí)踐
了解云原生 JuiceFS 如何賦能量化對(duì)沖基金以增強(qiáng) AI 訓(xùn)練并在云端實(shí)現(xiàn)彈性吞吐。
這不是編程或 ChatGPT API 集成教程,這些是使用 ChatGPT API 時(shí)需要牢記的一些關(guān)鍵思想和要點(diǎn)。
大型語(yǔ)言模型為您的軟件產(chǎn)品提供前所未有的功能。作為開(kāi)發(fā)人員,學(xué)習(xí)這項(xiàng)技術(shù)并將其集成到我們的項(xiàng)目中至關(guān)重要。像 OpenAI 這樣的平臺(tái)提供了與這些模型交互的 API,我們可以利用它來(lái)增強(qiáng)我們的軟件。
最近,我完成了一門引人入勝的課程,“面向開(kāi)發(fā)人員的 ChatGPT 提示工程”。我學(xué)習(xí)了一些令人難以置信的技術(shù)來(lái)充分利用 OpenAI 的 ChatGPT API,我很樂(lè)意在這篇文章中與您分享這些見(jiàn)解。
準(zhǔn)則
與 ChatGPT 交互時(shí),清晰度至關(guān)重要。以下是一些有用的策略:
- 單獨(dú)的指令和輸入文本:這使您可以使用各種輸入來(lái)測(cè)試您的指令。例如,如果您要求 ChatGPT 總結(jié)一篇文章,請(qǐng)將“總結(jié)以下文章:”指令與文章文本本身分開(kāi)。
- 使用定界符:它們有助于指定指令和輸入之間的界限,減少提示注入的可能性。冒號(hào)或換行符可以作為簡(jiǎn)單但有效的分隔符。
- 請(qǐng)求結(jié)構(gòu)化輸出:如果您需要以編程方式解析 ChatGPT 的響應(yīng),請(qǐng)要求它以特定方式構(gòu)建其輸出。例如,您可能會(huì)要求“將以下文本中的關(guān)鍵點(diǎn)列為要點(diǎn):”。
- 檢查輸入條件:為減少模型產(chǎn)生不相關(guān)或不準(zhǔn)確響應(yīng)(稱為“幻覺(jué)”的現(xiàn)象)的機(jī)會(huì),請(qǐng)指定輸入必須滿足的任何條件。例如,“如果文本包含日期,請(qǐng)?zhí)峁┰撊掌谑切瞧趲??!?/li>
- Few-Shots Prompting:如果可能,提供一些所需輸入輸出模式的示例可以指導(dǎo)模型產(chǎn)生類似的結(jié)果。
迭代提示開(kāi)發(fā)
使用 ChatGPT 制作完美的提示確實(shí)是一個(gè)迭代過(guò)程,它需要對(duì)目標(biāo)有敏銳的理解,并且愿意嘗試和學(xué)習(xí)。
讓我們將其分解為可操作的步驟:
- 定義目標(biāo):快速制作的第一步是清楚地了解所需的輸出。問(wèn)問(wèn)自己,您希望 ChatGPT 生成什么?例如,如果您的目標(biāo)是從文本中提取關(guān)鍵點(diǎn),那么您的目標(biāo)就是列出輸入文本中的主要思想。
- 編寫初始提示:根據(jù)您的目標(biāo),編寫初始提示。提示是給 ChatGPT 的命令或問(wèn)題,以指導(dǎo)其響應(yīng)。對(duì)于上述目標(biāo),初始提示可以是“在以下文本中列出主要思想:”。
- 測(cè)試提示:現(xiàn)在,是時(shí)候測(cè)試提示了。通過(guò)模型運(yùn)行它,看看你得到什么樣的輸出。符合你的目標(biāo)嗎?如果沒(méi)有,是時(shí)候迭代了。
- 分析輸出:分析模型的輸出。響應(yīng)的哪些方面符合您的目標(biāo),哪些部分偏離目標(biāo)?這將為您提供有關(guān)如何調(diào)整提示的線索。
- 優(yōu)化提示:根據(jù)您的分析,調(diào)整您的提示。例如,如果模型沒(méi)有完全按照您的預(yù)期捕捉主要思想,您可以將提示細(xì)化為更具體,例如“將以下文本總結(jié)為要點(diǎn):”。
- 重復(fù)該過(guò)程:繼續(xù)測(cè)試、分析和完善您的提示,直到它始終如一地生成所需的輸出。請(qǐng)記住,這是一個(gè)迭代過(guò)程。可能需要幾輪改進(jìn)才能使其恰到好處。
- 概括提示:一旦你有一個(gè)適用于特定案例的提示,請(qǐng)嘗試將其概括為其他類似案例。這意味著使用各種輸入文本測(cè)試提示以確保它適用于廣泛的場(chǎng)景。
總結(jié)
摘要是 ChatGPT API 的一個(gè)強(qiáng)大用例,但了解如何有效使用它至關(guān)重要。以下是一些準(zhǔn)則:
- 定義目的:如果要以特定方式使用摘要,請(qǐng)確保在說(shuō)明中明確說(shuō)明。
- 保持專注:如果需要,讓模型專注于輸入的特定部分。例如,如果您只對(duì)商業(yè)報(bào)告的財(cái)務(wù)方面感興趣,您可能會(huì)問(wèn),“總結(jié)以下報(bào)告中的財(cái)務(wù)信息:”。
- 提取而不是總結(jié):在某些情況下,提取關(guān)鍵信息而不是總結(jié)可能更有用。例如,您可以提示“列出以下文本中提到的所有人的姓名:”。
推理
ChatGPT 還可以從文本中推斷出見(jiàn)解,執(zhí)行情感分析、分類、分類和標(biāo)記等任務(wù)。以下是您可以利用此功能的一些方法:
- 多任務(wù):您可以要求模型在同一指令中執(zhí)行多個(gè)任務(wù),并以特定格式生成輸出。例如,“分析以下評(píng)論的情緒并將其分類為正面、負(fù)面或中性:”。
- 測(cè)試多個(gè)示例:在一組輸入上運(yùn)行良好的提示可能在其他輸入上表現(xiàn)不佳。為確保您的指令在廣泛的輸入范圍內(nèi)都能正常工作,請(qǐng)使用各種示例對(duì)其進(jìn)行測(cè)試。
- 包含您自己的標(biāo)簽:如果您有一組預(yù)定義的類別,您可以將它們包含在指令中,并要求模型為給定的輸入選擇最相關(guān)的類別。例如,“將以下文本歸入以下類別之一:技術(shù)、環(huán)境、政治或文化:”。
轉(zhuǎn)型
ChatGPT 還能夠執(zhí)行各種文本轉(zhuǎn)換,包括語(yǔ)言翻譯和格式轉(zhuǎn)換。
- 語(yǔ)言識(shí)別和翻譯:您可以要求模型識(shí)別輸入文本的語(yǔ)言,或?qū)⑵浞g成另一種語(yǔ)言。例如,“將以下西班牙語(yǔ)文本翻譯成英語(yǔ):”。
- 語(yǔ)氣轉(zhuǎn)換:您可以將輸入文本轉(zhuǎn)換為不同的語(yǔ)氣,例如正式、隨意或?qū)υ?。例如,“用隨意的語(yǔ)氣重寫以下正式文本:”。
- 格式轉(zhuǎn)換:該模型可以將文本從一種格式轉(zhuǎn)換為另一種格式,例如從 JSON 到 HTML 或從 CSV 到 JSON。例如,“將以下 JSON 數(shù)據(jù)轉(zhuǎn)換為 HTML 表格格式:”。
- 校對(duì):您可以要求模型校對(duì)文本,對(duì)語(yǔ)法、標(biāo)點(diǎn)符號(hào)和拼寫進(jìn)行更正。例如,“校對(duì)并更正以下文本中的任何錯(cuò)誤:”。
擴(kuò)展
ChatGPT 還可以將簡(jiǎn)短的輸入文本擴(kuò)展為更長(zhǎng)、更詳細(xì)的文章,例如博客文章、文章或電子郵件回復(fù)。這里有一些要考慮的事情:
- 提供上下文:如果在特定上下文中使用輸出,請(qǐng)確保在提示中提供該上下文。例如,“寫回復(fù)以下郵件,對(duì)發(fā)件人的建議表示感謝并同意實(shí)施:”。
- 披露 AI 參與:如果將輸出傳達(dá)給用戶,建議披露它是 AI 生成的以保持透明度。
- 調(diào)整溫度:溫度參數(shù)控制模型的創(chuàng)造力。較低的溫度(接近 0)使模型的輸出更具確定性,而較高的溫度(接近 1)允許更具創(chuàng)造性的響應(yīng)。
開(kāi)發(fā)聊天機(jī)器人
您可以使用 ChatGPT 創(chuàng)建具有特定行為的聊天機(jī)器人:
- 設(shè)置角色:使用“系統(tǒng)”角色來(lái)構(gòu)建對(duì)話。此消息告訴模型它應(yīng)該如何響應(yīng)“用戶”消息。例如,“你是一個(gè)樂(lè)于助人的助手,總是提供詳細(xì)的答復(fù):”。
- 提供用戶上下文:在初始用戶消息中包括用戶的姓名、詳細(xì)信息和任何其他相關(guān)上下文。例如,“用戶是一名初級(jí)程序員,尋求有關(guān) Python 語(yǔ)法錯(cuò)誤的幫助:”。
- 請(qǐng)記住該模型的局限性:ChatGPT 模型無(wú)法記住之前的交互,因此您每次發(fā)出請(qǐng)求時(shí)都必須提供之前的消息。例如,如果用戶在之前的消息中問(wèn)了一個(gè)問(wèn)題,如果它與正在進(jìn)行的對(duì)話相關(guān),則在下一個(gè)請(qǐng)求中包含該消息。
- 控制熱度:對(duì)于旨在呈現(xiàn)給用戶的輸出,您可以使用更高的熱度來(lái)獲得更不可預(yù)測(cè)的響應(yīng)。對(duì)于打算以編程方式解析的輸出,使用較低的熱度以獲得更可靠的結(jié)果。
了解這些提示工程概念可以顯著改善您與 ChatGPT API 的交互,使您的應(yīng)用程序更加有效和用戶友好。