key_word_Fast_API / services /analyzer.py
ihtesham0345's picture
fix: Improve prompts to return JSON object, add error for list response
5b10e71
Raw
History Blame Contribute Delete
1.31 kB
from services.utils import run_analysis
SYSTEM_PROMPT = """You are an SEO strategist. Return ONLY a valid JSON object (not an array) with keywords, hashtags, content titles, strategy tips, and target audience."""
DEFAULTS = {
"core_keywords": [{"keyword": "topic guide", "search_volume": "Medium", "competition": "Medium", "relevance": 85}],
"related_phrases": ["related topic ideas"],
"viral_hashtags": [{"tag": "#Topic", "post_count": "100K+"}],
"content_titles": ["Complete Guide", "Top Tips", "Beginners Guide"],
"strategy_tips": ["Focus on user intent.", "Optimize for long-tail keywords.", "Improve meta tags."],
"target_audience": "General Audience interested in this topic."
}
def analyze_seo_content(content: str) -> dict:
messages = [
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": f'Topic: "{content[:1000]}"\nReturn a JSON object (not an array) with these keys:\n- core_keywords (5 items, each with "keyword" + "search_volume" + "competition" + "relevance")\n- related_phrases (3 items)\n- viral_hashtags (3 items, each with "tag" + "post_count")\n- content_titles (3 items)\n- strategy_tips (3 items)\n- target_audience (string)'}
]
return run_analysis(messages, defaults=DEFAULTS, temperature=0.3, max_new_tokens=800)