### Python 呼叫 openai api 簡單入門課 - 給高中生 - 非常基本的小方法而已 --- 總之先安裝套件吧~ !pip install --upgrade openai ### 關於 pip - python 軟體包管理系統 - 很多 python 發行版都已經預先幫你裝好了 #### 安裝: pip install 套件 #### 解除安裝: pip uninstall 套件 #### 更多功能請參考: pip help --- #### 第二步:開始使用你的 api key 注意:這個方法不太安全 但是很簡單快速,屬於比較暴力的方法 (今天上課沒時間講比較安全ㄉ方法><) ##### 測試 ##### import os import openai from openai import OpenAI client = OpenAI( #dangerous! bad but easy #key belongs to IISR api_key ="你的鑰匙", ) completion = client.chat.completions.create( messages=[ { "role": "user", "content": "Say this is a test" } ], model="gpt-3.5-turbo", ) print(completion.choices[0]) print(completion.choices[0].message) #### 範例 TXT 內容:情緒test1.txt import json import random datalist = [] with open("情緒test1.txt", 'r', encoding='utf-8') as data: for line in data: print(line) datalist.append(line) txt 內容 我討厭你! 你很煩ㄝ! 開心死了 好爽喔哈哈 冰淇淋,我最喜歡 哭了,真的好討厭 哈哈哈笑死 沮喪極了,我認為這事情天理不容 嗚嗚嗚,都沒人幫我 你怎樣,想打架嗎 幸福啦!!! 今天要上課 前測試 for i, line in enumerate(datalist): print("目前進行到第" + str(i) + "筆") print(line) 開始文字測試 reslist = [] length = 0 client = OpenAI( #dangerous! bad but easy #key belongs to IISR api_key ="你的鑰匙", ) for i, line in enumerate(datalist): completion = client.chat.completions.create( messages=[ { "role": "user", "content": "請幫我判斷以下語句是否具有情緒:喜、怒、哀、樂。" + line } ], model="gpt-3.5-turbo", ) res = completion.choices[0].message.content reslist.append(res) print("目前進行到第" + str(i) + "筆") 看看結果 for i, line in enumerate(reslist): print("第 {} 句:".format(i+1)) print(line) 存檔 with open('output.txt', 'w', encoding='utf-8') as file: for item in reslist: file.write(item + '\n') ### 圖像 from openai import OpenAI client = OpenAI(api_key ="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",) response = client.images.generate( model="dall-e-3", prompt="a white cat", size="1024x1024", quality="standard", n=1, ) image_url = response.data[0].url 看看圖片狀態 (會是限時的 url,記得點進去看) print(image_url) #### 圖像和情緒test1.txt 結合 理論上會有 error,因為 dall e 會擋住一些敏感字詞,我們的 txt 好像有被判定敏感字詞的部分 urllist = [] length = 0 client = OpenAI( #dangerous! bad but easy #key belongs to IISR api_key ="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", ) response = client.images.generate( model="dall-e-3", prompt="a white siamese cat", size="1024x1024", quality="standard", n=1, ) for i, line in enumerate(datalist): response = client.images.generate( model="dall-e-3", prompt="對以下語句畫出對應漫畫" + line, size="1024x1024", quality="standard", n=1, ) res = response.data[0].url urllist.append(res) print("目前進行到第" + str(i) + "筆") if i > 4: break 就算上面跑到一半跳 error 也可以看結果 for line in urllist: print(line)