Skip to content

Commit

Permalink
Implement inheritance for each risk type
Browse files Browse the repository at this point in the history
Signed-off-by: Martín Santillán Cooper <[email protected]>
  • Loading branch information
martinscooper committed Feb 10, 2025
1 parent 26d091f commit 0aa47f1
Show file tree
Hide file tree
Showing 20 changed files with 211 additions and 197 deletions.
6 changes: 2 additions & 4 deletions examples/evaluate_granite_guardian_assistant_message_risks.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from unitxt import evaluate
from unitxt.api import create_dataset
from unitxt.blocks import Task
from unitxt.metrics import GraniteGuardianWMLMetric, RiskType
from unitxt.metrics import GraniteGuardianAssistantRisk, RiskType
from unitxt.templates import NullTemplate

print("Assistant response risks")
Expand Down Expand Up @@ -40,9 +40,7 @@

risks = [
f"metrics.granite_guardian.assistant_risk.{assistant_risk}"
for assistant_risk in GraniteGuardianWMLMetric.available_risks[
RiskType.ASSISTANT_MESSAGE
]
for assistant_risk in GraniteGuardianAssistantRisk.get_available_risk_names()
]

print(
Expand Down
5 changes: 2 additions & 3 deletions examples/evaluate_granite_guardian_custom_risks.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from unitxt import evaluate
from unitxt.api import create_dataset
from unitxt.blocks import Task
from unitxt.metrics import GraniteGuardianWMLMetric, RiskType
from unitxt.metrics import GraniteGuardianCustomRisk, RiskType
from unitxt.templates import NullTemplate

print("Bring your own risk")
Expand All @@ -20,10 +20,9 @@
default_template=NullTemplate(),
# metrics=["metrics.granite_guardian.agentic.function_call[user_message_field=user_prompt, risk_definition=User message contains personal information or sensitive personal information that is included as a part of a prompt.]"],
metrics=[
GraniteGuardianWMLMetric(
GraniteGuardianCustomRisk(
risk_name="personal_information",
risk_definition="User message contains personal information or sensitive personal information that is included as a part of a prompt.",
risk_type=RiskType.RAG.name,
user_message_field="user_prompt",
)
],
Expand Down
4 changes: 2 additions & 2 deletions examples/evaluate_granite_guardian_user_message_risks.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from unitxt import evaluate
from unitxt.api import create_dataset
from unitxt.blocks import Task
from unitxt.metrics import GraniteGuardianMetric, RiskType
from unitxt.metrics import GraniteGuardianUserRisk, RiskType
from unitxt.templates import NullTemplate

print("User prompt risks")
Expand All @@ -23,7 +23,7 @@

risks = [
f"metrics.granite_guardian.user_risk.{user_risk}"
for user_risk in GraniteGuardianMetric.available_risks[RiskType.USER_MESSAGE]
for user_risk in GraniteGuardianUserRisk.get_available_risk_names()
]

print(
Expand Down
6 changes: 3 additions & 3 deletions prepare/metrics/granite_guardian.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from unitxt import add_to_catalog
from unitxt.metrics import GraniteGuardianMetric
from unitxt.metrics import GraniteGuardianBase, RISK_TYPE_TO_CLASS

for risk_type, risk_names in GraniteGuardianMetric.available_risks.items():
for risk_type, risk_names in GraniteGuardianBase.available_risks.items():
for risk_name in risk_names:
metric_name = f"""granite_guardian.{risk_type.value}.{risk_name}"""
metric = GraniteGuardianMetric(risk_name=risk_name, risk_type=risk_type.name)
metric = RISK_TYPE_TO_CLASS[risk_type](risk_name=risk_name)
add_to_catalog(metric, name=f"metrics.{metric_name}", overwrite=True)
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "function_call",
"risk_type": "AGENTIC"
"__type__": "granite_guardian_agentic_risk",
"risk_name": "function_call"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "harm",
"risk_type": "ASSISTANT_MESSAGE"
"__type__": "granite_guardian_assistant_risk",
"risk_name": "harm"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "profanity",
"risk_type": "ASSISTANT_MESSAGE"
"__type__": "granite_guardian_assistant_risk",
"risk_name": "profanity"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "social_bias",
"risk_type": "ASSISTANT_MESSAGE"
"__type__": "granite_guardian_assistant_risk",
"risk_name": "social_bias"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "unethical_behavior",
"risk_type": "ASSISTANT_MESSAGE"
"__type__": "granite_guardian_assistant_risk",
"risk_name": "unethical_behavior"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "violence",
"risk_type": "ASSISTANT_MESSAGE"
"__type__": "granite_guardian_assistant_risk",
"risk_name": "violence"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "answer_relevance",
"risk_type": "RAG"
"__type__": "granite_guardian_rag_risk",
"risk_name": "answer_relevance"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "context_relevance",
"risk_type": "RAG"
"__type__": "granite_guardian_rag_risk",
"risk_name": "context_relevance"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "groundedness",
"risk_type": "RAG"
"__type__": "granite_guardian_rag_risk",
"risk_name": "groundedness"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "harm",
"risk_type": "USER_MESSAGE"
"__type__": "granite_guardian_user_risk",
"risk_name": "harm"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "jailbreak",
"risk_type": "USER_MESSAGE"
"__type__": "granite_guardian_user_risk",
"risk_name": "jailbreak"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "profanity",
"risk_type": "USER_MESSAGE"
"__type__": "granite_guardian_user_risk",
"risk_name": "profanity"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "social_bias",
"risk_type": "USER_MESSAGE"
"__type__": "granite_guardian_user_risk",
"risk_name": "social_bias"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "unethical_behavior",
"risk_type": "USER_MESSAGE"
"__type__": "granite_guardian_user_risk",
"risk_name": "unethical_behavior"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
{
"__type__": "granite_guardian_metric",
"risk_name": "violence",
"risk_type": "USER_MESSAGE"
"__type__": "granite_guardian_user_risk",
"risk_name": "violence"
}
Loading

0 comments on commit 0aa47f1

Please sign in to comment.