File size: 656 Bytes
b077b7d
2946856
b077b7d
 
 
 
 
 
 
 
 
 
2946856
 
b077b7d
2946856
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import weave
from rich.progress import track
from weave.flow.obj import Object as WeaveObject

from .base import Guardrail


class GuardrailManager(WeaveObject):
    guardrails: list[Guardrail]

    @weave.op()
    def guard(self, prompt: str, **kwargs) -> dict:
        alerts, safe = [], True
        for guardrail in track(self.guardrails, description="Running guardrails"):
            response = guardrail.guard(prompt, **kwargs)
            alerts.append(
                {"guardrail_name": guardrail.__class__.__name__, "response": response}
            )
            safe = safe and response["safe"]
        return {"safe": safe, "alerts": alerts}