sudip2003 commited on
Commit
7008cc0
·
verified ·
1 Parent(s): de969bb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -20
app.py CHANGED
@@ -17,8 +17,32 @@ llm = ChatGroq(
17
 
18
  def niche_detection(text):
19
  system_prompt = """
20
- You are a social media niche expert.
21
- Analyze the following Instagram post captions and hashtags to determine the niches this content belongs to.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
 
23
  User text : {text}
24
 
@@ -32,23 +56,29 @@ def niche_detection(text):
32
  prompt = ChatPromptTemplate.from_messages([("system", system_prompt)])
33
  chain = prompt | llm
34
  output = chain.invoke({"text": text})
 
 
 
 
35
 
36
- try:
37
- return output.content.split('"niche": "')[1].split('"')[0]
38
- except Exception:
39
- return "Could not determine niche"
40
 
41
  def content_styles(text):
42
  system_prompt = """
43
- You are an expert in analyzing social media content styles. Review the following Instagram captions and hashtags and classify the dominant content style used in each post. Choose from the following styles:
44
- - Educational
45
- - Motivational
46
- - Meme/Relatable
47
- - Personal Story
48
- - Tips/Hacks
49
- - Promotional
50
- - Inspirational
51
- - Opinion/Rant
 
 
 
 
 
 
52
 
53
  User text : {text}
54
 
@@ -60,11 +90,8 @@ def content_styles(text):
60
  prompt = ChatPromptTemplate.from_messages([("system", system_prompt)])
61
  chain = prompt | llm
62
  output = chain.invoke({"text": text})
 
63
 
64
- try:
65
- return output.content.split('"content_styles": ')[1].split(']')[0].strip()
66
- except Exception:
67
- return "Could not determine content style"
68
 
69
  # ---------------------------
70
  # Gradio Interface
@@ -75,6 +102,7 @@ def analyze_post(text):
75
  style = content_styles(text)
76
  return niche, style
77
 
 
78
  iface = gr.Interface(
79
  fn=analyze_post,
80
  inputs=gr.Textbox(lines=5, label="Instagram Post Text"),
@@ -82,7 +110,6 @@ iface = gr.Interface(
82
  gr.Textbox(label="Detected Niche"),
83
  gr.Textbox(label="Detected Content Style")
84
  ],
85
- title="Instagram Post Analyzer",
86
  description="Enter an Instagram post (caption + hashtags) to detect its niche and content style."
87
  )
88
 
 
17
 
18
  def niche_detection(text):
19
  system_prompt = """
20
+ You are a highly skilled social media strategist and niche classification expert. Your task is to analyze the following Instagram caption and hashtags to identify the **main niche** the content belongs to.
21
+
22
+ Examples of possible niches include:
23
+ - Fitness
24
+ - Nutrition
25
+ - Mental Health
26
+ - Personal Finance
27
+ - Entrepreneurship
28
+ - Fashion
29
+ - Tech/Gadgets
30
+ - Parenting
31
+ - Travel
32
+ - Beauty/Skincare
33
+ - Relationships
34
+ - Digital Marketing
35
+ - Motivation
36
+ - Self-improvement
37
+ - Gaming
38
+ - Food/Cooking
39
+ - Home Decor
40
+ - Photography
41
+ - Music
42
+ - Art/Design
43
+
44
+ Analyze the content carefully and respond with ONLY the niche name (e.g., "Fitness" or "Travel").
45
+ ** Don't retunr - " Could not determine niche "
46
 
47
  User text : {text}
48
 
 
56
  prompt = ChatPromptTemplate.from_messages([("system", system_prompt)])
57
  chain = prompt | llm
58
  output = chain.invoke({"text": text})
59
+ return output.content
60
+
61
+
62
+
63
 
 
 
 
 
64
 
65
  def content_styles(text):
66
  system_prompt = """
67
+ You are an expert in analyzing social media content styles. Review the following Instagram caption and hashtags and classify the dominant content style.
68
+
69
+ Choose from these content styles:
70
+ - Educational (teaching something new, how-to content)
71
+ - Motivational (encouraging action, inspiring change)
72
+ - Meme/Relatable (funny, relatable content)
73
+ - Personal Story (sharing personal experiences)
74
+ - Tips/Hacks (quick tips, life hacks)
75
+ - Promotional (selling products/services)
76
+ - Inspirational (uplifting quotes, positive messages)
77
+ - Opinion/Rant (personal opinions, controversial takes)
78
+ - Behind-the-Scenes (showing process, daily life)
79
+ - Question/Poll (asking for engagement)
80
+
81
+ Analyze the content and respond with ONLY the content style name (e.g., "Educational" or "Motivational").
82
 
83
  User text : {text}
84
 
 
90
  prompt = ChatPromptTemplate.from_messages([("system", system_prompt)])
91
  chain = prompt | llm
92
  output = chain.invoke({"text": text})
93
+ return output.content
94
 
 
 
 
 
95
 
96
  # ---------------------------
97
  # Gradio Interface
 
102
  style = content_styles(text)
103
  return niche, style
104
 
105
+
106
  iface = gr.Interface(
107
  fn=analyze_post,
108
  inputs=gr.Textbox(lines=5, label="Instagram Post Text"),
 
110
  gr.Textbox(label="Detected Niche"),
111
  gr.Textbox(label="Detected Content Style")
112
  ],
 
113
  description="Enter an Instagram post (caption + hashtags) to detect its niche and content style."
114
  )
115