---
# System prepended metadata

title: ChatGPT 人工智慧機器人與愛因斯坦聊天
tags: [ChatGPT]

---

# [ChatGPT AI] 與愛因斯坦聊天

:::info
:bulb: 
在這篇教程裡，我們將一步步建立一個 ChatGPT 人工智慧聊天程式。我們會設定 ChatGPT 來扮演著名的物理學家阿爾伯特·愛因斯坦(Albert Einstein)，讓你和能夠與「他」進行對話。透過我們建立的程式，向愛因斯坦提問或是與他聊天。

過程中，我們會學習如何根據使用者的需求，架構造詳細的請求「提示詞」(prompt)，然後將這些提示發送給人工智能模型，當模型回應後，我們再將這些回應對話以使用者友善介面的方式展現。

藉由這篇教學內容，我們將探索圍繞 ChatGPT 這類人工智慧模型，如何開發出新的應用程式。這將是一個有趣的學習旅程，讓我們開始吧！
:::

![圖 Chat](https://hackmd.io/_uploads/H1OHmozRT.png =400x300)


## :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 的場景中創建一個新的專案，點選頁面頂部的「創建」按鈕，並點選畫面中狗狗角色，按下右上角邊「垃圾桶」刪除預設狗精靈的角色，我們在這專案中不需要精靈輔助，這樣就得到一個空白的專案。
 
![1_del_dog](https://hackmd.io/_uploads/B1lue2GRp.png)


## :pencil: 步驟 2 -新增聊天視窗小工具

現在讓我們使用「控件」類別中的「新增聊天窗口」區塊來新增聊天視窗。

![2_widget](https://hackmd.io/_uploads/BylKl3zAp.png)

點下「控件」在積木區域往下滑找到「添加聊天窗口」，並拖曳到畫面上，與紅色「開始」積木連結，凸起處代表可以與其他積木相連，嘗試看看是否可以成功！

![3_add window](https://hackmd.io/_uploads/ry19ghzCT.png)

將「添加聊天窗口」積木與「開始」積木連結在一起。

![win_block](https://hackmd.io/_uploads/HkcRGhf0a.png)

:::info
* x 和 y：聊天視窗中心的位置。如果 x = 0 且 y = 0，則聊天視窗位於舞台中央。
* 寬度和高度：設定聊天視窗的大小，要完全佔據整個舞台，寬度 = 480像素和高度 = 360像素。
* 輸入行數：底部輸入方塊中顯示的行數，通常您可以將其設定為 1 行。如果使用者會在輸入框中寫入很多內容，那麼您可以顯示更多行。
* 背景和邊框顏色：可以調整RGB顏色。
* 名稱：這個聊天視窗的名稱，後面語法會用來引用這個聊天視窗。
:::

在「聊天窗口」積木中，改變邊框顏色，可以調整深藍色。
![4_changecolor](https://hackmd.io/_uploads/HJmcxnGCp.png)

改完顏色後點擊「綠色旗子」，讓軟體執行，畫出對話窗口。
![2_preview](https://hackmd.io/_uploads/B1iFShz0T.png)

已經顯示「藍色對話視窗」已經完成。
![2_chat](https://hackmd.io/_uploads/r1RRS2zCp.png)

## :pencil: 步驟 3 -處理「Click」事件

我們需要再增加聊天「chat1積木」，一樣到「控件」去找，找到當控件chat1被點擊的積木，並拖曳到畫面上。我們看到這個積木也是一個程式開始，所以等一下我們要繼續銜接在下方，處理點擊後的運作。

![3_add_block](https://hackmd.io/_uploads/rJ5w8hzAp.png)

找到「控制下的「打印」積木到畫面上，與積木連接。

![3_add_print](https://hackmd.io/_uploads/By9KSpGRa.png)

再到「控制」下找到「控件」的值積木，與剛剛積木做連接。

![3_add_valueofwifget](https://hackmd.io/_uploads/S1YnBTGRa.png)

將「控件chat1」的積木拉入黃色「列印」控制積木中，我們將要嘗試利用「控制台面板」顯示文字，測試是否可行。
![3_value](https://hackmd.io/_uploads/BJXILaf0a.png)

請在對話視窗中，輸入Hello，送出對話。

![3_chat_hello](https://hackmd.io/_uploads/H15-_TGAp.png =450x350)

到左下角會看到「控制台面板」中有一個紅色訊息，用滑鼠點開，
會看到Hello列印在「控制台面板」中，代表有收到文字訊息。我們再按一下「綠色旗子」執行就停止。


![3_console](https://hackmd.io/_uploads/r1R3PmQCT.png)

:::info
請注意，輸入的文字已從輸入框中清除，但尚未新增至聊天記錄。這驗證我們能夠完全控制，如何時將輸入新增至聊天歷史記錄。

:::


<!-- 「」 -->

## :pencil: 步驟 4 -將使用者輸入附加到聊天歷史記錄

讓我們開始將用戶的輸入添加到聊天歷史記錄中，而不是列印出來在控制台面板，而是顯示在「聊天區域」，所以我們要從控件新增一個「附加到聊天室」的窗口，拉一個積木在畫面上。

![4_1](https://hackmd.io/_uploads/rJT4oafCp.png)

再次將橘色打印中的「控件chat1值」，拖拉進去「聊天」積木「消息」中白色區域。

![4_2](https://hackmd.io/_uploads/rJM8iaGAa.png)
把橘色「打印」積木拖曳到最左側範圍，會有黑色半透明蓋到分類上，出現一個「垃圾桶，在黑色區域就可以「刪除」掉積木，試試看！

![4_3](https://hackmd.io/_uploads/SyTIsaG0T.png)

可將「聊天」積木再多一點修改，加上「me」並圖標改為「用戶」，「顏色」也改一改，深底白字會更清楚對話內容，它看起來像這樣：

![4_4](https://hackmd.io/_uploads/r13cjpz0T.png)

## :pencil: 步驟 5 - 將使用者輸入傳送到 ChatGPT

現在再加上「openAI ChatGPT」積木，我們將使用者輸入傳送到 ChatGPT，並等待回應。

右側「人工智能」下新增一個「openAI chatGPT請求」的積木，拖曳到畫面上，加到聊天積木下。
![4_1](https://hackmd.io/_uploads/Bke_kCMCa.png)


您將需要建立一個新「變數」來儲存來自 ChatGPT 的回應。您可以將此變數稱為“response”。然後可以新增「ChatGPT請求」區塊來發送使用者輸入，並等待回應。


![4_2](https://hackmd.io/_uploads/S1edyCzC6.png)
所以我們需要將剛剛「控件chat1的值」再帶入到OpenAI積木中，這時候我們只要在積木上按下滑鼠右鍵，跳出「選單」選擇複製，在拖曳到請求「Hi」的位置，覆蓋它。
![4_3](https://hackmd.io/_uploads/HklOJ0G0T.png)

再來我們需要修改「變量」名稱，改名字為「response」，按下確定。
![4_4](https://hackmd.io/_uploads/ByeO1CGRp.png)

目前對話長度預設是50，也可以改成100。溫度為「 1 」將使聊天機器人更加隨機和富有創造力。我們將會話類型設為「繼續」，這樣它將記住當前對話中的所有聊天歷史記錄。
![4_5](https://hackmd.io/_uploads/Hkxu1AGR6.png)

## :pencil: 步驟 6 - 顯示 ChatGPT 的反應

當我們收到 ChatGPT 的回應後，我們可以簡單地將變數「response」的內容附加到聊天歷史視窗中：
再次「複製附加到「聊天的積木，接到紫色「OpenAI」積木之後。
![6_1](https://hackmd.io/_uploads/B1GXMCMCa.png)

右欄的變量中，找到剛剛新增的「變數」名稱，「response」的積木拉入新增聊天積木中。
![6_2](https://hackmd.io/_uploads/Syfmz0G0a.png)

將新增聊天積木改為Einstein愛因斯坦，把聊天對話框設定到右邊，顏色改為綠色。這次我們將使用“Einstein”作為名稱，並且訊息將以不同的背景顏色向右對齊。

![6_3](https://hackmd.io/_uploads/ryMmMAfAp.png)


現在我們已經準備好進行雙向聊天了。由於ChatGPT 聊天機器人還不知道我們希望它假裝成愛因斯坦，所以它仍然按照自己的方式回應：


![6_4](https://hackmd.io/_uploads/BJ2cmAMCT.png =350x300)


## :pencil: 第 7 步 - 讓 ChatGPT 變成愛因斯坦

要讓 ChatGPT 假裝成愛因斯坦，我們只需在啟動專案時告訴它要這樣做即可。我們可以使用相同的 2 個區塊來發送請求並顯示回應。請複製「chat1 OpenAI ChatGPT」和「附加到聊天」兩個積木，貼在畫面上後拖曳到上方啟動聊天窗口下方。

![7_1](https://hackmd.io/_uploads/SJROnZmCT.png)

將「啟動積木」中「OpenAI ChatGPT請求」填入如下： <b> Pretend you are Albert Einstein and chat with me </b> (假裝你是阿爾伯特愛因斯坦並與我聊天)。

![7_3](https://hackmd.io/_uploads/r1mRiW70T.png)

按下「綠色旗子」啟動程式碼，請送出Who are you? 此時對話已經改變了，角色已經是愛因斯坦著名的物理學家跟你對話。ChatGPT會改變愛因斯談描述，試試看你的愛因斯坦如何介紹自己。

![7-2](https://hackmd.io/_uploads/r19ZRWQCa.png =420x300)


## :pencil: 第 8 步 -增加每個響應的長度限制

我們使用對話的總長度限制為 50，因此如果聊天機器人試圖說出超過此長度的內容，它將被切斷。在這種情況下，回應將以「TOKEN LIMIT REACHED」結束。

![7-3](https://hackmd.io/_uploads/SJogJGQ0p.png =500x300)

您可以將最大長度增加到更大的數字，例如 100 或 150。

## :pencil: 第 9 步 - 測試運行

可以告訴 ChatGPT 使用更少的單字。我們可以對其進行一些修改，而不是將使用者的輸入直接發送到 ChatGPT。例如，我們可以在使用者輸入「請使用 50 個單字或更少」之後附加這些單字。

在左邊「運算目錄下，找到「連接_和_」的積木，將積木拉到畫面上。

![9_0](https://hackmd.io/_uploads/S1N47G7R6.png =250x350)

「連接_和_的積木，再放入原本的「控件chat1的值」，再次拉進去「OpenAI CahtGPT請求」中。

![9_1](https://hackmd.io/_uploads/ByyXXfQAa.png)

在「綠色連接」積木，打入<b>Please use 50 words or less </b>

![9_2](https://hackmd.io/_uploads/SJyQ7M7RT.png)

最大字串長度可以調整到100或150。

![9_3](https://hackmd.io/_uploads/B1kX7fX06.png)

按下「綠色啟動」旗子，可以看到字串的結果。

![9_4](https://hackmd.io/_uploads/r1kQQzmRT.png =420x350)

可以試著問他問題了，到此已經完成ChatGPT人工智慧的聊天對話對話。

![9_5](https://hackmd.io/_uploads/Hk1mXMQA6.png =420x350)


## :pencil: 第 10 步 - 換上愛因斯坦的頭貼吧！

想要專屬頭貼嗎？可以下載這一張圖，此圖引用CreatiCode網站。

![Einstein](https://hackmd.io/_uploads/rJi13zmRp.png =300x300)

切換到第二個「造型標籤」頁面，在這裡可以更換頭貼。

![10_2](https://hackmd.io/_uploads/BkQM7fQAT.png)

左下角「彩色Logo讓滑鼠放在上方，出現「上傳造型」，新圖需要在第一張。
![10_3](https://hackmd.io/_uploads/H1XzXM7Ca.png)

放上愛因斯坦圖像，讓我們再來試試看對話視窗。

![10_4](https://hackmd.io/_uploads/Byka2z70a.png)

:small_blue_diamond:已經換上頭貼，成功了！

![10_6](https://hackmd.io/_uploads/HyyxTzm0a.png =350x300)



## :book:Reference

[ChatGPT AI: Chat with Einstein (Difficulty: 3)](https://forum.creaticode.com/topic/925/chatgpt-ai-chat-with-einstein-difficulty-3/2)
          