Sentiment

Sentiment Guardrail is used to detect a prompt's sentiment and that the prompt has a sentiment score lower than the threshold. The scanner based on the NLTK's SentimentIntensityAnalyzer.

Parameters:

data:

  • prompt (str): The prompt to scan for sentiment.

arguments:

  • threshold (float, optional): Threshold for the sentiment score (from -1 to 1). Default is -0.1.

Interpretation

The sentiment score is calculated using nltk's Vader sentiment analyzer. The SentimentIntensityAnalyzer produces a sentiment score ranging from -1 to 1:

-1 represents a completely negative sentiment.

0 represents a neutral sentiment.

1 represents a completely positive sentiment.

Example:

pos_sentiment = "The book was good."

neutral_sentiment = "The plot was good, but the characters are uncompelling and the dialog is not great."

neg_sentiment = "A really bad, horrible book."

threshold = -0.1

Results:

pos_sentiment -> Passed , Score = 0.44

neutral_sentiment -> Failed, Score = -0.70

neg_sentiment -> Failed = -0.82

Code Example:

`
pos_sentiment = "The book was good."
neutral_sentiment = "The plot was good, but the characters are uncompelling and the dialog is not great."
neg_sentiment = "A really bad, horrible book."
evaluator.add_test(
    test_names=["sentiment_guardrail"],
    data={
        "prompt": pos_sentiment
    }
    ).run()

evaluator.print_results()

Last updated