subashpoudel commited on
Commit
46178b9
·
1 Parent(s): 11bd168

Next commit

Browse files
.DS_Store CHANGED
Binary files a/.DS_Store and b/.DS_Store differ
 
api/__pycache__/stored_data.cpython-313.pyc CHANGED
Binary files a/api/__pycache__/stored_data.cpython-313.pyc and b/api/__pycache__/stored_data.cpython-313.pyc differ
 
api/stored_data.py CHANGED
@@ -1,13 +1,25 @@
1
  stored_data = {}
 
 
 
 
 
 
 
 
 
2
  stored_data['business_details'] = {
3
- "business_type": "skin care products",
4
  "platform": "Instagram, TikTok",
5
- "target_audience": "women and men (ages 18–50) who are conscious about their skin health and beauty",
6
- "business_goals": "to build a trusted skin care brand, increase online sales, and educate customers on proper skin care routines",
7
- "offerings": "natural and dermatologically-tested products, personalized skin care solutions, beauty tips, and skin care routines",
8
- "Challenges_faced": "building trust in a crowded skin care market, showcasing product effectiveness, and educating customers about skin types and product usage"
 
 
9
  }
10
 
 
11
  stored_data['human_ideation_interactions'] = []
12
  stored_data['brainstorming_response']={}
13
  stored_data['context_analysis_interactions']= []
 
1
  stored_data = {}
2
+ # stored_data['business_details'] = {
3
+ # "business_type": "skin care products",
4
+ # "platform": "Instagram, TikTok",
5
+ # "target_audience": "women and men (ages 18–50) who are conscious about their skin health and beauty",
6
+ # "business_goals": "to build a trusted skin care brand, increase online sales, and grab the attraction of audience by making products more catchy.",
7
+ # "offerings": "dermatologically-tested products, personalized skin care solutions, beauty tips, and skin care routines",
8
+ # "Challenges_faced": "building trust in a crowded skin care market, showcasing product effectiveness, facing difficulties to create catchy marketing videos."
9
+ # }
10
+
11
  stored_data['business_details'] = {
12
+ "business_type": "trekking clothes, shoes and equipment selling brand",
13
  "platform": "Instagram, TikTok",
14
+ "target_audience": "adventure lovers, trekkers, hikers, and travelers (ages 18–45) who are passionate about outdoor activities.",
15
+ "business_goals": "to build a trusted adventure gear brand, increase product sales, and attract attention with visually striking and catchy video contents.",
16
+ "offerings": "durable trekking clothes, high-quality shoes, backpacks, tents, and essential trekking equipment",
17
+ "Challenges_faced": "standing out in a crowded outdoor gear market, proving durability and reliability of products, and creating engaging, catchy marketing videos",
18
+ "device_used": "only phone. (Iphone 11)",
19
+ "additional_details":"My budget is not so high. I want creative and feasible ideas to be captured by just mobile phone only."
20
  }
21
 
22
+
23
  stored_data['human_ideation_interactions'] = []
24
  stored_data['brainstorming_response']={}
25
  stored_data['context_analysis_interactions']= []
logs/access.log CHANGED
@@ -584,3 +584,55 @@
584
  2025-08-27 11:05:29,333 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
585
  2025-08-27 11:28:14,943 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
586
  2025-08-27 11:29:21,723 | INFO | access_logger | api/main.py:21 | Response status: 200
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
584
  2025-08-27 11:05:29,333 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
585
  2025-08-27 11:28:14,943 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
586
  2025-08-27 11:29:21,723 | INFO | access_logger | api/main.py:21 | Response status: 200
587
+ 2025-08-28 22:14:29,957 | INFO | access_logger | api/main.py:19 | Request: GET http://127.0.0.1:8000/docs
588
+ 2025-08-28 22:14:29,958 | INFO | access_logger | api/main.py:21 | Response status: 200
589
+ 2025-08-28 22:14:30,386 | INFO | access_logger | api/main.py:19 | Request: GET http://127.0.0.1:8000/openapi.json
590
+ 2025-08-28 22:14:30,388 | INFO | access_logger | api/main.py:21 | Response status: 200
591
+ 2025-08-28 22:14:37,507 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
592
+ 2025-08-28 22:15:38,653 | INFO | access_logger | api/main.py:21 | Response status: 200
593
+ 2025-08-28 22:17:01,706 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
594
+ 2025-08-28 22:17:54,664 | INFO | access_logger | api/main.py:21 | Response status: 200
595
+ 2025-08-28 22:20:44,790 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
596
+ 2025-08-28 22:21:40,659 | INFO | access_logger | api/main.py:21 | Response status: 200
597
+ 2025-08-28 22:23:27,918 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
598
+ 2025-08-28 22:24:25,007 | INFO | access_logger | api/main.py:21 | Response status: 200
599
+ 2025-08-28 22:29:38,212 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
600
+ 2025-08-28 22:30:23,261 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
601
+ 2025-08-28 22:31:17,880 | INFO | access_logger | api/main.py:21 | Response status: 200
602
+ 2025-08-28 22:33:37,422 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
603
+ 2025-08-28 22:34:32,754 | INFO | access_logger | api/main.py:21 | Response status: 200
604
+ 2025-08-28 22:43:11,770 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
605
+ 2025-08-28 22:43:59,107 | INFO | access_logger | api/main.py:21 | Response status: 200
606
+ 2025-08-28 22:54:25,023 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
607
+ 2025-08-28 22:55:13,863 | INFO | access_logger | api/main.py:21 | Response status: 200
608
+ 2025-08-28 23:01:24,109 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
609
+ 2025-08-28 23:02:14,676 | INFO | access_logger | api/main.py:21 | Response status: 200
610
+ 2025-08-29 12:22:30,510 | INFO | access_logger | api/main.py:19 | Request: GET http://127.0.0.1:8000/
611
+ 2025-08-29 12:22:30,511 | INFO | access_logger | api/main.py:21 | Response status: 200
612
+ 2025-08-29 12:22:30,707 | INFO | access_logger | api/main.py:19 | Request: GET http://127.0.0.1:8000/favicon.ico
613
+ 2025-08-29 12:22:30,707 | INFO | access_logger | api/main.py:21 | Response status: 404
614
+ 2025-08-29 12:22:37,887 | INFO | access_logger | api/main.py:19 | Request: GET http://127.0.0.1:8000/docs
615
+ 2025-08-29 12:22:37,888 | INFO | access_logger | api/main.py:21 | Response status: 200
616
+ 2025-08-29 12:22:38,088 | INFO | access_logger | api/main.py:19 | Request: GET http://127.0.0.1:8000/openapi.json
617
+ 2025-08-29 12:22:38,091 | INFO | access_logger | api/main.py:21 | Response status: 200
618
+ 2025-08-29 12:22:47,155 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
619
+ 2025-08-29 12:24:10,813 | INFO | access_logger | api/main.py:21 | Response status: 200
620
+ 2025-08-31 11:32:23,299 | INFO | access_logger | api/main.py:19 | Request: GET http://127.0.0.1:8000/docs
621
+ 2025-08-31 11:32:23,300 | INFO | access_logger | api/main.py:21 | Response status: 200
622
+ 2025-08-31 11:32:23,365 | INFO | access_logger | api/main.py:19 | Request: GET http://127.0.0.1:8000/openapi.json
623
+ 2025-08-31 11:32:23,368 | INFO | access_logger | api/main.py:21 | Response status: 200
624
+ 2025-08-31 11:32:40,803 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
625
+ 2025-08-31 11:37:35,636 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
626
+ 2025-08-31 11:40:53,653 | INFO | access_logger | api/main.py:19 | Request: GET http://127.0.0.1:8000/docs
627
+ 2025-08-31 11:40:53,654 | INFO | access_logger | api/main.py:21 | Response status: 200
628
+ 2025-08-31 11:40:53,728 | INFO | access_logger | api/main.py:19 | Request: GET http://127.0.0.1:8000/openapi.json
629
+ 2025-08-31 11:40:53,730 | INFO | access_logger | api/main.py:21 | Response status: 200
630
+ 2025-08-31 11:40:59,325 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
631
+ 2025-08-31 11:51:09,004 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
632
+ 2025-08-31 11:53:34,963 | INFO | access_logger | api/main.py:21 | Response status: 200
633
+ 2025-08-31 12:40:32,614 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
634
+ 2025-08-31 12:41:20,910 | INFO | access_logger | api/main.py:21 | Response status: 200
635
+ 2025-08-31 12:47:22,413 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
636
+ 2025-08-31 12:48:10,238 | INFO | access_logger | api/main.py:21 | Response status: 200
637
+ 2025-08-31 12:53:56,732 | INFO | access_logger | api/main.py:19 | Request: POST http://127.0.0.1:8000/api/ideation
638
+ 2025-08-31 12:54:47,885 | INFO | access_logger | api/main.py:21 | Response status: 200
logs/app.log CHANGED
@@ -79,3 +79,17 @@
79
  2025-08-27 10:41:32,280 | INFO | app_logger | api/routers/ideation.py:28 | Executed the ideation pipeline.
80
  2025-08-27 11:04:05,117 | INFO | app_logger | api/routers/ideation.py:28 | Executed the ideation pipeline.
81
  2025-08-27 11:29:21,721 | INFO | app_logger | api/routers/ideation.py:28 | Executed the ideation pipeline.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
  2025-08-27 10:41:32,280 | INFO | app_logger | api/routers/ideation.py:28 | Executed the ideation pipeline.
80
  2025-08-27 11:04:05,117 | INFO | app_logger | api/routers/ideation.py:28 | Executed the ideation pipeline.
81
  2025-08-27 11:29:21,721 | INFO | app_logger | api/routers/ideation.py:28 | Executed the ideation pipeline.
82
+ 2025-08-28 22:15:38,651 | INFO | app_logger | api/routers/ideation.py:27 | Executed the ideation pipeline.
83
+ 2025-08-28 22:17:54,662 | INFO | app_logger | api/routers/ideation.py:27 | Executed the ideation pipeline.
84
+ 2025-08-28 22:21:40,658 | INFO | app_logger | api/routers/ideation.py:27 | Executed the ideation pipeline.
85
+ 2025-08-28 22:24:25,007 | INFO | app_logger | api/routers/ideation.py:27 | Executed the ideation pipeline.
86
+ 2025-08-28 22:31:17,879 | INFO | app_logger | api/routers/ideation.py:27 | Executed the ideation pipeline.
87
+ 2025-08-28 22:34:32,751 | INFO | app_logger | api/routers/ideation.py:27 | Executed the ideation pipeline.
88
+ 2025-08-28 22:43:59,106 | INFO | app_logger | api/routers/ideation.py:27 | Executed the ideation pipeline.
89
+ 2025-08-28 22:55:13,862 | INFO | app_logger | api/routers/ideation.py:27 | Executed the ideation pipeline.
90
+ 2025-08-28 23:02:14,674 | INFO | app_logger | api/routers/ideation.py:27 | Executed the ideation pipeline.
91
+ 2025-08-29 12:24:10,812 | INFO | app_logger | api/routers/ideation.py:27 | Executed the ideation pipeline.
92
+ 2025-08-31 11:53:34,960 | INFO | app_logger | api/routers/ideation.py:27 | Executed the ideation pipeline.
93
+ 2025-08-31 12:41:20,909 | INFO | app_logger | api/routers/ideation.py:27 | Executed the ideation pipeline.
94
+ 2025-08-31 12:48:10,237 | INFO | app_logger | api/routers/ideation.py:27 | Executed the ideation pipeline.
95
+ 2025-08-31 12:54:47,884 | INFO | app_logger | api/routers/ideation.py:27 | Executed the ideation pipeline.
src/genai/ideation_agent/agent.py CHANGED
@@ -11,7 +11,7 @@ class IdeationAgent:
11
  graph_builder= StateGraph(State)
12
  graph_builder.add_node("retriever", RetrieverNode().run)
13
  graph_builder.add_node("ideator", IdeatorNode().run)
14
- graph_builder.add_node("critic", CriticNode().run)
15
  graph_builder.add_node("normalizer",NormalizerNode().run)
16
  graph_builder.add_node("judge1", JudgeNode1().run)
17
  graph_builder.add_node("judge2", JudgeNode2().run)
@@ -20,8 +20,8 @@ class IdeationAgent:
20
 
21
  graph_builder.add_edge(START, "retriever")
22
  graph_builder.add_edge("retriever", "ideator")
23
- graph_builder.add_edge("ideator", "critic")
24
- graph_builder.add_edge("critic", "normalizer")
25
  graph_builder.add_edge("normalizer", "judge1")
26
  graph_builder.add_edge("normalizer","judge2")
27
  graph_builder.add_edge("judge1", "aggregrator")
 
11
  graph_builder= StateGraph(State)
12
  graph_builder.add_node("retriever", RetrieverNode().run)
13
  graph_builder.add_node("ideator", IdeatorNode().run)
14
+ # graph_builder.add_node("critic", CriticNode().run)
15
  graph_builder.add_node("normalizer",NormalizerNode().run)
16
  graph_builder.add_node("judge1", JudgeNode1().run)
17
  graph_builder.add_node("judge2", JudgeNode2().run)
 
20
 
21
  graph_builder.add_edge(START, "retriever")
22
  graph_builder.add_edge("retriever", "ideator")
23
+ # graph_builder.add_edge("ideator", "critic")
24
+ graph_builder.add_edge("ideator", "normalizer")
25
  graph_builder.add_edge("normalizer", "judge1")
26
  graph_builder.add_edge("normalizer","judge2")
27
  graph_builder.add_edge("judge1", "aggregrator")
src/genai/ideation_agent/utils/nodes.py CHANGED
@@ -12,8 +12,12 @@ class RetrieverNode:
12
  pass
13
 
14
  def run(self , state:State):
15
- influencers_data = Retrieval(state.business_details[-1]).influencers_data()
 
16
  state.influencers_data.append(influencers_data)
 
 
 
17
  return state
18
 
19
  class IdeatorNode:
@@ -25,7 +29,7 @@ class IdeatorNode:
25
  messages = [SystemMessage(content=template),
26
  HumanMessage(content=f'''The business_details is\n{state.business_details[-1]}\n
27
  The information of the image is:\n{state.image_caption[-1]}'''),]
28
- # FunctionMessage(name='inf_data_ideator', content=f'''The data of influencers is:\n {state.influencers_data[-1]}\n''')]
29
  response = self.llm.invoke(messages)
30
  print('Ideator Response:', response.content)
31
  state.ideator_response.append(str(response.content))
@@ -43,7 +47,7 @@ class CriticNode:
43
  HumanMessage(content=f'''The ideas generated by ideator are:\n{state.ideator_response[-1]}\n.
44
  The business_details is\n{state.business_details[-1]}\n
45
  The information of the image is:\n{state.image_caption[-1]}'''),]
46
- # FunctionMessage(name='inf_data_critic', content=f'''The data of influencers is:\n {state.influencers_data[-1]}''')]
47
 
48
  response = self.llm.invoke(messages)
49
  state.critic_response.append(str(response.content))
@@ -56,7 +60,7 @@ class NormalizerNode:
56
  self.llm = normalizer_llm
57
 
58
  def run(self, state:State):
59
- response = self.llm.with_structured_output(ideation_json_schema).invoke(str(state.critic_response[-1]))
60
  state.normalizer_response.append(response)
61
  print('Normalizer Executed')
62
  return state
 
12
  pass
13
 
14
  def run(self , state:State):
15
+ influencers_data = 'Nothing.'
16
+ # influencers_data = Retrieval(state.business_details[-1]).influencers_data()
17
  state.influencers_data.append(influencers_data)
18
+ print('Retriever Node completed...')
19
+ # imdb_data = Retrieval(state.business_details[-1]).imdb_ideas()
20
+ # state.imdb_data.append(imdb_data)
21
  return state
22
 
23
  class IdeatorNode:
 
29
  messages = [SystemMessage(content=template),
30
  HumanMessage(content=f'''The business_details is\n{state.business_details[-1]}\n
31
  The information of the image is:\n{state.image_caption[-1]}'''),]
32
+ # FunctionMessage(name='imdb_ideas_function', content=f'''The data of imdb movies description is:\n {state.imdb_data[-1]}\n''')]
33
  response = self.llm.invoke(messages)
34
  print('Ideator Response:', response.content)
35
  state.ideator_response.append(str(response.content))
 
47
  HumanMessage(content=f'''The ideas generated by ideator are:\n{state.ideator_response[-1]}\n.
48
  The business_details is\n{state.business_details[-1]}\n
49
  The information of the image is:\n{state.image_caption[-1]}'''),]
50
+ # FunctionMessage(name='imdb_ideas_function', content=f'''The data of imdb movies description is:\n {state.imdb_data[-1]}\n''')]
51
 
52
  response = self.llm.invoke(messages)
53
  state.critic_response.append(str(response.content))
 
60
  self.llm = normalizer_llm
61
 
62
  def run(self, state:State):
63
+ response = self.llm.with_structured_output(ideation_json_schema).invoke(str(state.ideator_response[-1]))
64
  state.normalizer_response.append(response)
65
  print('Normalizer Executed')
66
  return state
src/genai/ideation_agent/utils/prompts.py CHANGED
@@ -1,14 +1,13 @@
1
  def ideator_prompt_v3():
2
  return f"""
3
  You are Ideasmith Pro, a world-class video ideator trusted by top brands to craft crisp, simple, and high-impact short-form video concepts for TikTok, Instagram, and YouTube Shorts.
4
- Your task is to create exactly 8 unique and highly creative video ideas (conceptual seeds, not full scripts). Each idea should be short, clear, and visually vivid.
5
  I am working on a project where i have to give very unique, creative and feasible video ideas for tiktok and instagram reels to the nepali business houses by understanding their business details.
6
  The idea must have to include very unique events, surprises to make the video catchy.
7
 
8
 
9
  You will be given:
10
  - Business details (from the human message): Focus more strongly on device_used_to_create_videos and additional informations provided. The video is to be shoot using the provided device in the business details.
11
- - Influencer data (from the function message): You can take it as a reference if it helps you.
12
 
13
  Output Rules:
14
  - Respond in valid JSON format only.
@@ -24,7 +23,7 @@ Output Rules:
24
  Very Important Creative Guidelines:
25
  - Each idea must be completely different in plot, theme, settings, tone, characters, events and everything.
26
  - No repeating characters, locations, or flow patterns.
27
- - Use simple, clear, and engaging language.
28
 
29
  Here is the example of what kind of ideas i want:
30
  The business details is:
@@ -49,14 +48,14 @@ def critic_prompt_v3():
49
  return f"""
50
  You are a precision-focused, detail-oriented video ideas critic and ideas refiner.
51
  You’ve been assigned to critique and refine 8 video ideas created by another ideator.
52
- Your job is to identify weaknesses and then improve them making more creative and unique.
53
  The idea must have to include very unique events, surprises to make the video catchy.
54
  I am working on a project where i have to give very unique, creative and feasible video ideas for tiktok and instagram reels to the nepali business houses by understanding their business details.
55
 
56
  You are be provided with:
57
  - Business details (from the human message): Focus more strongly on device_used_to_create_videos and additional informations provided. The video is to be shoot using the provided device in the business details.
58
  - Ideas generated by the ideator (from the human message)
59
- - Influencer data (from the function message): You can take it as a reference if it helps you.
60
 
61
  Your Job:
62
  1. Identify collective flaws across the 8 original ideas — e.g., uncreative, lacking uniqueness, repetition, weak hooks, confusing flow, poor tie-in to business, lack of diversity, or unclear USP.
@@ -67,13 +66,13 @@ Your Job:
67
  - usp → The unique selling proposition tied to the business
68
  - niche → The specific target audience or market segment most likely to resonate with the video.
69
 
70
- 3. You are also allowed to change some entire ideas too if it lacks everything. But if some are already creative, you can refine them.
71
- 4. Give the response in simple and understandable vocabularies.
72
 
73
  Very Important Creative Guidelines:
74
  - Each idea must be completely different in plot, theme, setting, and tone, characters , events etc.
75
  - Avoid repeating characters, hooks, settings, or storylines across the 8 ideas.
76
- - Use simple, clear, and engaging language.
77
 
78
  Here is the example of what kind of ideas i want:
79
  The business details is:
 
1
  def ideator_prompt_v3():
2
  return f"""
3
  You are Ideasmith Pro, a world-class video ideator trusted by top brands to craft crisp, simple, and high-impact short-form video concepts for TikTok, Instagram, and YouTube Shorts.
4
+ Your task is to create exactly 8 unique and highly creative video ideas (conceptual seeds, not full scripts). Each idea should be short, clear and visually vivid.
5
  I am working on a project where i have to give very unique, creative and feasible video ideas for tiktok and instagram reels to the nepali business houses by understanding their business details.
6
  The idea must have to include very unique events, surprises to make the video catchy.
7
 
8
 
9
  You will be given:
10
  - Business details (from the human message): Focus more strongly on device_used_to_create_videos and additional informations provided. The video is to be shoot using the provided device in the business details.
 
11
 
12
  Output Rules:
13
  - Respond in valid JSON format only.
 
23
  Very Important Creative Guidelines:
24
  - Each idea must be completely different in plot, theme, settings, tone, characters, events and everything.
25
  - No repeating characters, locations, or flow patterns.
26
+ - Use simple, clear, and engaging language. The ideas will be used by person who are average in english proficiency.
27
 
28
  Here is the example of what kind of ideas i want:
29
  The business details is:
 
48
  return f"""
49
  You are a precision-focused, detail-oriented video ideas critic and ideas refiner.
50
  You’ve been assigned to critique and refine 8 video ideas created by another ideator.
51
+ Your job is to identify ideas' weaknesses(if any) and then improve them making more creative and unique.
52
  The idea must have to include very unique events, surprises to make the video catchy.
53
  I am working on a project where i have to give very unique, creative and feasible video ideas for tiktok and instagram reels to the nepali business houses by understanding their business details.
54
 
55
  You are be provided with:
56
  - Business details (from the human message): Focus more strongly on device_used_to_create_videos and additional informations provided. The video is to be shoot using the provided device in the business details.
57
  - Ideas generated by the ideator (from the human message)
58
+
59
 
60
  Your Job:
61
  1. Identify collective flaws across the 8 original ideas — e.g., uncreative, lacking uniqueness, repetition, weak hooks, confusing flow, poor tie-in to business, lack of diversity, or unclear USP.
 
66
  - usp → The unique selling proposition tied to the business
67
  - niche → The specific target audience or market segment most likely to resonate with the video.
68
 
69
+ 3. Change only those ideas whinch needs proper refinements. If the idea is already unique and creative enough, you don't have to change it. Don't act too strict.
70
+ 4. Use simple, clear, and engaging language. The ideas will be used by person who are average in english proficiency.
71
 
72
  Very Important Creative Guidelines:
73
  - Each idea must be completely different in plot, theme, setting, and tone, characters , events etc.
74
  - Avoid repeating characters, hooks, settings, or storylines across the 8 ideas.
75
+ - Use simple, clear, and engaging language. The ideas will be used by person who are average in english proficiency.
76
 
77
  Here is the example of what kind of ideas i want:
78
  The business details is:
src/genai/ideation_agent/utils/state.py CHANGED
@@ -6,6 +6,7 @@ from typing import Annotated
6
  class State(BaseModel):
7
  business_details : Annotated[list[dict],operator.add] = []
8
  influencers_data : Annotated[list[str],operator.add] = []
 
9
  ideator_response: Annotated[list[str],operator.add] = []
10
  critic_response: Annotated[list[str],operator.add] = []
11
  normalizer_response : Annotated[list[dict],operator.add] = []
 
6
  class State(BaseModel):
7
  business_details : Annotated[list[dict],operator.add] = []
8
  influencers_data : Annotated[list[str],operator.add] = []
9
+ imdb_data : Annotated[list[str],operator.add] = []
10
  ideator_response: Annotated[list[str],operator.add] = []
11
  critic_response: Annotated[list[str],operator.add] = []
12
  normalizer_response : Annotated[list[dict],operator.add] = []
src/genai/ideation_agent/utils/tools.py CHANGED
@@ -54,7 +54,7 @@ class Retrieval:
54
  return encoding.decode(trimmed_response)
55
 
56
  def imdb_ideas(self):
57
- top_k = 10
58
  distances, indices = ideas_index.search(self.query_embedding, top_k)
59
 
60
  outer_list = []
 
54
  return encoding.decode(trimmed_response)
55
 
56
  def imdb_ideas(self):
57
+ top_k = 4
58
  distances, indices = ideas_index.search(self.query_embedding, top_k)
59
 
60
  outer_list = []
src/genai/utils/__pycache__/models_loader.cpython-313.pyc CHANGED
Binary files a/src/genai/utils/__pycache__/models_loader.cpython-313.pyc and b/src/genai/utils/__pycache__/models_loader.cpython-313.pyc differ
 
src/genai/utils/models_loader.py CHANGED
@@ -18,13 +18,13 @@ llm_anthropic = ChatAnthropic(model='claude-3-7-sonnet-latest', temperature=1)
18
  llm_gemini = ChatGoogleGenerativeAI(model="gemini-1.5-flash")
19
  llm_groq = ChatGroq(model="llama-3.1-8b-instant",temperature=0.7)
20
  llm_gpt = ChatOpenAI(model="gpt-4o-mini",temperature=0.3)
21
- llm_gpt_high = ChatOpenAI(model="gpt-4o",temperature=0.5)
22
 
23
  captioning_model = "meta-llama/llama-4-scout-17b-16e-instruct"
24
  image_generation_model = "black-forest-labs/FLUX.1-schnell"
25
 
26
- ideator_llm = llm_gpt
27
- critic_llm = llm_gpt
28
  normalizer_llm = llm_gpt
29
  validator_llm = llm_gpt
30
  judge1_llm = llm_gpt
 
18
  llm_gemini = ChatGoogleGenerativeAI(model="gemini-1.5-flash")
19
  llm_groq = ChatGroq(model="llama-3.1-8b-instant",temperature=0.7)
20
  llm_gpt = ChatOpenAI(model="gpt-4o-mini",temperature=0.3)
21
+ llm_gpt_high = ChatOpenAI(model="gpt-5-nano",temperature=0.5)
22
 
23
  captioning_model = "meta-llama/llama-4-scout-17b-16e-instruct"
24
  image_generation_model = "black-forest-labs/FLUX.1-schnell"
25
 
26
+ ideator_llm = llm_gpt_high
27
+ critic_llm = llm_gpt_high
28
  normalizer_llm = llm_gpt
29
  validator_llm = llm_gpt
30
  judge1_llm = llm_gpt