AamirAli123's picture
Upload project files
e31d3f6
"""
noun generator module will take the string and return the nouns list in string.
"""
import os
import openai
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
openai.api_key = os.getenv('OPENAI_API_KEY')
def make_prompt()-> str:
"""
make_prompt take code as input and retirn the prompt with the given
pargraph.
Parameters
----------
paragraph: str
string text to find the nouns.
action: str
type of action.
Return
------
prompt: str
prompt to find the nouns from given paragraph.
"""
file_path = "./prompt/blog_or_essay_prompt.txt"
with open(file_path, "r", encoding = "utf8") as file:
prompt = file.read()
return prompt
def generate_blog(topic = " ",
content_type = " ", link = " ", tone = " ",
length = 500):
"""
code_debug method take topic type link tone length as input and return the output
according to the prompt.
Parameters
----------
topic: str
topic of essay or blog.
type: str
essay or blog.
link: str
link of user sources.
tone: str
essay or blog tone.
Return
------
return generated blog or essay.
"""
full_text = ""
length = str(length)
prompt = make_prompt()
prompt = prompt.format(TOPIC = topic, WORDS = length,
TYPE = content_type,
LINKS = link
)
tone_prompt = f"tone should be {tone}"
messages=[
{
"role": "system",
"content": prompt
},
{
"role": "user",
"content": tone_prompt
}
]
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages = messages,
temperature = 1,
top_p = 1,
frequency_penalty = 0,
presence_penalty = 0,
stream = True,
stop = None
)
try:
for chunk in response:
chunk_message = chunk['choices'][0]['delta'].get("content")
full_text = full_text + chunk_message
yield full_text
except Exception as error:
print("OPenAI reponse (streaming) error" + str(error))
return 503