使用 ChatGPT API 建立對話系統 學習筆記 - 2

更新於 2023/07/10閱讀時間約 8 分鐘
這一系列文章其實就是 Andrew Ng 大大與 OpenAI 合作的一門免費課程【Building Systems with the ChatGPT API】的筆記。很建議大家直接看原本的課程影片,內容蠻淺顯易懂的。

我們第二篇學習筆記將會針對思考鏈推論來做介紹。
所謂思考鏈(Chain of Thought),簡單來說就是將問題拆解成一個一個更小的步驟來引導 LLM 解出我們需要的資訊,更明確的說明,我們直接以範例來跟大家解釋。

訊息處理提示

我們會以實做一個 3C 賣場的客服助理來做示範,以下的提示訊息會以思考鏈來引導語言模型如何推論產品的比較問題:
delimiter = "####" 
system_message = f""" 
按照以下步驟回答客戶的問題。 客戶的查詢將以四個井字號作為分隔符號,\
也就是 {delimiter}。   
步驟1:{delimiter} 首先判斷用戶是否在問關於特定產品或多種產品的問題。 \
不考慮產品類別。  
步驟2:{delimiter} 如果用戶在問關於特定產品的問題, \
辨認該產品是否在以下列表中。  
所有產品: 
1. 產品:TechPro Ultrabook 
類別:電腦與筆記型電腦 
品牌:TechPro 
型號:TP-UB100 
保固:1年 
評價:4.5 
特性:13.3吋顯示器,8GB 記憶體,256GB SSD,Intel Core i5處理器 
描述:一款適合日常使用的輕便筆記型電腦。 
價格:$799.99  
2. 產品:BlueWave 電競筆電 
類別:電腦與筆記型電腦 
品牌:BlueWave 
型號:BW-GL200 
保固:2年 
評價:4.7 
特性:15.6吋顯示器,16GB RAM,512GB SSD硬碟,NVIDIA GeForce RTX 3060顯示卡 
描述:一款性能強勁的電競筆記型電腦,讓您沉浸其中。 
價格:$1199.99  
...  中間省略 ...
步驟3:{delimiter} 如果訊息中包含上述列表中的產品, \
列出使用者訊息中可能的假設,例如筆記本X比筆記本Y大,或者筆記本Z有2年保固。  
步驟4:{delimiter} 如果用戶有任何假設, \
根據您的產品資訊判斷該假設是否正確。  
步驟5:{delimiter} 首先,如果適用,請禮貌地糾正客戶的錯誤假設。 \
只提及或參考上述五種產品資訊,因為這些是商店售賣的唯一五種產品。 \
以友善的語氣回答客戶。
使用以下格式: 
步驟1:{delimiter} <步驟1的理由> 
步驟2:{delimiter} <步驟2的理由> 
步驟3:{delimiter} <步驟3的理由> 
步驟4:{delimiter} <步驟4的理由> 
回覆給使用者:{delimiter} <回覆給客戶的內容>  
確保每一步都包含 {delimiter} 來進行分隔。 
"""
我們從上面的提示範例可以看到幾個重點:
  • 我們直接列出引導 LLM 的步驟,並且註明每個步驟的處理重點,最後也讓要求LLM 依照步驟一步一步解題。
  • 分隔符號的使用。
    不論是使用者的訊息,或者 LLM 每個步驟的輸出,我們都使用分隔號來做區隔。

    我們提供給 LLM 的使用者訊息使用分隔號是為了讓 LLM 更清楚使用者訊息的界限,而要求 LLM 輸出時使用分隔號則是方便我們稍後可以簡單切割出來我們要的回應訊息,這個部分在稍後會跟大家介紹。
  • 最後,我們也可以觀察到每個步驟後方的角括弧,這實質上提供了一個讓語言模型進行填充的空間。

使用者訊息測試一

透過以上的提示,語言模型會如何處理客戶端產品比較問題呢? 我們直接來看測試範例:
user_message = f"""
你們的 BlueWave Chromebook 比 TechPro 桌機貴多少?
"""
messages =  [
{'role':'system',
 'content': system_message},
{'role':'user',
 'content': f"{delimiter}{user_message}{delimiter}"},
]
response = get_completion_from_messages(messages)
print(response)
--- 以下是 LLM 的回覆 ---
步驟1:#### 用戶在問關於特定產品的問題,不考慮產品類別。 
步驟2:#### 該產品 BlueWave Chromebook 在產品列表中,價格為 $249.99。
TechPro 桌機也在產品列表中,價格為 $999.99。 
步驟3:#### 用戶沒有提供任何假設。 
步驟4:#### 無需判斷假設是否正確。 
回覆給使用者:#### BlueWave Chromebook 的價格是 $249.99,
而 TechPro 桌機的價格是 $999.99。
因此,BlueWave Chromebook 比 TechPro 桌機便宜了 $750。
另外我們再來看一個反例,如果客戶詢問的產品沒有在我們的產品清單內,它會怎麼反應呢?

使用者訊息測試二

user_message = f"""
你們有賣電視嗎?
""" 
messages =  [
{'role':'system',
 'content': system_message},
{'role':'user',
 'content': f"{delimiter}{user_message}{delimiter}"},
]
response = get_completion_from_messages(messages)
print(response)
--- 以下是 LLM 的回覆 ---
步驟1:#### 客戶詢問關於特定產品或多種產品的問題。不考慮產品類別。
步驟2:#### 由於客戶沒有詢問特定產品,因此我們無法回答關於產品的問題。
請問您需要關於哪種類型的產品的資訊? 例如,電腦、手機、家電等等。
回覆給客戶:#### 請問您需要關於哪種類型的產品的資訊?
例如,電腦、手機、家電等等。
看到這裏大家應該更有感覺,什麼是思考鏈以及思考鏈的威力了吧!?
最後,讓我們探討如何從思考鏈的思考程序中,提取出最後要回傳給使用者的訊息。

回覆訊息的提取

我們前面已經提及,在列出步驟時使用的分隔號,其主要目的就是便於我們提取回覆訊息。下面就是一個簡單版本的提取函式以及提取出來的內容:
try:
    # 使用分隔符號來切割訊息,並且取出真的要回覆的內容
    final_response = response.split(delimiter)[-1].strip()
except Exception as e:
    # 發現無法處理的訊息時的回覆訊息
    final_response = """很抱歉,我無法處理你這個問題,
        請您試著詢問其他問題。"""
      
print(final_response)
--- 提取後的回覆訊息 ---
BlueWave Chromebook 的價格是 $249.99,而 TechPro 桌機的價格是 $999.99。
因此,BlueWave Chromebook 比 TechPro 桌機便宜了 $750。
以上思考鏈在實際應用時的其中一個示範。
為什麼會看到廣告
avatar-img
18會員
19內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Ted Chen的沙龍 的其他內容
這堂課闡述開發ChatGPT所需的重要概念和工具。涵蓋語言模型如何處理文字(Token),LLM的兩種類型(Base LLM和Instruction tuned LLM),系統、助手和用戶的角色定義。並介紹以Prompting簡化AI開發流程,且透過實戰教學說明如何進行分類和預防注入提示
本文探討大資料對模型的影響。研究指出,大資料量對模型的語法和世界知識理解有顯著影響。固定運算資源下,DeepMind發現適應參數數量更重要,這使模型Chinchilla以較小規模但更多訓練資料,在實際任務中優於Gopher模型。這說明增大模型的規模已不具有太大意義,應增加訓練資料。
本文探討了大型語言模型中的特殊現象,包括頓悟現象,大模型的隱藏知識引導,以及模型越大對某些問題的理解越偏離的U型曲線。文章強調,當模型不夠理想時,我們需要更好地引導模型或了解問題的本質,而非只是增加模型的大小。
本文探討大型語言模型的兩種主要類型:GPT和BERT。GPT,如ChatGPT,被視為"通才",能執行多種任務。BERT則被視為"專才"的基本語言模型。兩者各有優點:專才模型在特定任務上準確度高,而通才模型靈活多功能。選擇哪種取決於需求和目標。
本文介紹了生成式學習中的兩種策略:「各個擊破」和「一次到位」。這兩種策略在生成速度和品質之間達到平衡。為了提高速度,可以採用"N次到位"的Diffusion Model策略。在語音和影像生成中,可以結合這兩種策略以充分利用優勢。融合策略可以同時確保品質和速度,展現人工智慧的潛力。
本文深入探討機器學習的核心概念,包括迴歸、分類和生成式學習。我們解釋了如何使用特定函式來實現期望任務,並將此過程分為設定範圍、確立標準和實現目標三個階段。文章還介紹了如何使用機器學習來訓練和測試模型,並以寶可夢應用為例說明迴歸和分類問題。
這堂課闡述開發ChatGPT所需的重要概念和工具。涵蓋語言模型如何處理文字(Token),LLM的兩種類型(Base LLM和Instruction tuned LLM),系統、助手和用戶的角色定義。並介紹以Prompting簡化AI開發流程,且透過實戰教學說明如何進行分類和預防注入提示
本文探討大資料對模型的影響。研究指出,大資料量對模型的語法和世界知識理解有顯著影響。固定運算資源下,DeepMind發現適應參數數量更重要,這使模型Chinchilla以較小規模但更多訓練資料,在實際任務中優於Gopher模型。這說明增大模型的規模已不具有太大意義,應增加訓練資料。
本文探討了大型語言模型中的特殊現象,包括頓悟現象,大模型的隱藏知識引導,以及模型越大對某些問題的理解越偏離的U型曲線。文章強調,當模型不夠理想時,我們需要更好地引導模型或了解問題的本質,而非只是增加模型的大小。
本文探討大型語言模型的兩種主要類型:GPT和BERT。GPT,如ChatGPT,被視為"通才",能執行多種任務。BERT則被視為"專才"的基本語言模型。兩者各有優點:專才模型在特定任務上準確度高,而通才模型靈活多功能。選擇哪種取決於需求和目標。
本文介紹了生成式學習中的兩種策略:「各個擊破」和「一次到位」。這兩種策略在生成速度和品質之間達到平衡。為了提高速度,可以採用"N次到位"的Diffusion Model策略。在語音和影像生成中,可以結合這兩種策略以充分利用優勢。融合策略可以同時確保品質和速度,展現人工智慧的潛力。
本文深入探討機器學習的核心概念,包括迴歸、分類和生成式學習。我們解釋了如何使用特定函式來實現期望任務,並將此過程分為設定範圍、確立標準和實現目標三個階段。文章還介紹了如何使用機器學習來訓練和測試模型,並以寶可夢應用為例說明迴歸和分類問題。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
大家好,今天我精選了一系列服務,讓您可以免費使用廣受好評的神經網絡“ChatGPT 4”(而不是每月 20 美元),無需註冊、使用 VPN 和其他注意事項。 1.“ForeFront AI” ForeFront AI 是一項提供免費訪問“GPT-4”模型的服務。 要使用它,只需註冊,選擇模型“GPT
Thumbnail
自從 ChatGPT 發布以來,互聯網上充斥著關於如何使用 AI 或 ChatGPT 賺錢的文章和視頻。 最近,我決定自己嘗試使用 ChatGPT 賺錢,並成功賺到了我的第一筆 25 美元。 就在幾天前,我因在 ChatGPT 的幫助下寫有趣的笑話而又收到了 25 美元。 如果您有興趣使用 Chat
這篇教學文章將介紹如何使用 OpenAI 的 GPT-3 模型來建立一個簡單的聊天機器人。
Thumbnail
雖然從2022年底,到現在已經過了快半年的時間,但是去詢問身旁的朋友,還是有很多人只知道有Chathpt的存在,也知道它好像很厲害,但是沒用過的人還是大有人在。 雖然註冊Chatgpt,已經有太多人說過,但考量我之後很多的教學,也會需要用到,所以這個主題我會用手把手的方式,讓你學會該怎麼開始使用Ch
Thumbnail
那天腦動大開,於是來試試用chatGPT預估下一期樂透開獎號碼。 用數學邏輯訓練你的AI,我幫大家做這個實驗,用10組Data查看chatGPT預估數據的命中律是多少? 這項科技有什麼不能做的嗎?我的意思是,它都已經在國際象棋上打敗了人類,駕駛汽車,預告未來趨勢,現在它讓我們變得非常富有!(線上有一
Thumbnail
我自己是使用微軟的SQLIT軟體 這個軟體的操作上 沒有辦法直接用滑鼠點選或是拖拉的方式來看到你想看到的表格 都是要下指令的像是要看data.sqlite中的user這個table我就必須下 才能把table調閱出來看 那做為一個python三年工作經驗的工程師通常我不會直接在SQLIT軟體 裡面下
ChatGPT 可以幫你翻譯,我認為品質比 Google / DeepL / Microsoft 都更好。但每次能翻譯的字數有限,也沒有全頁翻譯的功能,對小說閱讀者基本上是無用的。但 ChatGPT API 發布之後,情況有巨大的改變。這篇文章將會介紹我現在閱讀日文小說的步驟以及範例。
Thumbnail
使用三步驟便能讓ChatGPT幫你創作小說,還能跨平台接力使用,不僅方便,又很輕鬆愉快。但對於敏感內容,或是字數太多的內容,ChatGPT便處理不來。使用ChatGPT與Midjourney時,偶爾會讓我感受到「腦子裡沒想法,工具再強也沒有用」 的挫折
Thumbnail
身為一個實在不太怕被AI搶飯碗的專業文案(我覺得它寫的成果對創意廣告文案來說,我直接寫出完稿,比設法詠唱問題更快,但企劃、論述、增長改短這些工作上面,我則已經在使用它來降低成本了),忽然很好奇我到底有哪些事情可以請它幫忙,哪些事情還是自己動手比較又快又好? 今天我就
Thumbnail
ChatGPT是一個可以幫助您利用自然語言處理和機器學習技術來開發、部署和維護聊天機器人的平台。它可以讓您使用自己的資料和模型,ChatGPT可以幫助你在部落格上賺取收入,讓您可以更輕鬆地寫出有價值的文章。 ChatGPT可以根據你給定的概念或主題,提供詞彙和提示,幫助你更快速地開發優秀的內容。此
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
大家好,今天我精選了一系列服務,讓您可以免費使用廣受好評的神經網絡“ChatGPT 4”(而不是每月 20 美元),無需註冊、使用 VPN 和其他注意事項。 1.“ForeFront AI” ForeFront AI 是一項提供免費訪問“GPT-4”模型的服務。 要使用它,只需註冊,選擇模型“GPT
Thumbnail
自從 ChatGPT 發布以來,互聯網上充斥著關於如何使用 AI 或 ChatGPT 賺錢的文章和視頻。 最近,我決定自己嘗試使用 ChatGPT 賺錢,並成功賺到了我的第一筆 25 美元。 就在幾天前,我因在 ChatGPT 的幫助下寫有趣的笑話而又收到了 25 美元。 如果您有興趣使用 Chat
這篇教學文章將介紹如何使用 OpenAI 的 GPT-3 模型來建立一個簡單的聊天機器人。
Thumbnail
雖然從2022年底,到現在已經過了快半年的時間,但是去詢問身旁的朋友,還是有很多人只知道有Chathpt的存在,也知道它好像很厲害,但是沒用過的人還是大有人在。 雖然註冊Chatgpt,已經有太多人說過,但考量我之後很多的教學,也會需要用到,所以這個主題我會用手把手的方式,讓你學會該怎麼開始使用Ch
Thumbnail
那天腦動大開,於是來試試用chatGPT預估下一期樂透開獎號碼。 用數學邏輯訓練你的AI,我幫大家做這個實驗,用10組Data查看chatGPT預估數據的命中律是多少? 這項科技有什麼不能做的嗎?我的意思是,它都已經在國際象棋上打敗了人類,駕駛汽車,預告未來趨勢,現在它讓我們變得非常富有!(線上有一
Thumbnail
我自己是使用微軟的SQLIT軟體 這個軟體的操作上 沒有辦法直接用滑鼠點選或是拖拉的方式來看到你想看到的表格 都是要下指令的像是要看data.sqlite中的user這個table我就必須下 才能把table調閱出來看 那做為一個python三年工作經驗的工程師通常我不會直接在SQLIT軟體 裡面下
ChatGPT 可以幫你翻譯,我認為品質比 Google / DeepL / Microsoft 都更好。但每次能翻譯的字數有限,也沒有全頁翻譯的功能,對小說閱讀者基本上是無用的。但 ChatGPT API 發布之後,情況有巨大的改變。這篇文章將會介紹我現在閱讀日文小說的步驟以及範例。
Thumbnail
使用三步驟便能讓ChatGPT幫你創作小說,還能跨平台接力使用,不僅方便,又很輕鬆愉快。但對於敏感內容,或是字數太多的內容,ChatGPT便處理不來。使用ChatGPT與Midjourney時,偶爾會讓我感受到「腦子裡沒想法,工具再強也沒有用」 的挫折
Thumbnail
身為一個實在不太怕被AI搶飯碗的專業文案(我覺得它寫的成果對創意廣告文案來說,我直接寫出完稿,比設法詠唱問題更快,但企劃、論述、增長改短這些工作上面,我則已經在使用它來降低成本了),忽然很好奇我到底有哪些事情可以請它幫忙,哪些事情還是自己動手比較又快又好? 今天我就
Thumbnail
ChatGPT是一個可以幫助您利用自然語言處理和機器學習技術來開發、部署和維護聊天機器人的平台。它可以讓您使用自己的資料和模型,ChatGPT可以幫助你在部落格上賺取收入,讓您可以更輕鬆地寫出有價值的文章。 ChatGPT可以根據你給定的概念或主題,提供詞彙和提示,幫助你更快速地開發優秀的內容。此