42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
import sys
|
|
import os
|
|
from pathlib import Path
|
|
from dotenv import load_dotenv
|
|
load_dotenv(Path('../.env'))
|
|
|
|
from loguru import logger
|
|
logger.remove()
|
|
logger.add(sys.stdout,
|
|
colorize=True,
|
|
format="<level>{level}</level>|<green>{file}:{line}:{function}</green>| {message}"
|
|
)
|
|
|
|
from ..gpt_providers.openai_chat_completion import openai_chatgpt
|
|
from ..gpt_providers.gemini_pro_text import gemini_text_response
|
|
|
|
|
|
def generate_blog_description(blog_content):
|
|
"""
|
|
Prompt designed to give SEO optimized blog descripton
|
|
"""
|
|
gpt_providers = os.environ["GPT_PROVIDER"]
|
|
logger.info("Generating Blog Meta Description for the given blog.")
|
|
prompt = f"""As an expert SEO and blog writer, Compose a compelling meta description for the given blog content,
|
|
adhering to SEO best practices. Keep it between 150-160 characters.
|
|
Provide a glimpse of the content's value to entice readers.
|
|
Respond with only one of your best effort and do not include your explanations.
|
|
Blog Content: '{blog_content}'"""
|
|
|
|
if 'google' in gpt_providers.lower():
|
|
try:
|
|
response = gemini_text_response(prompt)
|
|
return response
|
|
except Exception as err:
|
|
logger.error("Failed to get response from gemini.")
|
|
elif 'openai' in gpt_providers.lower():
|
|
try:
|
|
response = openai_chatgpt(prompt)
|
|
return response
|
|
except Exception as err:
|
|
SystemError(f"Error in generating blog summary: {err}")
|