AamirAli123's picture
Upload project files
e31d3f6
raw
history blame
2.29 kB
"""
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