TextGen / article_generation.py
abdullah10's picture
Upload 35 files
8bc7dc5
raw
history blame
3.82 kB
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
def article_generator(idea, outline, section, llm, tone_of_voice):
'''
Description:
This function generates paragraphs for an article based on provided inputs such as the main idea, outline, specific section, Long Language Model (LLM), and desired tone of voice.
It uses a language model to create content either for a catchy introduction paragraph or to expand the article based on an existing outline.
Parameters:
idea (str) -> Required: The main idea or topic of the article.
outline (str) -> Required: The existing outline (if any) that has been covered in the article.
section (str) -> Required: The specific section or point that needs content creation or elaboration.
llm -> Required: The Long Language Model (LLM) used for generating article content.
tone_of_voice (str) -> Required: The intended tone of the article (e.g., professional, conversational, persuasive).
Return Value:
article (str): The generated article paragraph based on the provided inputs.
'''
if len(outline) == 0:
article_prompt = f"Generate Catchy Introduction paragraph for my article on {idea} using the following main point: {section}\nThe tone should be {tone_of_voice}."
else:
article_prompt = f"Generate well-organized paragraph for my article on {idea}. I have already covered: {outline} in the outline. I need help with the following main point: {section}. Please ensure the paragraphs are connected logically and provide a smooth transition between main topics. The tone should be {tone_of_voice}."
article_promptTemp = PromptTemplate(
input_variables=["text_input"],
template="You are a Professional content creator and article Writer:\n\n{text_input}\n\nParagraph:")
print(article_prompt)
article_extraction_chain = LLMChain(llm=llm, prompt=article_promptTemp)
article = article_extraction_chain.run(article_prompt)
return article
def full_article(idea, outline_list, tone_of_voice, llm):
'''
Description:
This function generates a full article by iteratively calling the article_generator function for each section in the provided outline list. It accumulates paragraphs generated for each section to construct a complete article based on the specified idea, outline, tone of voice, and Long Language Model (LLM).
Parameters:
idea (str) -> Required: The main idea or topic for the article.
outline_list (list) -> Required: A list containing sections or subsections for the article's structure.
tone_of_voice (str) -> Required: The desired tone of the article (e.g., professional, conversational, persuasive).
llm -> Required: The Long Language Model (LLM) used for generating article content.
Return Value:
article (list): A list of paragraphs representing the article content for each section in the provided outline.
'''
article = []
outline = []
try:
for section in outline_list:
para = article_generator(idea, ' '.join(outline), section, llm, tone_of_voice)
outline.append(section)
article.append(para)
except:
pass
return article
def rephrase(par, llm):
paraCheck_prompt = f"Rephrase the following paragraph and make it more unique and excited: {par}"
paraCheck_promptTemp = PromptTemplate(
input_variables=["text_input"],
template="You are a content creator.\n{text_input}")
paraCheck_extraction_chain = LLMChain(llm=llm, prompt=paraCheck_promptTemp)
rephrased_paragraph = paraCheck_extraction_chain.run(paraCheck_prompt)
return rephrased_paragraph