Files
ALwrity/lib/gpt_providers/openai_gpt_provider.py

58 lines
2.5 KiB
Python

########################################################
#
# openai chatgpt integration for blog generation.
# Choosing a model from openai and fine tuning its various paramters.
#
########################################################
from tqdm import tqdm, trange
import openai
import time # I wish
def openai_chatgpt(prompt, model="text-davinci-003", temperature=0.5, max_tokens=2048, top_p=0.9, n=10):
try:
# Error in generating topic content: Rate limit reached for default-global-with-image-limits
# in free account on requests per min. Limit: 3 / min. Please try again in 20s.
for i in trange(21):
time.sleep(1)
# using OpenAI's Completion module that helps execute
# any tasks involving text
response = openai.Completion.create(
# model name used here is text-davinci-003
# there are many other models available under the
# umbrella of GPT-3
model="text-davinci-003",
# passing the user input
prompt=prompt,
# generated output can have "max_tokens" number of tokens
max_tokens=max_tokens,
# number of outputs generated in one call
n=n,
top_p=top_p,
#frequency_penalty=0,
#presence_penalty=0
)
return(response)
except openai.error.Timeout as e:
#Handle timeout error, e.g. retry or log
SystemError(f"OpenAI API request timed out: {e}")
except openai.error.APIError as e:
#Handle API error, e.g. retry or log
SystemError(f"OpenAI API returned an API Error: {e}")
except openai.error.APIConnectionError as e:
#Handle connection error, e.g. check network or log
SystemError(f"OpenAI API request failed to connect: {e}")
except openai.error.InvalidRequestError as e:
#Handle invalid request error, e.g. validate parameters or log
SystemError(f"OpenAI API request was invalid: {e}")
except openai.error.AuthenticationError as e:
#Handle authentication error, e.g. check credentials or log
SystemError(f"OpenAI API request was not authorized: {e}")
except openai.error.PermissionError as e:
#Handle permission error, e.g. check scope or log
SystemError(f"OpenAI API request was not permitted: {e}")
except openai.error.RateLimitError as e:
#Handle rate limit error, e.g. wait or log
SystemError(f"OpenAI API request exceeded rate limit: {e}")