Class DecisionModelOutputGuardrail

java.lang.Object
dev.langchain4j.guardrails.DecisionModelOutputGuardrail
All Implemented Interfaces:
Guardrail<OutputGuardrailRequest, OutputGuardrailResult>, OutputGuardrail

@Experimental public class DecisionModelOutputGuardrail extends Object implements OutputGuardrail
An OutputGuardrail that checks the responses of the model with a DecisionModel.

Each check is a yes/no question where "yes" means the response must be rejected. All checks are answered in a single call. The decision model receives the response and the last user message:

OutputGuardrail guardrail = DecisionModelOutputGuardrail.builder()
        .decisionModel(decisionModel)
        .check("personalData", "Does the response reveal personal data, such as contact details or account numbers?")
        .check("unanswered", "Does the response fail to address the user message?")
        .reprompt("Answer the user message without revealing personal data.")
        .build();
A rejected response fails with a fatal result or, if DecisionModelOutputGuardrail.Builder.reprompt(String) is set, the model is asked again with that instruction. Responses without text (for example, only tool calls) are not checked. If the decision model fails, the exception is propagated, so the request fails.
Since:
1.21.0
  • Constructor Details

    • DecisionModelOutputGuardrail

      public DecisionModelOutputGuardrail(DecisionModel decisionModel, Map<String,String> checks)
      Creates a guardrail with the given checks and the default threshold.
      Parameters:
      decisionModel - the decision model that answers the checks.
      checks - the checks, as yes/no questions keyed by check name, where "yes" means the response must be rejected.
    • DecisionModelOutputGuardrail

      protected DecisionModelOutputGuardrail(DecisionModelOutputGuardrail.Builder builder)
  • Method Details