SantanuBanerjee commited on
Commit
e46b418
·
verified ·
1 Parent(s): 3e19acf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -8
app.py CHANGED
@@ -194,7 +194,7 @@ from collections import Counter
194
 
195
  def extract_problem_domains(df,
196
  text_column='Processed_ProblemDescription_forDomainExtraction',
197
- cluster_range=(6, 10),
198
  top_words=7):
199
  consoleMessage_and_Print("Extracting Problem Domains...")
200
 
@@ -276,7 +276,7 @@ def text_processing_for_location(text):
276
  def extract_location_clusters(df,
277
  text_column1='Processed_LocationText_forClustering', # Extracted through NLP
278
  text_column2='Geographical_Location', # User Input
279
- cluster_range=(2, 5),
280
  top_words=3):
281
  # Combine the two text columns
282
  text_column = "Combined_Location_Text"
@@ -397,7 +397,7 @@ def generate_project_proposal(prompt):
397
 
398
 
399
 
400
-
401
 
402
 
403
 
@@ -415,24 +415,29 @@ def create_project_proposals(budget_cluster_df, problem_cluster_df, location_clu
415
 
416
  location = ", ".join([item.strip() for item in location_clusters[loc] if item]) # Clean and join
417
  problem_domain = ", ".join([item.strip() for item in problem_clusters[prob] if item]) # Clean and join
418
- problem_descriptions = problem_cluster_df.loc[loc, prob]
 
419
 
420
 
421
  print("location: ", location)
422
  print("problem_domain: ", problem_domain)
423
- print("problem_descriptions: ", problem_descriptions)
424
 
425
  # Check if problem_descriptions is valid (not NaN and not an empty list)
426
- if isinstance(problem_descriptions, list) and problem_descriptions:
427
  # print(f"\nGenerating proposal for location: {location}, problem domain: {problem_domain}")
428
  consoleMessage_and_Print(f"Generating PP")
429
 
 
430
  # Prepare the prompt
431
  # problems_summary = "; \n".join(problem_descriptions) # Join all problem descriptions
432
- problems_summary = "; \n".join(problem_descriptions[:3]) # Limit to first 3 for brevity
 
 
433
 
434
  # prompt = f"Generate a solution oriented project proposal for the following:\n\nLocation: {location}\nProblem Domain: {problem_domain}\nProblems: {problems_summary}\n\nProject Proposal:"
435
- prompt = f"Generate a solution-oriented project proposal for the following public problem (only output the proposal):\n\n Geographical/Digital Location: {location}\nProblem Category: {problem_domain}\nProblems: {problems_summary}\n\nProject Proposal:"
 
436
 
437
  proposal = generate_project_proposal(prompt)
438
  # Check if proposal is valid
 
194
 
195
  def extract_problem_domains(df,
196
  text_column='Processed_ProblemDescription_forDomainExtraction',
197
+ cluster_range=(6, 8),
198
  top_words=7):
199
  consoleMessage_and_Print("Extracting Problem Domains...")
200
 
 
276
  def extract_location_clusters(df,
277
  text_column1='Processed_LocationText_forClustering', # Extracted through NLP
278
  text_column2='Geographical_Location', # User Input
279
+ cluster_range=(3, 5),
280
  top_words=3):
281
  # Combine the two text columns
282
  text_column = "Combined_Location_Text"
 
397
 
398
 
399
 
400
+ import copy
401
 
402
 
403
 
 
415
 
416
  location = ", ".join([item.strip() for item in location_clusters[loc] if item]) # Clean and join
417
  problem_domain = ", ".join([item.strip() for item in problem_clusters[prob] if item]) # Clean and join
418
+ shuffled_descriptions = copy.deepcopy(problem_cluster_df.loc[loc, prob])
419
+ # Create a deep copy of the problem descriptions, shuffle it, and join the first 10
420
 
421
 
422
  print("location: ", location)
423
  print("problem_domain: ", problem_domain)
424
+ print("problem_descriptions: ", shuffled_descriptions)
425
 
426
  # Check if problem_descriptions is valid (not NaN and not an empty list)
427
+ if isinstance(shuffled_descriptions, list) and shuffled_descriptions:
428
  # print(f"\nGenerating proposal for location: {location}, problem domain: {problem_domain}")
429
  consoleMessage_and_Print(f"Generating PP")
430
 
431
+ random.shuffle(shuffled_descriptions)
432
  # Prepare the prompt
433
  # problems_summary = "; \n".join(problem_descriptions) # Join all problem descriptions
434
+ # problems_summary = "; \n".join(problem_descriptions[:3]) # Limit to first 3 for brevity
435
+ problems_summary = "; \n".join(shuffled_descriptions[:3])
436
+
437
 
438
  # prompt = f"Generate a solution oriented project proposal for the following:\n\nLocation: {location}\nProblem Domain: {problem_domain}\nProblems: {problems_summary}\n\nProject Proposal:"
439
+ # prompt = f"Generate a solution-oriented project proposal for the following public problem (only output the proposal):\n\n Geographical/Digital Location: {location}\nProblem Category: {problem_domain}\nProblems: {problems_summary}\n\nProject Proposal:"
440
+ prompt = f"Generate a single solution-oriented project proposal bespoke to the following Location~Domain cluster of public problems:\n\n Geographical/Digital Location: {location}\nProblem Domain: {problem_domain}\nProblems: {problems_summary}\n\nProject Proposal: <only output this proposal>"
441
 
442
  proposal = generate_project_proposal(prompt)
443
  # Check if proposal is valid