2024年9月16日 星期一

OpenAI API 學習筆記 : 使用 openai 套件串接 GPT 語言模型 (二)

由於月底茶米老師要來我司授課 (OpenAI API), 我之前用爸及菁菁手機申請 OpenAI 帳號時獲得的 5 美元免費額度都早已超過三個月失效了, 所以今天改用我的備用手機 iPhone 門號與 Gmail 註冊 OpenAI 帳戶與申請 API Key 先來複習一下, 距離上次玩 OpenAI API 已經超過半年, 有點生疏了. 

本系列之前的文章參考 :



1. 註冊 OpenAI 帳戶與申請 API Key :

連線登入網址 :

 
按右下角的 "註冊" :



填寫 Email 按 "繼續" :


設定長度至少 12 字元的密碼按 "繼續" : 



去信箱開啟驗證信函, 按 "驗證電子郵件地址" : 




填寫個資按 "同意" 即完成註冊 :




自動進入 Overview 頁面 :





2. 申請 API Key :

按右上角的姓氏按鈕, 點選 Profile :




點選 User API keys :




按 Start verification 鈕 :




輸入手機號碼 : 




讀取手機收到的 6 位數驗證碼後輸入框框中 : 




結果顯示因為此手機門號已綁定了一個 OpenAI 帳號, 所以不會有免費額度可用 :




蛤? 此門號從未拿來用過啊? 奇怪. 按 Continue 輸入 API key 的名稱, 按 Create secret key :




先按右邊的 Copy 鈕將 API key 複製到記事本檔案中保存 : 




因為之前已用 pip instal openai 安裝過套件, 馬上匯入 OpenAI 類別來測試, 結果出現錯誤訊息  :

>>> from openai import OpenAI     
>>> api_key='輸入 API Key'    
>>> client=OpenAI(api_key=api_key)       
>>> chat_completion=client.chat.completions.create(
    messages=[
        {"role": "user",
         "content": "請問愛情是甚麼?",
        }],
    model="gpt-3.5-turbo",
    )   
... (略) ...
    raise self._make_status_error_from_response(err.response) from None
openai.RateLimitError: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}   

'insufficient_quota' 意思是儲值不足啦! 點選左邊導覽列 Overview 底下的 Billing, 發現 Credit remaining 為 0 :




但我這支 iPhone 手機門號從未用來綁 OpenAI 帳戶啊? 查詢網路才知道, 原來今年三月下旬起 OpenAI 就不再贈送新用戶 5 美元免費體驗額度啦! 參考 :



3. 儲值 OpenAI API 帳戶 : 

若要繼續使用 OpenAI API 必須儲值為付費帳戶, 每次最低 5 美元以上, 用多少 token 扣多少費用 (pay as you go), 直到 credits 扣到 0 再儲值即可. 

按 Profile/Billing 的 Add payment details : 




選擇 Indivisuals :





填寫信用卡卡號等資訊後按 Continue : 




選擇儲值額度, 建議 5 或 10 美元即可, 關閉自動扣款 :




按 Confirm payment 完成儲值 :




這時回到 Profile/Billings 就會發現可用額度已變成 10 美元了 : 




再次測試 API 呼叫就能順利取得回應了 : 

>>> from openai import OpenAI     
>>> api_key='輸入 API Key'    
>>> client=OpenAI(api_key=api_key)       
>>> chat_completion=client.chat.completions.create(
    messages=[
        {"role": "user",
         "content": "請問愛情是甚麼?",
        }],
    model="gpt-3.5-turbo",
    )   
>>> chat_completion.choices[0].message.content   
'愛情是一種情感和情緒上的連結,通常是指對另一個人產生深厚的感情和依戀,願意為對方付出和犧牲。愛情包含了關心、尊重、信任、支持和忠誠,是人們之間最重要和特別的情感連結。愛情能夠讓人感到幸福、滿足和安心,同時也需要雙方共同的努力和維護。'

這時去查看 Billing 發現已用掉 0.01 美元, 問這一點點就要 3 元台幣, 好像不便宜咧. 

改用目前最新的 GPT4-o 模型詢問 :

>>> chat_completion=client.chat.completions.create(
    messages=[
        {"role": "user",
         "content": "請問愛情是甚麼?",
        }],
    model="gpt-4o",
    ) 
>>> print(chat_completion.choices[0].message.content)   
愛情是一種深刻而多樣的情感,通常包括對他人的強烈吸引和親密關係的渴望。愛情的具體表現和定義可以因個人、文化和情況的不同而有所不同,但一般來說,愛情包含以下幾個要素:

1. **情感上的依戀**:對另一個人有強烈的情感依附,並渴望與之度過更多的時間。
2. **親密感**:在兩人之間建立深刻的情感連結和理解,分享彼此的生活細節和內心世界。
3. **激情**:這可能包括身體上的吸引和浪漫的激情,通常在戀愛的早期階段最為強烈。
4. **承諾**:願意對另一人負責,並努力維持和增進這段關係。
5. **包容和支持**:在困難和挑戰面前支持對方,並願意為對方的幸福而努力。

心理學家羅伯特·斯坦伯格(Robert Sternberg)提出了著名的「愛的三角理論」,認為愛情由親密、激情和承諾三個成分組成,不同成分的組合可以產生不同類型的愛情。

愛情在不同的文化和時代背景下也可能有不同的表現和價值觀。例如,在一些文化中,愛情可能更多地與家庭安排和社會義務相關,而在其他文化中,則更強調個人的情感體驗和自由選擇。

最後,每個人的愛情體驗都是獨特的,無論是快樂與幸福,還是挑戰與困難,都是愛情的一部分。

這時再去查看 Billing 發現餘額仍是 9.99 美元, 咦, 是新模型比較省錢嗎?

改用 gpt-4o-mini 模型問問 : 

>>> chat_completion=client.chat.completions.create(
    messages=[
        {"role": "user",
         "content": "請問愛情是甚麼?",
        }],
    model="gpt-4o-mini",
    ) 
>>> print(chat_completion.choices[0].message.content)    
愛情是一種複雜的情感,它通常涉及深厚的情感連結、親密感和對另一個人的強烈關懷。愛情可以表現為浪漫的吸引、親密的友誼、無條件的支持和理解。它在不同的文化和個人之間可能會有不同的定義和表現方式。

愛情往往伴隨著一些特徵,比如:

1. **親密感**:希望與對方分享生活中的點滴,有一種心靈上的契合。
2. **依戀**:對對方有持續的情感依賴,渴望對方的陪伴。
3. **吸引力**:對對方的外貌、個性或其他特質有強烈的吸引力。
4. **承諾**:希望在長期的基礎上建立關係,願意為彼此付出和努力。

愛情也可以是短暫的或持久的,它可能會隨著時間的推移而變化。無論是浪漫愛情、友愛還是親情,愛情都是人類關係中不可或缺的一部分,它能夠帶來幸福與滿足,也可能帶來挑戰與痛苦。

再去查看 Billing 餘額仍是 9.99 美元, 我猜可能是顯示問題, 它只到小數第二位, 所以第一次會扣 0.01 讓你有感吧? 關於各模型的費用定價參考 :


目前常用的最新穩定版本價格如下 : 
  • gpt-4o : $5.00 / 1M input tokens, $15.00 / 1M output tokens
  • gpt-4o-mini : $0.150 / 1M input tokens, $0.600 / 1M output tokens
  • gpt-o1-mini : $3.00 / 1M input tokens, $12.00 / 1M output tokens
可見最便宜的應該是 gpt-4o-mini 模型了. 

沒有留言 :