一、前言 當OpenAI開發的ChatGPT橫空出世後,許多人便開始思考如何將ChatGPT的模型套用在不同的工作中,甚至也開始利用OpenAI的金鑰,開發不同功能或用來處理特定任務的專屬機器人。本次課程將手把手地告訴大家,如何利用OpenAI API進行不同功能的開發,依照自己的需求,打造屬於自己的AI機器人。 二、OpenAI API應用範例 當我們想要在自己設計的機器人中導入OpenAI時,第一步當然就是要先申請OpenAI API的金鑰。申請方法非常簡單,我們首先要進入OpenAI API的介面,點擊右上方的「Dashboard」後,再於左方工具欄中選擇「API keys」。接著點選右上方的「+ Create new secret key」,並設定好金鑰的名稱,再點選「Create secret key」就可以成功得到一串金鑰啦(如下圖)!需要注意的是,我們一輩子就只會看到這個金鑰一次,所以大家切記要將金鑰複製,並保存於文字檔或記事本中。另外,若我們連續申請太多次金鑰,可能會出現要回答多個問題才能再申請的情況發生,需要特別留意。除此之外,如果我們想要知道每個金鑰的使用狀況,包含用量與費用,則可以到「Usage」中查看。有了金鑰以後,現在就讓我們看看它可以幫我們做什麼吧! OpenAI API金鑰申請步驟。(圖/OpenAI操作截圖) OpenAI API文本生成服務開發 我們都知道,ChatGPT具有強大的語言功能,也常被用來產生文案。因此,我們當然可以串接OpenAI API,幫助我們生成文本。 首先,我們要先進入Google雲端硬碟,並開啟「Google Colaboratory」。如果找不到該功能,則可以點擊右鍵,在「連結更多應用程式」中搜尋Google Colaboratory,就可以成功開啟。接著,我們就可以開始輸入程式碼,串接OpenAI金鑰了。 由於我們要使用OpenAI生成文本,所以在程式碼開頭要先輸入「!pip install openai」安裝OpenAI的套件。接著再於「openai.api_key = 」後放入我們的金鑰,並輸入「response = openai.chat.completions.create」呼叫Chat Completions API聊天模型。我們可以在這裡指定要使用的GPT模型參數,像是gpt-3.5-turbo、gpt-4或gpt-4o等,亦或是其他文字轉語音、語音轉文字的模型。接下來,當我們要把訊息傳出去時,必須先輸入訊息串列。這個訊息串列包含三個角色:「系統」(system)、「使用者」(user)、「助理」(assistant)。「系統」主要是用來指定機器人的角色,讓它的回覆可以更符合我們想要的結果。「使用者」則是用來指定使用者提示。最後的「助理」,代表模型回覆的結果,是用來做歷史紀錄,以便進行連續的對話。 假設我們想要機器人扮演行銷小編,那麼我們首先要在system的程式碼中,指定它為「一位行銷小編,請用此身份回覆,並用繁體中文回覆。」接著,在user的部分輸入我們想要機器人執行的任務,像是「請幫我寫人中之龍8的IG貼文」。最後,我們再輸入print (response.choices[0]. message. content),用來印出模型產生的訊息,並點選執行,就可以成功得到一串系統寫的行銷文案了(完整程式碼請見下圖)。 OpenAI API文本生成服務開發完整程式碼。(圖/OpenAI操作截圖) 2.打造智慧客服機器人 雖然上述的文本生成機器人可以快速幫助我們得到一篇文案,但它仍有ChatGPT會一本正經胡說八道的老毛病。即便如此,我們也可以利用「少樣本提示」(Few-shot prompting)的方法,將公司相關資料提供給機器人,讓它的回答可以限縮在此資料範圍內,打造一個能夠依照我們的資料提供與事實相符回應的客服機器人。少樣本提示,指的是提供真實少量的數據樣本與提示給模型,來引導模型生成符合特定任務或要求輸出。此方法的優點為,能夠在少量樣本數據實現高效的模型微調,整體而言具有靈活性、通用性和快速調整的能力。且它也可以有效減少人力並適用於各種任務。 打造客服機器人的第一步,一樣是開啟google colab。而由於我們要結合GUI製作客服機器人,所以要先輸入!pip install gradio安裝gradio,並輸入!pip install openai安裝OpenAI 。接著輸入import openai和import gradio as gr ,再放入我們的OpenAI API金鑰,並點選右方的執行。與文本生成不同的是,我們在這裡要將程式碼變成一個函數,所以要於訊息串列中輸入def chat (prompt) :。接著,因為我們要帶入客戶提問的prompt,所以要於訊息串列中「user」部分的“content”後的程式碼改為prompt。 接下來,我們就可以開始上傳公司資訊給機器人,讓它可以依照這些資訊回覆客人的問題。假設我們是一間飯店的經營者,想要打造一個專屬的客服機器人,那麼可以點選colab頁面左側工具欄的資料夾圖示,將飯店服務資訊的文字檔上傳。如此一來,我們就成功地將資料嵌入在客服機器人中了。最後,為了要讓機器人依照公司資料回覆,所以我們也要記得在程式碼中加入如下圖藍色部分的with = open程式碼。 為了讓機器人可以依照我們上傳的資料回覆客人問題,我們必須加入上圖藍色部分的程式碼。(圖/OpenAI操作截圖) 接下來,我們要於訊息串列中設定機器人的角色,所以要將system設定為「一位飯店客服人員,請依{info}內容回覆,並用繁體中文回覆。」點選執行後,機器人就會成功依照我們提供給它的資訊進行回覆。完成客服機器人的最後一步,就是要再加上以下程式碼:interface = gr. Interface (fn=chat, inputs=gr.Textbox (label=‘提問’), outputs=gr. Textbox (label=‘回覆’), title=‘飯店客服系統’) interface. Launch (share=True),輸入完成後點選執行,確認是否可以成功執行程式碼。若執行成功,應會出現如下圖的飯店客服系統。我們可以點選系統出現的網址,並在google頁面右上方的三個點點,使用「開發人員工具」,將客服系統變成手機版。 成功執行客服機器人的程式碼後,我們可以得到如圖中系統給我們的網址。我們可以利用Google的「開發人員工具」,將此客服系統變成手機版。(圖/OpenAI操作截圖) 3.利用OpenAI API進行辦公室自動化 除了打造專屬的客服機器人外,我們也可以串接OpenAI API ,自動化辦公室工作流程。首先,我們可以開啟一個新的google colab,並同樣先將飯店資訊拉到右方工作欄的資料夾中,再於程式碼中安裝OpenAI。現在假設我們有一個excel檔,記錄了客人曾經問過的問題,並希望AI生成的資料可以整理在某個欄位供我們查看。那我們就可以先將該excel檔拉到資料夾中,就可以在程式碼中得到如下圖的程式碼。 當我們上傳excel檔給google colab後,會得到如圖中的程式碼。(圖/OpenAI操作截圖) 接著,我們一樣要做一個函式,並輸入如下圖的程式碼。最後我們再點選執行鍵,就會看到左方出現一個「客服ok」的excel檔。點擊進入excel檔後,我們就可以成功看到機器人自動回覆的訊息囉! 我們必須在程式碼中輸入圖中的程式碼,才能讓機器人在excel檔中的指定欄位進行回覆。(圖/OpenAI操作截圖) 4.OpenAI影像分析服務開發 除了前述的應用外,今年五月份OpenAI也開發了具有視覺功能的GPT-4o,因此我們也可以利用此功能來理解圖像。方法與前述的步驟類似。安裝完OpenAI後,同樣輸入response = openai.chat.completions.create,並設定要使用gpt-4o的模型。接著,在訊息串列中,我們可以在user部分的提示內容放入我們的問題,像是「這張圖片裡有什麼」,也可以直接放入想要讓AI分析的圖片網址。最後,我們一樣用response.choices[0].message.content來印出模型並產生訊息(完整程式碼請見下圖)。 串接OpenAI API進行圖片分析的完整程式碼。(圖/OpenAI操作截圖) 以此類推,我們也可以串接不同的OpenAI功能,打造不同的機器人。舉例來說,假設我們讓機器人可以幫我們繪圖,就可以利用openai.images.generate的方法,並套用DALL·E 3 的模型讓機器人幫助我們生成圖片(完整程式碼請見下圖)。 串接DALL·E 3模型的完整程式碼。(圖/OpenAI操作截圖) 三、結語 從本次的課程內容我們可以發現,擁有了OpenAI的金鑰後,我們可以依照自己的需求撰寫程式,打造不同功能的機器人,像是專業行銷小編機器人、客服機器人,以及圖像分析機器人。然而,礙於篇幅限制,如果大家想要知道完整的程式碼,或者詳細的操作過程,也歡迎觀看本次課程回放喔!