Sami Halawa Claude commited on
Commit
807c6c7
Β·
1 Parent(s): e122c85

Transform to AutoStartup.ai - AI-powered startup idea generator

Browse files

- Convert research idea generator to startup-focused tool
- Update UI labels and prompts for business/startup context
- Change evaluation criteria to market viability metrics
- Enhance README with startup-specific features and usage
- Maintain core functionality while pivoting to entrepreneurship

πŸ€– Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>

Files changed (2) hide show
  1. README.md +33 -11
  2. app.py +25 -24
README.md CHANGED
@@ -1,12 +1,34 @@
1
- ---
2
- title: Idea Generator
3
- emoji: πŸ‘
4
- colorFrom: indigo
5
- colorTo: purple
6
- sdk: gradio
7
- sdk_version: 5.32.0
8
- app_file: app.py
9
- pinned: false
10
- ---
 
 
11
 
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # πŸš€ AutoStartup.ai - AI-Powered Startup Idea Generator
2
+
3
+ Transform market problems into viable startup opportunities using AI-driven analysis and evaluation.
4
+
5
+ ## Features
6
+
7
+ - **Market-Driven Generation**: Input market problems or industry focus areas to generate targeted startup ideas
8
+ - **AI Evaluation**: Ideas are scored on Market Potential, Technical Feasibility, Scalability, and Competitive Advantage
9
+ - **Idea Tracking**: Save viable ideas and filter out non-viable ones
10
+ - **Business Plan Export**: Download structured business plan templates for your best ideas
11
+
12
+ ## Usage
13
 
14
+ 1. Enter a market problem or industry focus in the text area
15
+ 2. Click "πŸš€ Generate Startup Ideas" to get AI-generated, ranked startup concepts
16
+ 3. Review and rate ideas using the πŸ’‘ and ❌ buttons
17
+ 4. Download business plan templates for promising ideas
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ pip install -r requirements.txt
23
+ python app.py
24
+ ```
25
+
26
+ ## Technology Stack
27
+
28
+ - **Frontend**: Gradio for interactive web interface
29
+ - **AI Engine**: OpenAI GPT models for idea generation and evaluation
30
+ - **Data Processing**: Pandas for results management
31
+ - **Export**: Excel/XLSX business plan templates
32
+
33
+ ---
34
+ *Transform your entrepreneurial vision into reality with AI-powered startup ideation.*
app.py CHANGED
@@ -67,10 +67,10 @@ def generate_and_evaluate(query, ideas_count, random_seed, progress=gr.Progress(
67
 
68
  display_data.append({
69
  "Rank": i + 1,
70
- "Idea": idea_description,
71
  "Score": display_score,
72
- "Source Paper": idea_info.get('paper_title', 'N/A').split('/')[-1],
73
- "Details": evaluation_raw,
74
  })
75
 
76
  # Displaying results in the first table
@@ -103,10 +103,10 @@ def generate_and_evaluate(query, ideas_count, random_seed, progress=gr.Progress(
103
 
104
  comparison_display_data.append({
105
  "Rank": i + 1,
106
- "Idea": idea_description,
107
  "Score": display_score,
108
- "Source Paper": idea_info.get('paper_title', 'N/A').split('/')[-1],
109
- "Details": experiment_text,
110
  })
111
 
112
  comparison_results_df = pd.DataFrame(comparison_display_data)
@@ -125,7 +125,7 @@ def like_idea(row_number, ranked_ideas):
125
  idea_info = ranked_ideas[idx]
126
  with open(GOOD_IDEAS_FILE, "a", encoding="utf-8") as f:
127
  f.write(json.dumps(idea_info, ensure_ascii=False) + "\n")
128
- return f"the {row_number}-th idea has been recorded as a good idea"
129
 
130
  def dislike_idea(row_number, ranked_ideas):
131
  idx = int(row_number) - 1
@@ -134,7 +134,7 @@ def dislike_idea(row_number, ranked_ideas):
134
  idea_info = ranked_ideas[idx]
135
  with open(BAD_IDEAS_FILE, "a", encoding="utf-8") as f:
136
  f.write(json.dumps(idea_info, ensure_ascii=False) + "\n")
137
- return f"the {row_number}-th idea has been recorded as a bad idea"
138
 
139
  def export_xlsx(ranked_ideas):
140
  if not ranked_ideas:
@@ -174,30 +174,31 @@ def export_xlsx(ranked_ideas):
174
  with gr.Blocks(theme=gr.themes.Soft(), css_paths=['./gradio.css']) as demo:
175
  gr.Markdown(
176
  """
177
- # πŸš€ Research Idea Generator πŸš€
178
- Enter a query or topic, and this tool will generate research ideas based on a predefined list of papers,
179
- then evaluate and rank them based on Novelty, Feasibility, Reasonableness, and Clarity.
 
180
  """
181
  )
182
 
183
  with gr.Row():
184
  with gr.Column(scale=2):
185
  query_input = gr.Textbox(
186
- label="Your Query/Topic",
187
- placeholder='''e.g.Long-text tasks are one of the key focuses of current large model research. Enhancing a model's ability to process long texts not only means being able to fit longer texts into the context window, but also enables better modeling of long-range dependencies between text paragraphs, thereby improving reading comprehension and reasoning of long texts.
188
 
189
- To address issues related to long texts (such as long-text comprehension, long-text generation, etc), you should come up with an impactful and creative idea.''',
190
  lines=6
191
  )
192
- submit_button = gr.Button("Generate Ideas", variant="primary")
193
  gr.Markdown("---")
194
  gr.Markdown("### Like / Dislike")
195
  with gr.Row():
196
  row_input = gr.Number(label="rank", value=1, precision=0)
197
  status_box = gr.Textbox(label="status", interactive=False)
198
  with gr.Column(scale=1):
199
- like_button = gr.Button("πŸ‘ Good Idea!")
200
- dislike_button = gr.Button("πŸ‘Ž Bad Idea!")
201
  with gr.Column(scale=1):
202
  cost_output = gr.Textbox(label="Estimated Cost", interactive=False, value="$0.00")
203
  ideas_count_input = gr.Number(
@@ -213,22 +214,22 @@ To address issues related to long texts (such as long-text comprehension, long-t
213
  status_output = gr.Textbox(label="Status", interactive=False, value="Idle")
214
 
215
  gr.Markdown("---")
216
- gr.Markdown("## Ranked Ideas")
217
  results_output = gr.DataFrame(
218
- headers=["Rank", "Idea", "Score", "Source Paper", "Details"],
219
  datatype=["number", "str", "number", "str", "str"],
220
- label="Evaluation Results",
221
  elem_id="results-dataframe",
222
  row_count=(10, "dynamic"),
223
  wrap=True
224
  )
225
  gr.Markdown("---")
226
- gr.Markdown("## AI-Scientist-v2 Results")
227
  # New comparison results table
228
  comparison_results_output = gr.DataFrame(
229
- headers=["Rank", "Idea", "Score", "Source Paper", "Details"],
230
  datatype=["number", "str", "number", "str", "str"],
231
- label="Comparison Results",
232
  elem_id="comparison-results-dataframe",
233
  row_count=(10, "dynamic"),
234
  wrap=True
@@ -237,7 +238,7 @@ To address issues related to long texts (such as long-text comprehension, long-t
237
  results_state = gr.State()
238
 
239
  download_button = gr.DownloadButton(
240
- label="πŸ“₯ Download Excel",
241
  value=export_xlsx,
242
  inputs=[results_state]
243
  )
 
67
 
68
  display_data.append({
69
  "Rank": i + 1,
70
+ "Startup Idea": idea_description,
71
  "Score": display_score,
72
+ "Market Research Source": idea_info.get('paper_title', 'N/A').split('/')[-1],
73
+ "Business Details": evaluation_raw,
74
  })
75
 
76
  # Displaying results in the first table
 
103
 
104
  comparison_display_data.append({
105
  "Rank": i + 1,
106
+ "Startup Idea": idea_description,
107
  "Score": display_score,
108
+ "Market Research Source": idea_info.get('paper_title', 'N/A').split('/')[-1],
109
+ "Business Details": experiment_text,
110
  })
111
 
112
  comparison_results_df = pd.DataFrame(comparison_display_data)
 
125
  idea_info = ranked_ideas[idx]
126
  with open(GOOD_IDEAS_FILE, "a", encoding="utf-8") as f:
127
  f.write(json.dumps(idea_info, ensure_ascii=False) + "\n")
128
+ return f"the {row_number}-th startup idea has been recorded as viable"
129
 
130
  def dislike_idea(row_number, ranked_ideas):
131
  idx = int(row_number) - 1
 
134
  idea_info = ranked_ideas[idx]
135
  with open(BAD_IDEAS_FILE, "a", encoding="utf-8") as f:
136
  f.write(json.dumps(idea_info, ensure_ascii=False) + "\n")
137
+ return f"the {row_number}-th startup idea has been recorded as not viable"
138
 
139
  def export_xlsx(ranked_ideas):
140
  if not ranked_ideas:
 
174
  with gr.Blocks(theme=gr.themes.Soft(), css_paths=['./gradio.css']) as demo:
175
  gr.Markdown(
176
  """
177
+ # πŸš€ AutoStartup.ai - Startup Idea Generator πŸš€
178
+ Enter a market problem or industry focus, and this tool will generate innovative startup ideas
179
+ based on market research and trends, then evaluate and rank them based on Market Potential,
180
+ Technical Feasibility, Scalability, and Competitive Advantage.
181
  """
182
  )
183
 
184
  with gr.Row():
185
  with gr.Column(scale=2):
186
  query_input = gr.Textbox(
187
+ label="Market Problem or Industry Focus",
188
+ placeholder='''e.g. Remote work has fundamentally changed how people collaborate, but current tools still suffer from poor user experience, lack of seamless integration, and difficulty maintaining team culture. Many professionals struggle with productivity in distributed teams, effective asynchronous communication, and maintaining work-life balance.
189
 
190
+ To address challenges in remote work collaboration (such as team productivity, communication gaps, cultural disconnect, etc), you should come up with an innovative and scalable startup idea.''',
191
  lines=6
192
  )
193
+ submit_button = gr.Button("πŸš€ Generate Startup Ideas", variant="primary")
194
  gr.Markdown("---")
195
  gr.Markdown("### Like / Dislike")
196
  with gr.Row():
197
  row_input = gr.Number(label="rank", value=1, precision=0)
198
  status_box = gr.Textbox(label="status", interactive=False)
199
  with gr.Column(scale=1):
200
+ like_button = gr.Button("πŸ’‘ Great Startup Idea!")
201
+ dislike_button = gr.Button("❌ Not Viable")
202
  with gr.Column(scale=1):
203
  cost_output = gr.Textbox(label="Estimated Cost", interactive=False, value="$0.00")
204
  ideas_count_input = gr.Number(
 
214
  status_output = gr.Textbox(label="Status", interactive=False, value="Idle")
215
 
216
  gr.Markdown("---")
217
+ gr.Markdown("## πŸ† Ranked Startup Ideas")
218
  results_output = gr.DataFrame(
219
+ headers=["Rank", "Startup Idea", "Score", "Market Research Source", "Business Details"],
220
  datatype=["number", "str", "number", "str", "str"],
221
+ label="Market-Validated Ideas",
222
  elem_id="results-dataframe",
223
  row_count=(10, "dynamic"),
224
  wrap=True
225
  )
226
  gr.Markdown("---")
227
+ gr.Markdown("## πŸ”„ Alternative Generation Results")
228
  # New comparison results table
229
  comparison_results_output = gr.DataFrame(
230
+ headers=["Rank", "Startup Idea", "Score", "Market Research Source", "Business Details"],
231
  datatype=["number", "str", "number", "str", "str"],
232
+ label="Alternative Approach Results",
233
  elem_id="comparison-results-dataframe",
234
  row_count=(10, "dynamic"),
235
  wrap=True
 
238
  results_state = gr.State()
239
 
240
  download_button = gr.DownloadButton(
241
+ label="πŸ“Š Download Business Plan Template",
242
  value=export_xlsx,
243
  inputs=[results_state]
244
  )