To Do Create a OpenAPI key: 本課開發環境:用 Colab 與 Replit 兩個線上開發環境,範例必須搭配 openai 套件 0.28.1 版運作, 以下 Colab 範例檔案均已設定安裝此版本, 若要在自己本機上建置測試環境, 請以如下指令安裝對應版本的 openai 套件:pip install openai==0.28.1 我們可以透過openAI提供的API來達到自己做一個屬於自己的chatGPT,對於有點程式基礎的人來說是“非常香的”,而且有趣好玩。 openAI提供的API讓我們能夠將ChatGPT底層的大型語言模型(LLM)串接到我們自己的程式當中。 有很多人或許會問: 有了chatgpt為什麼還有API? 為了讓流程都能按照我們自己的意思“自動化”運行。 並且更彈性。 一但可以串接API程式就可以依據需求,隨時下達適當的指令,讓AI扮演不同的角色。比如下達回覆時一定要用英文,他就會變成一個英文對談的教學機器人,完全不受限於一般英文教材的範圍,你可以盡情變換談話內容,宛如一個真實的英語家教。 像是Bella AI這個英語家教一樣。: 【免費家教】AI English Coach Bella,讓你立即體驗提升英語口說能力 - AmazingTalker Help Center (elevio.help) 謹記openAI 的API key不可被別人知道不然你的錢會一直扣… 隨時來看看自己用了多少,當然…如果怕自己用太多的話,每個月都可以“自己設定最高上限”避免自己不小心用超過了, 但是如果只是練習一些接API的小project的話token數都不會用太多的。 注意:雖然你登入chatGPT和使用API是同一個帳戶,但是不代表你付了chatGPT成為chatGPT plus的20美金就可以直接使用GPT的API,兩個的使用金額是完全分開的,畢竟算法不一樣個人覺得相當合理!! 先利用playground熟悉API: 正式撰寫程式使用API之前,openAI提供了一個Playground(遊樂園)頁面,可以讓我們利用簡單的介面,測試API所提供的功能,以下就利用Playground熟悉API的基本知識。 可用的API程式與模型 說明區:簡單扼要解釋目前的設定,以及建議或是注意事項。 測試區:可在此輸入提示比且觀察各個模型之下的回覆。 設定區:可以設定不同類型的API以及各種參數,都可以試玩看看。並且可以看到不同參數之下的source code為什麼,目前有python和javascript的語法可以參考。 可以看到有“chat”和“completion”和“edit”。 由於GPT3.5turbo和GPT4在API的格式上完全相同,我們之後的程式範例都可以在這兩種模型上運行,一般練習時建議都用較便宜的GPT3.5 turbo。 另外還可以看到16k 8k等文字代表他可以處理的token數量。 token是模型處理時的最小單位,也是openAI計價的單位,你輸入給模型的文字都會被轉成token, 接下來會講解token是什麼?怎麼計算token? 使用chat模式必須要提供結構化訊息串(messages),也就是對答過程作為模型的提示,訊息串中的每個訊息必須包括發言的角色與發言內容,角色種類如下: 如果我們想繼續對話的話,就可以按“Add message”,就可增加user角色訊息。 再者也可以隨時切換角色,比如我們可以在”assiatant”和”chat”之間切換。 請保持對答脈絡: 要注意的是,AI並不會自動記錄聊天過程。在送出訊息給API時都必須將對答過程一倂傳回,才能維持聊天脈絡。例如: 按訊息右上方的減號可以將訊息刪除。 如果我們將某些對話訊息刪除並問相同的問題,要注意的是會可能因為沒有遵循聊天脈絡,而讓API回答你的話變得很奇怪。因為前後問會變得沒辦法連貫導致得到模凌兩葛的答案。請特別注意,這個就跟有沒有好的prompt有異曲同工之妙。 因此,在使用cha時就必須考慮到要送多少對答紀錄,送的越多,文字量也越大,轉換後的token文字量也越大,費用當然也會越高。以一般應用來說,可能只需要送回前兩三次的對答過程即可讓對答維持在相同的脈絡。 注意:在playground中的測試也會計費,所以雖然用起來很像是chatGPT但是是會額外收費用的。 到這裡就完成了使用API的準備,也認識了使用API時最重要的兩件事: 程式要送給API訊息串作為提示,訊息串中的每個訊息都是由“發言角色”與“發言內容”所構成。 如果要讓模型能夠維持在相同的前文脈絡對答,就必須將對答過程一併傳回,而不只是傳回當前的發言內容。 下一節開始,我們將要使用Python開始撰寫程式運用API了,會先從如何建構Python環境開始講起。雖然此次講解主要用兩個現成的環境,“colab”和”Replit”. (https://replit.com) 但如果沒有網路或是真正要建構非常有組織的大程式,還是建議在自己的電腦上做建構,因為第四堂課的進階內容將會帶大家建構一個自己的LLM side project,當時就會切換成用自己的local環境來做這個專案。 所以早裝晚裝還是得裝!:) GPT模型版本與價錢: OpenAI提供多種模型, 供我們透過API進行串接。目前的主要版本有GPT3.5turbo, GPT4。在我寫這篇內容的時候考可輸入GPT4-1106-preview.來搶先體驗一下”最新版本的模型”。 下表為這兩種模型的主要差異: 此外OpenAI也提供了DALLE3的文字轉圖像,TTS的文字轉語音,Whisper的語音轉文字和Embeddings的文字轉向量模型。 什麼式token?? https://platform.openai.com/tokenizer