![使用 ChatGPT 設計線上 AI 客服中心](/content/images/size/w2000/2024/06/AI---Python----.jpg)
對於想學習 Python 的程式初學者而言,《AI助攻 Python超級入門 》透過有意思且實際例子,讓初學者可以在 AI 的協助下,一邊玩耍一邊學好 Python,了解如何利用生成式 AI 幫忙寫程式。
這一篇文章將簡單介紹使用 ChatGPT 的 API 設計線上 AI 聊天室。
ChatGPT 的 API 類別
ChatGPT 的 API ( 應用程式介面 ) 主要用於開發者將 ChatGPT 整合到他們的應用程 式、服務或者網站中,以下是使用 OpenAI 提供的 ChatGPT API 的類別:
- 文字生成:透過 API,您可以使用 ChatGPT 生成自然語言文字。用於自動回答問題、撰寫文章、生成摘要等。
- 對話應用:將 ChatGPT 整合到聊天機器人、智慧助理或客服機器人中,可以實現人性化的對話互動。
- 自然語言理解:利用 ChatGPT 的語言理解能力,可以將用戶輸入的自然語言轉換為結構化的數據,以便進一步處理。
- 語言翻譯:ChatGPT 可以實現多種語言之間的翻譯功能,如從英語翻譯為中文等。
- 文字編輯與審核:使用 ChatGPT 進行文字校對、語法檢查和風格建議等功能。
通常,您需要註冊一個帳戶並獲得 API 密鑰,以便在您的應用中使用 API,這一章 筆者將設計一個 ChatGPT 的線上 AI 聊天室。
取得 API 密鑰
首先讀者需要註冊,註冊後可以未來可以輸入下列網址,進入開發者環境。https://platform.openai.com/overview
進入自己的帳號後,請點選 API keys,可以看到 View API keys,如下所示:
![](https://edge.aif.tw/content/images/2024/06/17-3.jpg)
上述畫面幾個重點如下:
- OpenAI 公司說明產生 API keys 後,未來不會再顯示你的 keys 內容,建議讀者可以使用複製方式保留所產生的 keys。
- 點選右邊的 Revoke 圖示 ,可以撤銷該列的 keys。
- 是顯示 API keys 產生的時間與最後使用時間,如果點選 Create new secret key鈕,可以產生新的 API keys。
註 使用 API keys 會依據資料傳輸數量收費,因為申請 ChatGPT plus 時已經綁定信用 卡,此傳輸費用會記在信用卡上,所以請不要外洩此 API keys。
安裝 openai 模組
安裝 openai 模組指令步驟如下,請進入命令提示字元環境,然後輸入下列指令: pip install openai
常用 ChatGPT 語言模型的選擇可參考下表:
![](https://edge.aif.tw/content/images/2024/06/---2024-06-08---3.04.49.png)
筆者經過測試,「GPT-4」模型功能比「GPT-3.5 Turbo」強很多,雖然傳輸費比較貴,但是個人練習仍是在可以控制的範圍。
設計線上 AI 客服與 Emoji 機器人
因為 Colab 環境目前沒有安裝 openai 模組,所以我們必須在 Python Shell 環境建立這類的應用程式,這一節採用先輸出程式,再解說程式的方式。
程式實例 ch17_1.py:設計 ChatGPT 線上 AI 聊天室,程式第 5 列讀者需輸入自己申請的 API keys。
![](https://edge.aif.tw/content/images/2024/06/17-4-1-.jpg)
執行結果
![](https://edge.aif.tw/content/images/2024/06/17-4-2-.jpg)
第 7 列 create( ) 是建立與 ChatGPT 的會話物件,第 12 列有設定會應 150 個 Token 的限制,因此可以看到沒有完整的輸出回應的訊息。以下是程式 ch17_1.py 的解說:
- 定義對話函數 chat:第 7 ~ 14 列,這個函數目的是向 OpenAI 的 API 發送對話內 容並獲得回應。函數參數是 messages,該參數是一個包含對話歷史的串列。
- 歡迎訊息:第 16 列是用 print( ) 函數向用戶輸出歡迎訊息。
- 初始化對話串列:第 19 列是 messages 串列,用於存儲與客服機器人的對話歷史。 "role" 是設定系統,"content" 是設定機器人的角色。未來只要調整這裡,就可以 設計各類機器人
- 執行對話:第 22 ~ 30 列是一個無限迴圈,功能如下:
- while 無限迴圈,用於持續與用戶進行交互。
- 用戶輸入訊息後,將其添加到 messages 串列。
- 然後調用 chat 函數獲得回應並顯示。
- 如果用戶輸入 "bye",則結束對話。 - 上述第 27 和 30 列是將用戶問話和系統回答附加到原先的 message,這是因為 ChatGPT 要保有全部的對話紀錄,未來才可以針對過去的對話回應,這也是為何 我們以為 ChatGPT 有記憶的能力,其實每次對話,ChatGPT 皆可以將過去對話紀 錄重新複習。
期待讀者能夠了解這個程式的結構和功能,以及如何使用 OpenAI 的 API 來建立一 個基本的客服機器人。
程式實例 ch17_2.py:設計 Emoji 翻譯機器人。
![](https://edge.aif.tw/content/images/2024/06/17-5.jpg)
執行結果
![](https://edge.aif.tw/content/images/2024/06/17-6-1-.jpg)
設計聊天生成圖片的機器人
目前「dall-e-3」是最新模型,只能生成一張圖片 (n = 1),如果使用舊版的「dall-e-2」則可以最多生成 10 張圖片 (n = 10)。圖片寬與高預設是 1024 x 1024,也可以設為寬版的「1792 x 1024」。
程式實例 ch17_3.py:擴充設計 ch17_1.py,當輸入「生成圖片 :」時,後面所接的文字就會被當作是「圖片描述」。
![](https://edge.aif.tw/content/images/2024/06/17-6-2-.jpg)
![](https://edge.aif.tw/content/images/2024/06/17-7-1-.jpg)
執行結果:ChatGPT 會生成圖片網址,將此網址複製到瀏覽器就可以看到圖片。
![](https://edge.aif.tw/content/images/2024/06/17-7-2-.jpg)
![](https://edge.aif.tw/content/images/2024/06/17-8.jpg)
本文節錄自《AI助攻 Python超級入門 創意設計 x AI程式實作》,由深智數位授權轉載。