2024年2月13日 星期二

OpenAI API 學習筆記 : 註冊 OpenAI 帳戶與建立 API 金鑰

我使用 ChatGPT 已一年, 上過不少如何串接 OpenAI API 的教學課程, 卻一直沒時間測試, 趁春節連假結束前兩天的空檔動手玩看看. 由於我在 2023 年 2 月初註冊 OpenAI 帳號時獲得的 18 美元額度早就歸零了, 這次借用爸的手機註冊一個 OpenAI 帳號來用, 不過目前新註冊帳戶的免費額度已縮水到 5 美元, 一支手機可用來驗證 3 個 Email 帳號, 但只有第一個 Email 帳號會獲得 5 美元免費額度. 


一. 註冊 OpenAI 帳戶 : 

使用 OpenAI API 可以從 ChatGPT 登入/註冊頁面進去註冊 : 


也可以直接從 OpenAI API 登入/註冊頁面進去註冊 : 


或者從下面網址按 Try ChatGPT 鈕進去登入 :


兩個註冊入口效果是一樣的, 此處使用前者進行註冊. 

按右上角 "Get Started" 底下的 "Sign up" 鈕 :




輸入 Email 後按 "繼續" (最好是用 Gmail) : 



設定密碼 (至少 12 個字元) 後按 "繼續" :




OpenAI 會寄一封驗證信到信箱 : 



開啟信件按其中的 "Verify email address" 鈕, 若顯示 "Email verified" 表示註冊完成 : 





這時回登入/註冊頁面, 按 "Login in" 鈕 : 





輸入帳密 : 



登入成功會進入 ChatGPT 3.5 版頁面 : 




左上角的下拉式選單可以選擇所使用的 GTP 大語言模型, 免費帳戶只能使用 GPT 3.5, 只能使用聊天功能, 如果要使用文生圖等進階功能, 需按左下角的 "Upgrade plan" 鈕升級為付費帳戶 (輸入信用卡號授權每月扣款 20 美元). 

如欲聊天可在右下方中的輸入框輸入提示 (Prompt 文句) 後按 Enter 即可. 例如茶米老師上課最愛問的 "愛情是甚麼" :




不過 GPT 有些答覆會讓人覺得傻眼, 例如問它 "我爸與我媽可以結婚嗎?" : 




好的答覆通常需要給它一些適當的人設設定或背景提示, 這些技巧稱為提示工程 (Prompt engineering)
.

二. 建立 OpenAI API 金鑰 (key) : 

上面的 ChatGPT 已經提供了簡易操作的網頁介面來與 GPT 大語言模型聊天, 但必須是人工手動操作, 如果要達成自動化或將 GPT 的聊天功能整合到自己的應用程式 (例如 Line Bot 聊天機器人), 必須透過 OpenAI 所提供的 API 才行. 應用程式存取 GPT 並非使用 OpenAI 的帳號密碼, 而是透過金鑰 (API Key). 

首先連線下列網址按右上角的 "Log in" 鈕登入 OpenAI 帳戶 : 







登入成功會進入文件區的 Overview 頁面 : 





按左導覽列上的 "API Keys" 按鈕會進入金鑰管理頁面 :



 
新註冊的帳戶會先做手機驗證, 每支手機可替 3 個 Email 做驗證, 但只有第一個 Email 帳號會獲得使用期限 3 個月的 5 美元免費額度. 按右方的 "Start verification" 鈕進行驗證 : 




在彈出視窗輸入手機號碼 (0 不用) 後按 "Send code" 鈕 :




OpenAI 會傳送一個含有驗證碼的簡訊到上面輸入的手機中, 請查看簡訊並將驗證碼 (5 位數字) 填入至彈出視窗的驗證碼輸入框中, 正確的話會彈出如下之 Key 產生頁面 : 




Name 欄可填可不填, 按 "Create secret key" 鈕即可產生金鑰 :



按 "Copy" 鈕將 Key 複製到一個文字檔中保存, 因為它只顯示這一次, 務必在按 "Done" 鈕之前先保存起來, 彈出視窗關閉後, 在金鑰管理頁面中不會顯示完整的 Key, 如果沒記下來只能刪除它重新建立新的金鑰 :




按左邊導覽列的 "Usage" 鈕可檢視可用額度與已用額度 :





可見新註冊帳戶已獲得 5 美元的 API 使用額度, 它會依據用掉的 token 數計算要扣除的金額. 此 5 美元的免費額度需在 3 個月內用完, 逾期會歸零. 注意, API 的計費採 Pay as you go (實支實付) 模式計價, 與 ChatGPT 升級為付費帳戶的月付 20 美元不相干

如果是用我的 Hinet Email 帳戶登入檢視 Usage 結果如下 :




我在 2023-02-08 申請後小玩一下就沒時間而擱著, 18 美元免費額度才用了 0.01 美元, 三個月到期就被歸零了. 如果要繼續使用 API 就要填寫信用卡資訊成為付費帳戶才行.

 按左邊導覽列的 "Settings" 再按 "Billing" :




按 "Add payment details" 鈕會彈出一個視窗詢問是個人帳戶還是公司帳戶 (主要差別是公司戶有統編欄位), 選擇個人帳戶 :




接著會彈出填寫信用卡資訊與地址的視窗, 填好後按 "Continue" 即可 :




OpenAI 會先扣款 5 美元但會在稍後 (約 7 天) 後退還. API 使用費為月結, 依照 token 使用量計費, 用多少付多少. 如果怕費用爆表, 可在 Billing 頁面按 "Usage limits" 鈕進去設定費用限制, 其中 Soft limit 是警告額度, 當費用超過此額度後會發出警告信; Hard limit 則是停用額度, 超過此額度後當月的剩餘日子就無法再使用 API 了. 


三. 使用 Playground 聊天介面 : 

OpenAI 提供了 Playground 網頁介面讓使用者可以與 GPT 大語言模型聊天 (這正是 ChatGPT 一炮而紅的起源). 在 platform.openai.com 按左上方第一個圖示即可進入 Playground 頁面 : 




先關閉左邊的使用說明欄 :




這樣就會剩下 System, User, 與 Model 三個欄位. Playgound 預設是試用中 (beta) 的 Assistants 模式, 請將其從預設的 Assistans 改成 Chat 模式 : 




然後在 System 欄輸入 "你是一個 Python 程式設計師", 中間上方輸入 "如何用正規式驗證 Email?",  右方的模型設定欄用預設值即可, 然後按中間欄最底下的 "Submit" 鈕, 這樣 Assistans 欄位就會出現回應了 : 





右方的模型設定欄參數說明如下 : 
  • Temperature : 控制回應的創造力 (值 0~1)
    低 : 會生成正確但相對單調, 變化較小的文本.
    高 : 會評估能適應上下文之可能回應, 生成較多樣化的文本, 但錯誤性較高.
  • Maximum length : 回應長度限制 (回應之 token 數)
    API 以每次生成文本之 token 數收費, 對預算有限者而言此參數很重要. API 的限制是提示詞與回應總 tooken 數最多 2048. 
  • Stop sequence : 讓 API 停止生成的字串
    這是安插在提示詞中的信號字串, 當 API 遇到該詞時就會停止生成 toke, 這是提供給使用者控制成本的機制. API 允許你設定 4 個詞彙做為停止詞.
  • Top P : 控制模型在 Temperature 建議的隨機結果中要選出的範圍 (值 0~1)
    Top P 的值低表示確定性較高, 例如 0.1 表示只有 10% 的隨機回應會被考慮用來回應 (限制了創造力), Top P 的值高表示有更多比例的隨機回應會被考慮做為回應 (釋放創造力), 但也意味著會冒較高的錯誤風險. Temperature 與 Top P 是息息相關的, 前者控制隨機程度, 後者則控制隨機結果的選擇性. 
  • Frequency/Presence penalty : 控制在回應中重複輸出相同文本的程度
    這兩個參數是考慮提示詞與先前的輸出回應 (而不是模型內的參數) 來控制回應, Frequency panalty 透過懲罰模型來降低重複相同語句之機率; 而 Presence penalty 則增加模型談論新話題之機率, 這樣可以避免在多次的回應中重複輸出相同的語句. 若建議的文本輸出重複了就會使用 Frequency penalty; 若只出現一個相同 token 就使用 Presence penalty. 

沒有留言 :