You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

57 lines
2.5 KiB

from foodie_config import OPENAI_API_KEY, LIGHT_TASK_MODEL
from openai import OpenAI
import logging
import random
from urllib.parse import quote
import urllib.parse
client = OpenAI(api_key=OPENAI_API_KEY)
def get_dynamic_hook(article_title):
try:
response = client.chat.completions.create(
model=LIGHT_TASK_MODEL,
messages=[
{"role": "system", "content": (
"Generate a short, catchy hook (under 100 characters) for a tweet based on this article title about food topics. "
"Make it bold and quirky with Upworthy/Buzzfeed flair (e.g., 'This food twist is wild!'), avoiding clichés like 'game-changer'. "
"Do not include emojis in the hook. "
"Return only the hook text."
)},
{"role": "user", "content": article_title}
],
max_tokens=30
)
hook = response.choices[0].message.content.strip().replace('**', '')
logging.info(f"Generated dynamic hook: {hook}")
return hook
except Exception as e:
logging.error(f"Dynamic hook generation failed: {e}")
return "This food scoop will blow your mind!"
def get_viral_share_prompt(article_title, content):
try:
prompt = (
"Generate a short, viral share prompt (under 40 characters) to encourage sharing a food-related article on social media. "
"Make it bold, quirky, and engaging with a Buzzfeed/Upworthy flair (e.g., 'Obsessed? Share Now'). "
"Avoid clichés like 'game-changer' and words like 'elevate'. "
"Do not include emojis, the platform name (e.g., Twitter, Facebook), or any HTML. "
"Do not wrap the prompt in quotation marks. "
"Return only the prompt text."
)
response = client.chat.completions.create(
model=LIGHT_TASK_MODEL,
messages=[
{"role": "system", "content": prompt},
{"role": "user", "content": f"Title: {article_title}\nContent: {content}"}
],
max_tokens=20,
temperature=0.9
)
share_prompt = response.choices[0].message.content.strip()
share_prompt = share_prompt.strip('"\'')
logging.info(f"Generated viral share prompt: {share_prompt}")
return share_prompt
except Exception as e:
logging.error(f"Viral share prompt generation failed: {e}")
return "Love This? Share It"