Python3 简单调用ChatGpt Api
import openai
import datetime
import random
import urllib
from PIL import Image
def DownLoadImage(url):
print(url)
try:
name = str(round(datetime.datetime.now().timestamp() +
random.randint(1, 99))) + ".jpg"
urllib.request.urlretrieve(url, name)
return {"code": 200, "filename": name}
except:
return {"code": 201, "msg": "下载失败"}
class ChatGpt:
# openAi配置参数
# 模型名称
model = "text-davinci-003"
# 控制结果随机性,0.0表示结果固定,随机性大可以设置为0.9
temperature = 0.8
# 最大返回字数(包括问题和答案),通常汉字占两个token。假设设置成100,如果prompt问题中有40个汉字,那么返回结果中最多包括10个汉字。
max_tokens = 1024
# 控制ChatGPT生成的话的多样性
top_p = 1.0
# 频率惩罚介于-2.0和2.0之间,它影响模型如何根据文本中词汇(token)的现有频率惩罚新词汇(token)
frequency_penalty = 0.5
# 存在惩罚介于-2.0和2.0之间,它影响模型如何根据到目前为止是否出现在文本中来惩罚新token。
presence_penalty = 0.0
openai.organization = "org-CFk*********sasyBjhqj"
openai.api_key = "sk-A0OlOGuz3g**************FJSjdmaga0evJVbqZCyiM4"
def getText(self, text):
try:
response = openai.Completion.create(
model=self.model,
prompt=str(text).strip(),
temperature=self.temperature,
max_tokens=self.max_tokens,
top_p=self.top_p,
frequency_penalty=self.frequency_penalty,
presence_penalty=self.presence_penalty
)
response = response['choices'][0]["text"]
except Exception as e:
response = e
print(response.strip())
return response.strip()
def getImage(self, text, num=1, size="1024x1024"):
response = openai.Image.create(
prompt=str(text).strip(),
n=num,
size=size
)
image_url = response['data']
for i in image_url:
data = DownLoadImage(i["url"])
if data["code"] == 200:
img = Image.open(data['filename'])
img.show()
if __name__ == "__main__":
gpt = ChatGpt()
# 生成图片 (第一个参数为文本,第二个参数为生成几张图片,第三个参数为分辨率256x256 512x512 1024x1024)
# gpt.getImage("太极图", 1, "1024x1024")
# 生成文字 (传入文字内容就行了)
# gpt.getText("你好")
评论 (0)