# 20240711 OpenAI ## OpenAI * 模型 1. 語音 -> 文字 2. 文字 -> 語音 3. 聊天 4. 文生圖 5. 圖形辨識 * 學習目的 1. 調教 : 可以餵自己資料做訓練 2. 自動化 : 可做個模型間溝通 * 註冊 > 儲值 ![image](https://hackmd.io/_uploads/HyVmxeawC.png) > 儲值金額 ![image](https://hackmd.io/_uploads/SyiWWg6D0.png) > 關閉自動儲值 與 每月最大上限值 ![image](https://hackmd.io/_uploads/BktY-l6P0.png) * 收費 : input 與 output 都要收費 > 有價目表可參考 > 有計算機可計算 : 大約文字數 /3 *4 * 建立金鑰 : Dashboard -> API Keys > 新增金鑰 ![image](https://hackmd.io/_uploads/BystdeTPA.png) > 取金鑰名字,底下專案可以先不做選擇 ![image](https://hackmd.io/_uploads/HJUhueav0.png) > api Key 需要保管好,關閉後無法重新複製 ![image](https://hackmd.io/_uploads/S1EJYx6PC.png) * 初始化 : 有三種方式 * 打API ```bash= #使用環境變數 curl https://api.openai.com/v1/models -H "Authorization: Bearer %OPENAI_API_KEY%" ``` ```bash= #直接給key curl https://api.openai.com/v1/models -H "Authorization: Bearer xxxxxxxx" ``` * python ```python= #使用環境變數 from openai import OpenAI client = OpenAI() ``` ```python= #直接給 from openai import OpenAI key='xxxxxxxxx' client = OpenAI(api_key=key) ``` > 設定電腦環境變數 ![image](https://hackmd.io/_uploads/Hy16Cl6PA.png) * 角色(role) 1. system : 角色扮演、任務指令、背景資料等提示放在系統訊息裡 2. user : 使用者的問題或發表的言論 3. asistant: 機器人的回應 * 第一支範例程式 ```python= from openai import OpenAI #引用套件 ### 初始化 client = OpenAI() #建立open物件 ### 以下為標準格式 completion = client.chat.completions.create( model="gpt-3.5-turbo", ### 使用模組 messages=[ ### 標準格式 角色 + 內容 (system可多行,或寫在一起) {"role": "system", "content": "請以繁體中文回覆"}, {"role": "system", "content": "請以兇狠的口氣回答"}, {"role": "user", "content": "Hello!"} ] ) ### content 是單純回應內容 print(f'ChatGPT : {completion.choices[0].message.content}') ``` > 範例 > https://platform.openai.com/docs/examples > ![image](https://hackmd.io/_uploads/SkM3F-pvR.png) > 價目表 (包含模型名稱) > https://openai.com/api/pricing/