@ -361,7 +361,7 @@ def smart_image_and_filter(title, summary):
" Analyze this article title and summary. Extract key entities (brands, locations, cuisines, or topics) "
" for an image search about food industry trends or viral content. Prioritize specific multi-word terms if present, "
" otherwise focus on the main theme. Also identify the main topic of the article (e.g., a specific food item or cuisine). "
" Return ' SKIP ' if the article is about home appliances, recipes, promotions, or contains ' homemade ' , else ' KEEP ' . "
" Return ' SKIP ' if the article is about home appliances, recipes, promotions, contains ' homemade ' , or includes recipe-r elated term s lik e ' cook ' , ' bake ' , or ' ingredient ' . "
" Return as JSON with double quotes for all property names and string values (e.g., "
" { \" image_query \" : \" fast food trends \" , \" relevance \" : [ \" fast food \" , \" dining \" , \" culture \" ], \" main_topic \" : \" fast food \" , \" action \" : \" KEEP \" }). "
)
@ -385,19 +385,46 @@ def smart_image_and_filter(title, summary):
except json . JSONDecodeError as e :
logging . warning ( f " JSON parsing failed: { e } , raw: ' { fixed_result } ' . Using fallback. " )
main_topic = extract_main_topic ( title . lower ( ) + " " + summary . lower ( ) )
return main_topic , [ main_topic , " food " ] , main_topic , False
skip_flag = (
" homemade " in title . lower ( ) or
" homemade " in summary . lower ( ) or
any ( kw in title . lower ( ) or kw in summary . lower ( ) for kw in RECIPE_KEYWORDS )
)
logging . info ( f " Fallback for ' { title } ' : Skip= { skip_flag } , Reasons: "
f " homemade_in_title= { ' homemade ' in title . lower ( ) } , "
f " homemade_in_summary= { ' homemade ' in summary . lower ( ) } , "
f " recipe_keywords= { any ( kw in title . lower ( ) or kw in summary . lower ( ) for kw in RECIPE_KEYWORDS ) } " )
return main_topic , [ main_topic , " food " ] , main_topic , skip_flag
if not isinstance ( result , dict ) or " image_query " not in result or " relevance " not in result or " action " not in result :
logging . warning ( f " Invalid GPT response format: { result } , using fallback " )
main_topic = extract_main_topic ( title . lower ( ) + " " + summary . lower ( ) )
return main_topic , [ main_topic , " food " ] , main_topic , False
skip_flag = (
" homemade " in title . lower ( ) or
" homemade " in summary . lower ( ) or
any ( kw in title . lower ( ) or kw in summary . lower ( ) for kw in RECIPE_KEYWORDS )
)
logging . info ( f " Fallback for ' { title } ' : Skip= { skip_flag } , Reasons: "
f " homemade_in_title= { ' homemade ' in title . lower ( ) } , "
f " homemade_in_summary= { ' homemade ' in summary . lower ( ) } , "
f " recipe_keywords= { any ( kw in title . lower ( ) or kw in summary . lower ( ) for kw in RECIPE_KEYWORDS ) } " )
return main_topic , [ main_topic , " food " ] , main_topic , skip_flag
image_query = result [ " image_query " ]
relevance_keywords = result [ " relevance " ]
main_topic = result . get ( " main_topic " , extract_main_topic ( title . lower ( ) + " " + summary . lower ( ) ) )
skip_flag = result [ " action " ] == " SKIP " or " homemade " in title . lower ( ) or " homemade " in summary . lower ( )
skip_flag = (
result [ " action " ] == " SKIP " or
" homemade " in title . lower ( ) or
" homemade " in summary . lower ( ) or
any ( kw in title . lower ( ) or kw in summary . lower ( ) for kw in RECIPE_KEYWORDS )
)
logging . info ( f " Smart image query: { image_query } , Relevance: { relevance_keywords } , Main Topic: { main_topic } , Skip: { skip_flag } " )
logging . info ( f " Smart image query: { image_query } , Relevance: { relevance_keywords } , Main Topic: { main_topic } , Skip: { skip_flag } , "
f " Reasons: action= { result [ ' action ' ] } , "
f " homemade_in_title= { ' homemade ' in title . lower ( ) } , "
f " homemade_in_summary= { ' homemade ' in summary . lower ( ) } , "
f " recipe_keywords= { any ( kw in title . lower ( ) or kw in summary . lower ( ) for kw in RECIPE_KEYWORDS ) } " )
specific_single_words = [ " kimchi " , " sushi " , " pizza " , " taco " , " burger " , " chipotle " , " starbucks " , " mcdonalds " ]
if not image_query :
@ -412,7 +439,16 @@ def smart_image_and_filter(title, summary):
except Exception as e :
logging . error ( f " Smart image/filter failed: { e } , using fallback " )
main_topic = extract_main_topic ( title . lower ( ) + " " + summary . lower ( ) )
return main_topic , [ main_topic , " food " ] , main_topic , False
skip_flag = (
" homemade " in title . lower ( ) or
" homemade " in summary . lower ( ) or
any ( kw in title . lower ( ) or kw in summary . lower ( ) for kw in RECIPE_KEYWORDS )
)
logging . info ( f " Fallback for ' { title } ' : Skip= { skip_flag } , Reasons: "
f " homemade_in_title= { ' homemade ' in title . lower ( ) } , "
f " homemade_in_summary= { ' homemade ' in summary . lower ( ) } , "
f " recipe_keywords= { any ( kw in title . lower ( ) or kw in summary . lower ( ) for kw in RECIPE_KEYWORDS ) } " )
return main_topic , [ main_topic , " food " ] , main_topic , skip_flag
def extract_main_topic ( text ) :
# Common food-related keywords (expand as needed)