# [ChatGPT AI] 與愛因斯坦聊天 :::info :bulb: 在這篇教程裡,我們將一步步建立一個 ChatGPT 人工智慧聊天程式。我們會設定 ChatGPT 來扮演著名的物理學家阿爾伯特·愛因斯坦(Albert Einstein),讓你和能夠與「他」進行對話。透過我們建立的程式,向愛因斯坦提問或是與他聊天。 過程中,我們會學習如何根據使用者的需求,架構造詳細的請求「提示詞」(prompt),然後將這些提示發送給人工智能模型,當模型回應後,我們再將這些回應對話以使用者友善介面的方式展現。 藉由這篇教學內容,我們將探索圍繞 ChatGPT 這類人工智慧模型,如何開發出新的應用程式。這將是一個有趣的學習旅程,讓我們開始吧! :::  ## :beginner: CreatiCode創意編程註冊 請注意,在進行[CreatiCode.com](https://www.creaticode.com/)之前需要先登錄系統。可以使用一個有效的電子信箱「註冊」一個creaticode.com帳號,然後登入系統。 <!-- :small_blue_diamond:Project Name: :small_blue_diamond:Leader: :small_blue_diamond:Budget: :small_blue_diamond:Contributors: :small_blue_diamond:Target Audience: :small_blue_diamond:Expected Launch Date: --> ## :triangular_flag_on_post: 步驟 1 -從空的精靈開始 <!-- :::success Describe the problem/mission you are solving. ::: --> CreatiCode.com 的場景中創建一個新的專案,點選頁面頂部的「創建」按鈕,並點選畫面中狗狗角色,按下右上角邊「垃圾桶」刪除預設狗精靈的角色,我們在這專案中不需要精靈輔助,這樣就得到一個空白的專案。  ## :pencil: 步驟 2 -新增聊天視窗小工具 現在讓我們使用「控件」類別中的「新增聊天窗口」區塊來新增聊天視窗。  點下「控件」在積木區域往下滑找到「添加聊天窗口」,並拖曳到畫面上,與紅色「開始」積木連結,凸起處代表可以與其他積木相連,嘗試看看是否可以成功!  將「添加聊天窗口」積木與「開始」積木連結在一起。  :::info * x 和 y:聊天視窗中心的位置。如果 x = 0 且 y = 0,則聊天視窗位於舞台中央。 * 寬度和高度:設定聊天視窗的大小,要完全佔據整個舞台,寬度 = 480像素和高度 = 360像素。 * 輸入行數:底部輸入方塊中顯示的行數,通常您可以將其設定為 1 行。如果使用者會在輸入框中寫入很多內容,那麼您可以顯示更多行。 * 背景和邊框顏色:可以調整RGB顏色。 * 名稱:這個聊天視窗的名稱,後面語法會用來引用這個聊天視窗。 ::: 在「聊天窗口」積木中,改變邊框顏色,可以調整深藍色。  改完顏色後點擊「綠色旗子」,讓軟體執行,畫出對話窗口。  已經顯示「藍色對話視窗」已經完成。  ## :pencil: 步驟 3 -處理「Click」事件 我們需要再增加聊天「chat1積木」,一樣到「控件」去找,找到當控件chat1被點擊的積木,並拖曳到畫面上。我們看到這個積木也是一個程式開始,所以等一下我們要繼續銜接在下方,處理點擊後的運作。  找到「控制下的「打印」積木到畫面上,與積木連接。  再到「控制」下找到「控件」的值積木,與剛剛積木做連接。  將「控件chat1」的積木拉入黃色「列印」控制積木中,我們將要嘗試利用「控制台面板」顯示文字,測試是否可行。  請在對話視窗中,輸入Hello,送出對話。  到左下角會看到「控制台面板」中有一個紅色訊息,用滑鼠點開, 會看到Hello列印在「控制台面板」中,代表有收到文字訊息。我們再按一下「綠色旗子」執行就停止。  :::info 請注意,輸入的文字已從輸入框中清除,但尚未新增至聊天記錄。這驗證我們能夠完全控制,如何時將輸入新增至聊天歷史記錄。 ::: <!-- 「」 --> ## :pencil: 步驟 4 -將使用者輸入附加到聊天歷史記錄 讓我們開始將用戶的輸入添加到聊天歷史記錄中,而不是列印出來在控制台面板,而是顯示在「聊天區域」,所以我們要從控件新增一個「附加到聊天室」的窗口,拉一個積木在畫面上。  再次將橘色打印中的「控件chat1值」,拖拉進去「聊天」積木「消息」中白色區域。  把橘色「打印」積木拖曳到最左側範圍,會有黑色半透明蓋到分類上,出現一個「垃圾桶,在黑色區域就可以「刪除」掉積木,試試看!  可將「聊天」積木再多一點修改,加上「me」並圖標改為「用戶」,「顏色」也改一改,深底白字會更清楚對話內容,它看起來像這樣:  ## :pencil: 步驟 5 - 將使用者輸入傳送到 ChatGPT 現在再加上「openAI ChatGPT」積木,我們將使用者輸入傳送到 ChatGPT,並等待回應。 右側「人工智能」下新增一個「openAI chatGPT請求」的積木,拖曳到畫面上,加到聊天積木下。  您將需要建立一個新「變數」來儲存來自 ChatGPT 的回應。您可以將此變數稱為“response”。然後可以新增「ChatGPT請求」區塊來發送使用者輸入,並等待回應。  所以我們需要將剛剛「控件chat1的值」再帶入到OpenAI積木中,這時候我們只要在積木上按下滑鼠右鍵,跳出「選單」選擇複製,在拖曳到請求「Hi」的位置,覆蓋它。  再來我們需要修改「變量」名稱,改名字為「response」,按下確定。  目前對話長度預設是50,也可以改成100。溫度為「 1 」將使聊天機器人更加隨機和富有創造力。我們將會話類型設為「繼續」,這樣它將記住當前對話中的所有聊天歷史記錄。  ## :pencil: 步驟 6 - 顯示 ChatGPT 的反應 當我們收到 ChatGPT 的回應後,我們可以簡單地將變數「response」的內容附加到聊天歷史視窗中: 再次「複製附加到「聊天的積木,接到紫色「OpenAI」積木之後。  右欄的變量中,找到剛剛新增的「變數」名稱,「response」的積木拉入新增聊天積木中。  將新增聊天積木改為Einstein愛因斯坦,把聊天對話框設定到右邊,顏色改為綠色。這次我們將使用“Einstein”作為名稱,並且訊息將以不同的背景顏色向右對齊。  現在我們已經準備好進行雙向聊天了。由於ChatGPT 聊天機器人還不知道我們希望它假裝成愛因斯坦,所以它仍然按照自己的方式回應:  ## :pencil: 第 7 步 - 讓 ChatGPT 變成愛因斯坦 要讓 ChatGPT 假裝成愛因斯坦,我們只需在啟動專案時告訴它要這樣做即可。我們可以使用相同的 2 個區塊來發送請求並顯示回應。請複製「chat1 OpenAI ChatGPT」和「附加到聊天」兩個積木,貼在畫面上後拖曳到上方啟動聊天窗口下方。  將「啟動積木」中「OpenAI ChatGPT請求」填入如下: <b> Pretend you are Albert Einstein and chat with me </b> (假裝你是阿爾伯特愛因斯坦並與我聊天)。  按下「綠色旗子」啟動程式碼,請送出Who are you? 此時對話已經改變了,角色已經是愛因斯坦著名的物理學家跟你對話。ChatGPT會改變愛因斯談描述,試試看你的愛因斯坦如何介紹自己。  ## :pencil: 第 8 步 -增加每個響應的長度限制 我們使用對話的總長度限制為 50,因此如果聊天機器人試圖說出超過此長度的內容,它將被切斷。在這種情況下,回應將以「TOKEN LIMIT REACHED」結束。  您可以將最大長度增加到更大的數字,例如 100 或 150。 ## :pencil: 第 9 步 - 測試運行 可以告訴 ChatGPT 使用更少的單字。我們可以對其進行一些修改,而不是將使用者的輸入直接發送到 ChatGPT。例如,我們可以在使用者輸入「請使用 50 個單字或更少」之後附加這些單字。 在左邊「運算目錄下,找到「連接_和_」的積木,將積木拉到畫面上。  「連接_和_的積木,再放入原本的「控件chat1的值」,再次拉進去「OpenAI CahtGPT請求」中。  在「綠色連接」積木,打入<b>Please use 50 words or less </b>  最大字串長度可以調整到100或150。  按下「綠色啟動」旗子,可以看到字串的結果。  可以試著問他問題了,到此已經完成ChatGPT人工智慧的聊天對話對話。  ## :pencil: 第 10 步 - 換上愛因斯坦的頭貼吧! 想要專屬頭貼嗎?可以下載這一張圖,此圖引用CreatiCode網站。  切換到第二個「造型標籤」頁面,在這裡可以更換頭貼。  左下角「彩色Logo讓滑鼠放在上方,出現「上傳造型」,新圖需要在第一張。  放上愛因斯坦圖像,讓我們再來試試看對話視窗。  :small_blue_diamond:已經換上頭貼,成功了!  ## :book:Reference [ChatGPT AI: Chat with Einstein (Difficulty: 3)](https://forum.creaticode.com/topic/925/chatgpt-ai-chat-with-einstein-difficulty-3/2)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up