### 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)