我的第一個 ChatGPT 聊天機器人

更新於 發佈於 閱讀時間約 5 分鐘
由于 ChatGPT 的出現讓我們看到了聊天機器人的新可能性,我們這篇文章的目的,就是要來製作第一個屬於自己的聊天機器人。
我們先來準備範例的程式碼,並且稍後會再跟大家介紹要設計自己的 ChatGPT 聊天機器人的重要概念。

初始專案與環境設定

下載程式碼

請先使用下面這一段指令下載我們的範例程式碼。
git clone https://github.com/u8621011/HelloGPT.git

設定API key

程式碼下載完後,到【命令列視窗】輸入下方指令來複製 .env 設定檔,複製完後,修改 .env 檔裏面的OPENAI_API_KEY 變數,設定為你個人的 OpenAI API key。
cd HelloGPT
copy .env.example .env

準備 python 執行環境

#確認目前正在 HelloGPT目錄下
virtualenv env
env/bin/activate
pip install -r requirements.txt
以上環境準備好了後,請使用 Visual Studio Code 來開啟專案內的 my-first-bot.ipynb 檔。
開啟檔案後,請先選擇 vscode 的執行環境。
執行環境選擇完後,你就可以依序在 Juypter notebook Cell 上按【執行按鈕】執行 Cell了。

基本概念

要以程式碼製作自己的對話機器人,最重要的核心程式如下:
首先我們先準備好呼叫 chat api 的工具,如下:
def get_completion_from_messages(messages, model="gpt-3.5-turbo", temperature=0):
  # 呼叫 OpenAI chat completion API
  response = openai.ChatCompletion.create(
    model=model,
    messages=messages,
    temperature=temperature, # 這個參數決定了模型輸出的隨機程度
  )
  # print(str(response.choices[0].message))
  # 回傳模型生成的回應
  return response.choices[0].message["content"]
然後再準備我們要傳給 chat api 的訊息結構。
messages =  [
  {'role':'system', 'content':'你就像唐朝大詩人李白一樣,請使用四言絕句來跟我做回應。'},
  {'role':'user', 'content':'你好'},
  {'role':'assistant', 'content':'兄臺別來無恙'},
  {'role':'user', 'content':'我很好,今天你打算去哪裏?'}  
]
response = get_completion_from_messages(messages, temperature=1)
print(response)
chat completion 的 messages 資料結構,其實就是儲存使用者和機器人的對話記錄,chat api 在收到我們如上的訊息資料後,它就可以知道和使用這對話的前後文。
下方則是實際自行後的結果。
大家有沒有注意到 chat api 竟然會以文言文回覆我們?會有這樣的效果則是因為我們在 message 裏面加上了 system 這個角色的設定。

角色定義

messages 這資料結構的功能不只是保存了機器人和使用者對話記錄,它也可以讓我在正式對話前,設定機器人該扮演的角色跟它對話的背景材料。
我們可以使用的角色共有三個(system/assistant/user),他們之間的關係如下:
system 角色定義了你期待對話機器人的整體行為準則。
assistant 的部分,則是記錄對話機器人的回應。
user 的部分,則是使用者的對話。
所以 messages 裏面我們通常在第一則放 system 的系統設定,而後續則是存放著 user 跟 assistant 之間互相來來往往的訊息。
最後,我們再來多看幾個範例,大家應該會更好理解 messages 訊息的使用方法。

對話範例

範例一

我們從機器人的回應可以看出來,因為沒有其他的對話記錄,所以機器人對我們是一無所知的。

範例二

如以下的 messages,由於我們在對話過程中已經提到我們自己名字,所以在稍後我們詢問機器人我們的名字時,它就會知道怎麼回覆。

接單機器人

最後一個 messages 定檔範例,我們在 system 裏面提示了機器人它的任務,作業流程以及我們的菜單,如下:
有了這些設定後,大家可以看到機器人與我們的對話就會更有目標性,而且很讓人驚訝的是,它也記得我們 system 設定內提到的很多的細節。回覆記錄如下:
以上希望能幫助大家理解如何開始設計自己的第一個聊天機器人,當然目前這樣的設計還無法盡善盡美,其他的技巧我們日後會再陸續跟大家介紹。
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
avatar-img
18會員
19內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Ted Chen的沙龍 的其他內容
這篇其實就是 Andrew Ng 大大與 OpenAI 合作的一門免費課程【Chatgpt Prompt Engineering For Developers - Guideline】章節的第二段筆記。很建議大家直接看原本的課程影片,內容蠻淺顯易懂的。 第一段筆記在這:開發者的 ChatGPT 提示
這篇其實就是 Andrew Ng 大大與 OpenAI 合作的一門免費課程【Chatgpt Prompt Engineering For Developers】的筆記。很建議大家直接看原本的課程影片,內容蠻淺顯易懂的。 另外因為篇幅有限,所以我們會將他的第一堂課的內容(Guidelines),拆分成
在正式以比較技術面角度來認識 ChatGPT / GPT 之前,我們先用幾個簡單的例子來認識 ChatGPT 以及語言模型可以做到怎樣的事情。 什麼是 ChatGPT? 簡單來說明,ChatGPT 是一個背後使用 GPT 語言模型的對話機器人,而它可以做什麼事情了?我們先來使用幾個常見的語言相關的任
63 個省,嗯...好多啊,可能記得起來嗎?不過開玩笑的,記憶也沒有太多意義,今天和大家分享這影片主要是因為,這影片的取景跟配樂實在是太精彩了 另外這位 Youtuber 其實關注他很久了,很喜歡他表現出來的自豪、熱愛的態度,一定是位很熱愛自己國土的人,才能堅持到現在。 比較可惜的是這部影片沒有字幕
這次看完這影片後,發現了一個蠻有趣的越南網站 - Gody。它是一個專門設計給背包客、自由行旅客的一個旅行工具平台(For 越南人)。大致上行程規劃、旅程經驗分享、甚至交友/語言交換似乎都可能在上面實現? 另外也在想,不知道下次要不要深入了解後跟大家仔細拆解、說明如何使用這個網站呢? 如果有這個興趣
人果然身處在環境中會不自覺的麻痺,看著這越南朋友遊台灣的影片,應該是自己對於台北也過分熟悉吧,所以沒有太多的衝擊。但是看著影片時,不時會出現的【原來越南語是這麼說?】的訝異,倒是有點不一樣的感覺 不過即使太過於熟悉,任何東西深掘下去,果然也是會有平常沒有注意到之處。 關於蚵仔麵線的其他 由於自己還算
這篇其實就是 Andrew Ng 大大與 OpenAI 合作的一門免費課程【Chatgpt Prompt Engineering For Developers - Guideline】章節的第二段筆記。很建議大家直接看原本的課程影片,內容蠻淺顯易懂的。 第一段筆記在這:開發者的 ChatGPT 提示
這篇其實就是 Andrew Ng 大大與 OpenAI 合作的一門免費課程【Chatgpt Prompt Engineering For Developers】的筆記。很建議大家直接看原本的課程影片,內容蠻淺顯易懂的。 另外因為篇幅有限,所以我們會將他的第一堂課的內容(Guidelines),拆分成
在正式以比較技術面角度來認識 ChatGPT / GPT 之前,我們先用幾個簡單的例子來認識 ChatGPT 以及語言模型可以做到怎樣的事情。 什麼是 ChatGPT? 簡單來說明,ChatGPT 是一個背後使用 GPT 語言模型的對話機器人,而它可以做什麼事情了?我們先來使用幾個常見的語言相關的任
63 個省,嗯...好多啊,可能記得起來嗎?不過開玩笑的,記憶也沒有太多意義,今天和大家分享這影片主要是因為,這影片的取景跟配樂實在是太精彩了 另外這位 Youtuber 其實關注他很久了,很喜歡他表現出來的自豪、熱愛的態度,一定是位很熱愛自己國土的人,才能堅持到現在。 比較可惜的是這部影片沒有字幕
這次看完這影片後,發現了一個蠻有趣的越南網站 - Gody。它是一個專門設計給背包客、自由行旅客的一個旅行工具平台(For 越南人)。大致上行程規劃、旅程經驗分享、甚至交友/語言交換似乎都可能在上面實現? 另外也在想,不知道下次要不要深入了解後跟大家仔細拆解、說明如何使用這個網站呢? 如果有這個興趣
人果然身處在環境中會不自覺的麻痺,看著這越南朋友遊台灣的影片,應該是自己對於台北也過分熟悉吧,所以沒有太多的衝擊。但是看著影片時,不時會出現的【原來越南語是這麼說?】的訝異,倒是有點不一樣的感覺 不過即使太過於熟悉,任何東西深掘下去,果然也是會有平常沒有注意到之處。 關於蚵仔麵線的其他 由於自己還算
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Prompt Template 是在眾多應用程式中塑造人工智慧產生回應的結構基礎,它們代表了Prompt
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 再來談一個使用 TOCD 這個 Prompt 範本,建立「食譜推薦」的完整 Prompt,TOCD 的說
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 ChatGPT縱然成功,但是仍有一些任務處理得不好,例如: 需要邏輯推論的任務 多步驟的任務
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 生成式AI (Generative AI)是一種人工智慧,它調度機器學習方式來產生新的或者是原創的文字、
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續AI說書 - Prompt Engineering - 1,我們從AI分類開始談起: 機器學習
Thumbnail
ChatGPT(全名:聊天生成預訓練轉換器)是一個由 OpenAI 開發的人工智慧聊天機器人程式。它於 2022 年 11 月推出,使用了基於 GPT-3.5、GPT-4 和 GPT-4o 架構的大型語言模型,並以強化學習進行訓練。
Thumbnail
前年2022年11月OpenAI公司發表了ChatGPT,並開放ChatGPT-3.5在網路上供人免費下載試用,瞬間引爆了人工智慧的話題,能夠自我學習的ChatGPT以每天可見的變化在進步,讓人見識到人工智能的學習力,隨後OpenAI發表的GPT-4,讓人見識到GPT這個人工智慧系統有著令人驚訝的智
Thumbnail
從最初的接觸到深度的投懷送抱,這篇文章對於解決如何安裝text-generation-webui提供了清晰的指引。 它引導讀者通過它的官方方式和Docker方式做到這一點。此外,作者還分享了必要的優化建議。
Thumbnail
本文章介紹瞭如何使用AutoGPT, 一種可以自主蒐集資料生成訴求,幫你與ChatGPT在互動中提出一連串的問題,來解決你的問題。對於安裝時的常見問題也進行了解答,並提供了使用的步驟以及目前的解決方式。
Thumbnail
大家好,我是萊丘,今天要與大家分享的是 OpenAI最新公布的AI提示詞生成指南。這份指南分成六大要點,幫助我們如何有效地跟ChatGPT互動,就算你不會寫 code 也可以輕鬆掌握。 要點一:指令清晰且具體 大家都知道,ChatGPT 雖然聰明,但它不是讀心術的高手,所以我們需
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Prompt Template 是在眾多應用程式中塑造人工智慧產生回應的結構基礎,它們代表了Prompt
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 再來談一個使用 TOCD 這個 Prompt 範本,建立「食譜推薦」的完整 Prompt,TOCD 的說
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 ChatGPT縱然成功,但是仍有一些任務處理得不好,例如: 需要邏輯推論的任務 多步驟的任務
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 生成式AI (Generative AI)是一種人工智慧,它調度機器學習方式來產生新的或者是原創的文字、
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 延續AI說書 - Prompt Engineering - 1,我們從AI分類開始談起: 機器學習
Thumbnail
ChatGPT(全名:聊天生成預訓練轉換器)是一個由 OpenAI 開發的人工智慧聊天機器人程式。它於 2022 年 11 月推出,使用了基於 GPT-3.5、GPT-4 和 GPT-4o 架構的大型語言模型,並以強化學習進行訓練。
Thumbnail
前年2022年11月OpenAI公司發表了ChatGPT,並開放ChatGPT-3.5在網路上供人免費下載試用,瞬間引爆了人工智慧的話題,能夠自我學習的ChatGPT以每天可見的變化在進步,讓人見識到人工智能的學習力,隨後OpenAI發表的GPT-4,讓人見識到GPT這個人工智慧系統有著令人驚訝的智
Thumbnail
從最初的接觸到深度的投懷送抱,這篇文章對於解決如何安裝text-generation-webui提供了清晰的指引。 它引導讀者通過它的官方方式和Docker方式做到這一點。此外,作者還分享了必要的優化建議。
Thumbnail
本文章介紹瞭如何使用AutoGPT, 一種可以自主蒐集資料生成訴求,幫你與ChatGPT在互動中提出一連串的問題,來解決你的問題。對於安裝時的常見問題也進行了解答,並提供了使用的步驟以及目前的解決方式。
Thumbnail
大家好,我是萊丘,今天要與大家分享的是 OpenAI最新公布的AI提示詞生成指南。這份指南分成六大要點,幫助我們如何有效地跟ChatGPT互動,就算你不會寫 code 也可以輕鬆掌握。 要點一:指令清晰且具體 大家都知道,ChatGPT 雖然聰明,但它不是讀心術的高手,所以我們需