Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -393,10 +393,13 @@ def generate_project_proposal(prompt):
|
|
393 |
|
394 |
|
395 |
|
|
|
|
|
396 |
def create_project_proposals(budget_cluster_df, problem_cluster_df, location_clusters, problem_clusters):
|
397 |
print("\n Starting function: create_project_proposals")
|
398 |
console_messages.append("\n Starting function: create_project_proposals")
|
399 |
proposals = {}
|
|
|
400 |
for loc in budget_cluster_df.index:
|
401 |
print("\n loc: ", loc)
|
402 |
console_messages.append(f"\n loc: {loc}")
|
@@ -408,20 +411,17 @@ def create_project_proposals(budget_cluster_df, problem_cluster_df, location_clu
|
|
408 |
location = ", ".join([item.strip() for item in location_clusters[loc] if item]) # Clean and join
|
409 |
problem_domain = ", ".join([item.strip() for item in problem_clusters[prob] if item]) # Clean and join
|
410 |
problem_descriptions = problem_cluster_df.loc[loc, prob]
|
411 |
-
print("location: ",location)
|
412 |
-
print("problem_domain: ",problem_domain)
|
413 |
-
print("problem_descriptions: ",problem_descriptions)
|
414 |
|
415 |
-
|
416 |
-
|
|
|
|
|
|
|
|
|
417 |
print(f"\nGenerating proposal for location: {location}, problem domain: {problem_domain}")
|
418 |
|
419 |
-
# console_messages.append(f"\nGenerating proposal for location: {location}, problem domain: {problem_domain}")
|
420 |
-
|
421 |
# Prepare the prompt
|
422 |
-
problems_summary = "; \n".join(problem_descriptions
|
423 |
-
# problems_summary = "; ".join(problem_descriptions)
|
424 |
-
# prompt = f"Generate a project proposal for the following:\n\nLocation: {location}\nProblem Domain: {problem_domain}\nProblems: {problems_summary}\nBudget: ${financial_weight:.2f}\n\nProject Proposal:"
|
425 |
prompt = f"Generate a solution oriented project proposal for the following:\n\nLocation: {location}\nProblem Domain: {problem_domain}\nProblems: {problems_summary}\n\nProject Proposal:"
|
426 |
|
427 |
proposal = generate_project_proposal(prompt)
|
@@ -432,6 +432,48 @@ def create_project_proposals(budget_cluster_df, problem_cluster_df, location_clu
|
|
432 |
print(f"Skipping empty problem descriptions for location: {location}, problem domain: {problem_domain}")
|
433 |
|
434 |
return proposals
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
435 |
|
436 |
|
437 |
|
|
|
393 |
|
394 |
|
395 |
|
396 |
+
|
397 |
+
|
398 |
def create_project_proposals(budget_cluster_df, problem_cluster_df, location_clusters, problem_clusters):
|
399 |
print("\n Starting function: create_project_proposals")
|
400 |
console_messages.append("\n Starting function: create_project_proposals")
|
401 |
proposals = {}
|
402 |
+
|
403 |
for loc in budget_cluster_df.index:
|
404 |
print("\n loc: ", loc)
|
405 |
console_messages.append(f"\n loc: {loc}")
|
|
|
411 |
location = ", ".join([item.strip() for item in location_clusters[loc] if item]) # Clean and join
|
412 |
problem_domain = ", ".join([item.strip() for item in problem_clusters[prob] if item]) # Clean and join
|
413 |
problem_descriptions = problem_cluster_df.loc[loc, prob]
|
|
|
|
|
|
|
414 |
|
415 |
+
print("location: ", location)
|
416 |
+
print("problem_domain: ", problem_domain)
|
417 |
+
print("problem_descriptions: ", problem_descriptions)
|
418 |
+
|
419 |
+
# Check if problem_descriptions is valid (not NaN and not an empty list)
|
420 |
+
if isinstance(problem_descriptions, list) and problem_descriptions:
|
421 |
print(f"\nGenerating proposal for location: {location}, problem domain: {problem_domain}")
|
422 |
|
|
|
|
|
423 |
# Prepare the prompt
|
424 |
+
problems_summary = "; \n".join(problem_descriptions) # Join all problem descriptions
|
|
|
|
|
425 |
prompt = f"Generate a solution oriented project proposal for the following:\n\nLocation: {location}\nProblem Domain: {problem_domain}\nProblems: {problems_summary}\n\nProject Proposal:"
|
426 |
|
427 |
proposal = generate_project_proposal(prompt)
|
|
|
432 |
print(f"Skipping empty problem descriptions for location: {location}, problem domain: {problem_domain}")
|
433 |
|
434 |
return proposals
|
435 |
+
|
436 |
+
|
437 |
+
# def create_project_proposals(budget_cluster_df, problem_cluster_df, location_clusters, problem_clusters):
|
438 |
+
# print("\n Starting function: create_project_proposals")
|
439 |
+
# console_messages.append("\n Starting function: create_project_proposals")
|
440 |
+
# proposals = {}
|
441 |
+
# for loc in budget_cluster_df.index:
|
442 |
+
# print("\n loc: ", loc)
|
443 |
+
# console_messages.append(f"\n loc: {loc}")
|
444 |
+
|
445 |
+
# for prob in budget_cluster_df.columns:
|
446 |
+
# console_messages.append(f"\n prob: {prob}")
|
447 |
+
# print("\n prob: ", prob)
|
448 |
+
|
449 |
+
# location = ", ".join([item.strip() for item in location_clusters[loc] if item]) # Clean and join
|
450 |
+
# problem_domain = ", ".join([item.strip() for item in problem_clusters[prob] if item]) # Clean and join
|
451 |
+
# problem_descriptions = problem_cluster_df.loc[loc, prob]
|
452 |
+
|
453 |
+
# print("location: ",location)
|
454 |
+
# print("problem_domain: ",problem_domain)
|
455 |
+
# print("problem_descriptions: ",problem_descriptions)
|
456 |
+
|
457 |
+
# if problem_descriptions:# and not pd.isna(problem_descriptions):
|
458 |
+
|
459 |
+
# print(f"\nGenerating proposal for location: {location}, problem domain: {problem_domain}")
|
460 |
+
|
461 |
+
# # console_messages.append(f"\nGenerating proposal for location: {location}, problem domain: {problem_domain}")
|
462 |
+
|
463 |
+
# # Prepare the prompt
|
464 |
+
# problems_summary = "; \n".join(problem_descriptions[:3]) # Limit to first 3 for brevity
|
465 |
+
# # problems_summary = "; ".join(problem_descriptions)
|
466 |
+
# # prompt = f"Generate a project proposal for the following:\n\nLocation: {location}\nProblem Domain: {problem_domain}\nProblems: {problems_summary}\nBudget: ${financial_weight:.2f}\n\nProject Proposal:"
|
467 |
+
# prompt = f"Generate a solution oriented project proposal for the following:\n\nLocation: {location}\nProblem Domain: {problem_domain}\nProblems: {problems_summary}\n\nProject Proposal:"
|
468 |
+
|
469 |
+
# proposal = generate_project_proposal(prompt)
|
470 |
+
# proposals[(loc, prob)] = proposal
|
471 |
+
# print("Generated Proposal: ", proposal)
|
472 |
+
|
473 |
+
# else:
|
474 |
+
# print(f"Skipping empty problem descriptions for location: {location}, problem domain: {problem_domain}")
|
475 |
+
|
476 |
+
# return proposals
|
477 |
|
478 |
|
479 |
|