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 |
|