歡迎來到ChatGPT 開發人員提示工程課程(ChatGPT Prompt Engineering for Developers)!本課程將教您如何通過OpenAI API有效地利用大型語言模型(LLM)來創建強大的應用程序。
本課程由OpenAI 的Isa Fulford和 DeepLearning.AI 的Andrew Ng主講,深入了解 LLM 的運作方式,提供即時工程的最佳實踐,并演示 LLM API 在各種應用程序中的使用。
總結
在本課程中,您將總結文本,重點關注特定主題。
設置
import openai
import osfrom dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv()) # 讀取本地的.env文件openai.api_key = os.getenv('OPENAI_API_KEY')
def get_completion(prompt, model="gpt-3.5-turbo"): # Andrew 提到提示/完成范例更適合此類messages = [{"role": "user", "content": prompt}]response = openai.ChatCompletion.create(model=model,messages=messages,temperature=0, # 這是模型輸出的隨機程度)return response.choices[0].message["content"]
要總結的文本
prod_review = """
Got this panda plush toy for my daughter's birthday,
who loves it and takes it everywhere. It's soft and \
super cute, and its face has a friendly look. It's \
a bit small for what I paid though. I think there \
might be other options that are bigger for the \
same price. It arrived a day earlier than expected, \
so I got to play with it myself before I gave it \
to her.
"""
使用詞/句/字符限制進行總結
prompt = f"""
您的任務是生成一篇關于電子商務網站上產品評論的簡短摘要。在三個反引號之間總結以下評論,字數不超過30字。評論:{prod_review}
"""response = get_completion(prompt)
print(response)
柔軟可愛的熊貓毛絨玩具深受女兒喜愛,但價格有點小貴。提前到貨。
以運輸和交付為重點進行總結
prompt = f"""
您的任務是生成一篇關于電子商務網站上產品評論的簡短摘要,向運輸部門提供反饋。在三個反引號之間總結以下評論,字數不超過30字,重點關注提及產品運輸和交付的有關方面。評論:{prod_review}
"""response = get_completion(prompt)
print(response)
熊貓毛絨玩具提前一天到貨,但客戶覺得價格有點小貴。
以價格和價值為重點進行總結
prompt = f"""
您的任務是生成一篇關于電子商務網站上產品評論的簡短摘要,向負責確定產品價格的定價部門提供反饋。在三個反引號之間總結以下評論,字數不超過30字,重點關注與價格和感知價值相關的任何方面。評論:{prod_review}
"""response = get_completion(prompt)
print(response)
熊貓毛絨玩具柔軟、可愛,受到收件人喜愛,但價格可能對其尺寸來說過高。
<注意>
摘要包含與重點主題無關的內容。
嘗試使用“提取”而不是“總結”
prompt = f"""
您的任務是從電子商務網站上的產品評論中提取相關信息,向運輸部門提供反饋。從以下評論中提取與運輸和交付相關的信息。限制在30字以內。評論:{prod_review}
"""response = get_completion(prompt)
print(response)
產品提前一天到貨。
總結多個產品評論
review_1 = prod_review#一盞立式燈的評論
review_2 = """
需要一盞漂亮的臺燈放在臥室,這一款有額外的存儲空間,價格也不太高。快遞很快——2天到貨。燈的開關繩在運輸途中斷了,公司很樂意寄來一個新的。幾天內就送到了。很容易組裝,遺失的零件也很快補發。
"""#一款電動牙刷的評論
review_3 = """
我的牙醫建議我使用電動牙刷,所以我買了這個。電池續航能力到目前為止似乎相當令人印象深刻。初次充電后,將充電器插在那里第一周來調節電池,然后我拔掉了充電器,過去的3周每天兩次刷牙都是在同一次充電中完成的。但是牙刷頭太小了。我見過比這個大的嬰兒牙刷。我希望刷頭更大,刷毛長度不同,能更好地清潔牙齒間的空隙,因為這個不行。總體而言,如果你能在50美元左右買到這個牙刷,那就是個不錯的交易。制造商的替換刷頭價格相當昂貴,但你可以買到價格更合理的通用刷頭。這款牙刷讓我感覺每天都去了牙醫那里。我的牙齒感覺非常干凈!
"""#一款攪拌機的評論
review_4 = """
所以,他們仍然在11月份的季節性促銷中以大約49美元的價格出售17件套裝,大約半價,但由于某種原因(稱其為價格欺詐),到了12月第二周,所有價格都上漲到大約70-89美元左右的水平。相同的系統。而11件套裝也從之前的29美元的促銷價上漲了大約10美元左右。所以看起來還可以,但是如果你看看底座,刀鋒鎖定的部分看起來沒有幾年前的以前那么好,但我打算對它非常溫柔(例如,我在攪拌機中先研磨非常硬的東西,比如豆子、冰、米等,然后在攪拌機中將它們攪碎到我想要的份量,然后切換到攪拌刀片以獲得更細的面粉,當制作冰沙時,首先使用十字切割刀片,然后使用平刀片,如果需要更細/更少的果肉)。制作冰沙時的特別提示,將水果和蔬菜切成細絲并冷凍(如果使用菠菜-輕微燉軟菠菜,然后冷凍直到使用時-如果制作果凍,使用一個小到中等大小的食品加工機)你打算用這種方式使用,這樣你就可以避免添加太多的冰塊-當制作你的冰沙時。大約一年后,電機發出了奇怪的聲音。我打電話給客戶服務,但保修已經過期了,所以我不得不再買一個。FYI:這類產品的整體質量已經下降,所以他們有點依靠品牌認知和消費者忠誠來保持銷量。大約兩天送到了。
"""reviews = [review_1, review_2, review_3, review_4]
for i in range(len(reviews)):
prompt = f"""
您的任務是從電子商務網站上的產品評論中生成一篇簡短摘要。
在以下三個反引號之間總結評論,字數不超過50字。評論:```{reviews[i]}```
"""response = get_completion(prompt)
print(i, response, "\n")
0 柔軟可愛的熊貓毛絨玩具深受女兒喜愛,但價格有點小。物流很快。
1 價格實惠的燈,具有存儲功能、快速運輸和優質的客戶服務。易于組裝,丟失的零件很快就能被更換。
2 電池壽命長,牙刷頭小,如果買50美元左右就很劃算,替換頭很貴,讓牙齒感覺干凈。
3 對攪拌機系統的評價褒貶不一,存在哄抬物價和質量下降的情況,但使用提示很有幫助。