diff --git a/pr_agent/settings/configuration.toml b/pr_agent/settings/configuration.toml
index 62649d5e..01c09207 100644
--- a/pr_agent/settings/configuration.toml
+++ b/pr_agent/settings/configuration.toml
@@ -121,6 +121,9 @@ max_history_len=4
apply_suggestions_checkbox=true
# suggestions scoring
suggestions_score_threshold=0 # [0-10]| recommend not to set this value above 8, since above it may clip highly relevant suggestions
+new_score_mechanism=true
+new_score_mechanism_th_high=9
+new_score_mechanism_th_medium=7
# params for '/improve --extended' mode
auto_extended_mode=true
num_code_suggestions_per_chunk=4
diff --git a/pr_agent/tools/pr_code_suggestions.py b/pr_agent/tools/pr_code_suggestions.py
index 53ee10c8..5a98cc9e 100644
--- a/pr_agent/tools/pr_code_suggestions.py
+++ b/pr_agent/tools/pr_code_suggestions.py
@@ -720,7 +720,7 @@ class PRCodeSuggestions:
header = f"Suggestion"
delta = 66
header += " " * delta
- pr_body += f"""Category | {header} | Score |
"""
+ pr_body += f"""Category | {header} | Impact |
"""
pr_body += """
"""
suggestions_labels = dict()
# add all suggestions related to each label
@@ -740,7 +740,7 @@ class PRCodeSuggestions:
counter_suggestions = 0
for label, suggestions in suggestions_labels.items():
num_suggestions = len(suggestions)
- pr_body += f"""{label.capitalize()} | \n"""
+ pr_body += f"""
{label.capitalize()} | \n"""
for i, suggestion in enumerate(suggestions):
relevant_file = suggestion['relevant_file'].strip()
@@ -794,14 +794,19 @@ class PRCodeSuggestions:
{example_code.rstrip()}
"""
- pr_body += f"Suggestion importance[1-10]: {suggestion['score']}
\n\n"
- pr_body += f"Why: {suggestion['score_why']}\n\n"
- pr_body += f" "
+ if suggestion.get('score_why'):
+ pr_body += f"Suggestion importance[1-10]: {suggestion['score']}
\n\n"
+ pr_body += f"__\n\nWhy: {suggestion['score_why']}\n\n"
+ pr_body += f" "
pr_body += f""
# # add another column for 'score'
- pr_body += f"{suggestion['score']}\n\n"
+ score_int = int(suggestion.get('score', 0))
+ score_str = f"{score_int}"
+ if get_settings().pr_code_suggestions.new_score_mechanism:
+ score_str = self.get_score_str(score_int)
+ pr_body += f" | {score_str}\n\n"
pr_body += f" |
"
counter_suggestions += 1
@@ -814,6 +819,16 @@ class PRCodeSuggestions:
get_logger().info(f"Failed to publish summarized code suggestions, error: {e}")
return ""
+ def get_score_str(self, score: int) -> str:
+ th_high = get_settings().pr_code_suggestions.get('new_score_mechanism_th_high', 9)
+ th_medium = get_settings().pr_code_suggestions.get('new_score_mechanism_th_medium', 7)
+ if score >= th_high:
+ return "High"
+ elif score >= th_medium:
+ return "Medium"
+ else: # score < 7
+ return "Low"
+
async def self_reflect_on_suggestions(self,
suggestion_list: List,
patches_diff: str,