From bc3b45e5756d50109ba0e97811cf5f1dc91ba6eb Mon Sep 17 00:00:00 2001 From: Tim Sweeney Date: Wed, 8 Jan 2025 08:43:49 -0800 Subject: [PATCH 1/4] init --- .../evaluation/guardrails_and_monitors.md | 44 +++++ docs/notebooks/scorers_as_guardrails.ipynb | 160 ++++++++++++++++++ docs/sidebars.ts | 2 +- 3 files changed, 205 insertions(+), 1 deletion(-) create mode 100644 docs/docs/guides/evaluation/guardrails_and_monitors.md create mode 100644 docs/notebooks/scorers_as_guardrails.ipynb diff --git a/docs/docs/guides/evaluation/guardrails_and_monitors.md b/docs/docs/guides/evaluation/guardrails_and_monitors.md new file mode 100644 index 000000000000..ce80fb968405 --- /dev/null +++ b/docs/docs/guides/evaluation/guardrails_and_monitors.md @@ -0,0 +1,44 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Guardrails and Monitors + +In order to prevent your LLM from generating harmful or inappropriate content, you can set guardrails and monitors using Weave. + +## Core Concepts + +Everything is built around the concept of a `Scorer`. A `Scorer` is an instance of a sublcass of the `Scorer` class - particularly one that exposes a `score` method. See [Evaluation Metrics](./scorers.md) for more information. + +### Monitors +Now, many times you will want to apply a Scorer directly after calling an Op. This can be achieved by using the `apply_scorer` method on the `Call` object. + +```python +res, call = op.call(user_input) +# optionally subsample to 25% +if random.random() < 0.25: + await call.apply_scorer(scorer) +``` + +This will log the score to Weave which can be viewed and analyzed in the UI. + +:::info + +Note that this style of Monitor will run the scoring function on the same machine as the call. This might not be desirable in all production environments. Coming soon will be the ability to apply scorers as monitors that run on W&B Weave's servers. + +::: + +### Guardrails + +Guardrails are a way to prevent the LLM from generating harmful or inappropriate content. In Weave, we use the same technique as monitors to apply a Scorer, but in addition to logging the score, we also modify the application logic based on the scorer output + +```python +res, call = op.call(user_input) +scorer_res = await call.apply_scorer(guardrail) +if scorer_res.score < 0.5: + # Do something +else: + # Do something else +``` + + + diff --git a/docs/notebooks/scorers_as_guardrails.ipynb b/docs/notebooks/scorers_as_guardrails.ipynb new file mode 100644 index 000000000000..8bd7b43fc22a --- /dev/null +++ b/docs/notebooks/scorers_as_guardrails.ipynb @@ -0,0 +1,160 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-EauaASOOUsB" + }, + "source": [ + "# Scorers as Guardrails\n", + "\n", + "Weave Scorers are special classes with a `score` method that can evaluate the performance of a call. They can range from quite simple rules to complex LLMs as judges. \n", + "\n", + "In this notebook, we will explore how to use Scorers as guardrails to prevent your LLM from generating harmful or inappropriate content.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "RJcDCJWWShcZ", + "outputId": "cace015b-dcaf-4bef-a105-2a62a2361e29" + }, + "outputs": [], + "source": [ + "%pip install weave --quiet" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "id": "oKawLdN3SmJG" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Logged in as Weights & Biases user: timssweeney.\n", + "View Weave data at https://wandb.ai/timssweeney/scorers-as-guardrails/weave\n", + "🍩 https://wandb.ai/timssweeney/scorers-as-guardrails/r/call/019441d9-b322-7fe1-befc-03f10623326c\n", + "The prediction for 'Please make a prediction' is: Certainly!\n", + "Call(_op_name=, trace_id='019441d9-b321-7d62-bbad-faab27aca2b5', project_id='timssweeney/scorers-as-guardrails', parent_id=None, inputs={'input': 'Please make a prediction'}, id='019441d9-b322-7fe1-befc-03f10623326c', output='Certainly!', exception=None, summary={}, _display_name=None, attributes=AttributesDict({'weave': {'client_version': '0.51.28-dev0', 'source': 'python-sdk', 'os_name': 'Darwin', 'os_version': 'Darwin Kernel Version 23.6.0: Fri Nov 15 15:13:15 PST 2024; root:xnu-10063.141.1.702.7~1/RELEASE_ARM64_T6000', 'os_release': '23.6.0', 'sys_version': '3.10.8 (main, Dec 5 2022, 18:10:41) [Clang 14.0.0 (clang-1400.0.29.202)]'}}), started_at=None, ended_at=datetime.datetime(2025, 1, 7, 17, 39, 33, 794325, tzinfo=datetime.timezone.utc), deleted_at=None, _children=[], _feedback=None)\n", + "Certainly!\n", + "🍩 https://wandb.ai/timssweeney/scorers-as-guardrails/r/call/019441d9-b329-7d21-9dfb-6996730f9209\n", + "The results of the score are: ApplyScorerSuccess(result=False, score_call=Call(_op_name=, trace_id='019441d9-b329-7d21-9dfb-698b4c4bb903', project_id='timssweeney/scorers-as-guardrails', parent_id=None, inputs={'self': ObjectRef(entity='timssweeney', project='scorers-as-guardrails', name='Apology-Checker', _digest='7HojDvIDVc788WyJAr7b0nQppAkGNLhzsT3DIV9d74A', _extra=()), 'output': 'Certainly!'}, id='019441d9-b329-7d21-9dfb-6996730f9209', output=False, exception=None, summary={}, _display_name=None, attributes=AttributesDict({'weave': {'client_version': '0.51.28-dev0', 'source': 'python-sdk', 'os_name': 'Darwin', 'os_version': 'Darwin Kernel Version 23.6.0: Fri Nov 15 15:13:15 PST 2024; root:xnu-10063.141.1.702.7~1/RELEASE_ARM64_T6000', 'os_release': '23.6.0', 'sys_version': '3.10.8 (main, Dec 5 2022, 18:10:41) [Clang 14.0.0 (clang-1400.0.29.202)]'}}), started_at=None, ended_at=datetime.datetime(2025, 1, 7, 17, 39, 33, 802125, tzinfo=datetime.timezone.utc), deleted_at=None, _children=[], _feedback=None))\n", + "🍩 https://wandb.ai/timssweeney/scorers-as-guardrails/r/call/019441d9-b764-7961-8dd2-4d7c936e6f60\n", + "Certainly!\n", + "🍩 https://wandb.ai/timssweeney/scorers-as-guardrails/r/call/019441d9-b766-7c72-b74f-4c9ed74bb921\n", + "The prediction for 'Please make a prediction' (Certainly!) is safe\n", + "🍩 https://wandb.ai/timssweeney/scorers-as-guardrails/r/call/019441d9-b767-7843-9349-31e585535893\n", + "I'm sorry, I can't do that.\n", + "🍩 https://wandb.ai/timssweeney/scorers-as-guardrails/r/call/019441d9-b769-7ff1-8c8a-d5bbdb1de3e0\n", + "The prediction for 'Please make a prediction with a test' (I'm sorry, I can't do that.) is NOT safe\n" + ] + } + ], + "source": [ + "import weave\n", + "\n", + "weave.init(\"scorers-as-guardrails\")\n", + "\n", + "\n", + "# First, we define a very simple scorer that checks if the model output contains any specific words.\n", + "class WordMatcher(weave.Scorer):\n", + " words: list[str]\n", + " case_sensitive: bool = False\n", + "\n", + " @weave.op\n", + " def score(self, output: str) -> float:\n", + " print(output)\n", + " for word in self.words:\n", + " if self.case_sensitive:\n", + " if word in output:\n", + " return True\n", + " else:\n", + " if word.lower() in output.lower():\n", + " return True\n", + " return False\n", + "\n", + "\n", + "# Next we define a function that makes a prediction\n", + "@weave.op\n", + "def make_prediction(input: str) -> str:\n", + " \"\"\"Dummy function that makes a prediction\"\"\"\n", + " if \"test\" in input:\n", + " return \"I'm sorry, I can't do that.\"\n", + " else:\n", + " return \"Certainly!\"\n", + "\n", + "\n", + "# Next we call the op using the `call` method in order to return\n", + "# a Call object.\n", + "prediction, weave_call = make_prediction.call(\"Please make a prediction\")\n", + "print(f\"The prediction for 'Please make a prediction' is: {prediction}\")\n", + "\n", + "# Next, let's construct a scorer that checks if the prediction contains the word \"sorry\"\n", + "# We will name the scorer \"Apology Checker\" which will show up as the name of the score\n", + "# associated with the call.\n", + "scorer = WordMatcher(name=\"Apology Checker\", words=[\"sorry\"])\n", + "\n", + "# Now we can apply the scorer to the prediction\n", + "score_results = await weave_call.apply_scorer(scorer)\n", + "print(f\"The results of the score are: {score_results}\")\n", + "\n", + "# In a real-world scenario, we would use the score results to determine if the prediction is safe\n", + "# and possibly modify the control flow of the program based on the score.\n", + "for example_input in [\n", + " \"Please make a prediction\",\n", + " \"Please make a prediction with a test\",\n", + "]:\n", + " prediction, weave_call = make_prediction.call(example_input)\n", + " score_results = await weave_call.apply_scorer(scorer)\n", + " if score_results.result:\n", + " print(f\"The prediction for '{example_input}' ({prediction}) is NOT safe\")\n", + " else:\n", + " print(f\"The prediction for '{example_input}' ({prediction}) is safe\")" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.8" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/docs/sidebars.ts b/docs/sidebars.ts index 447e26e44bbb..a0a7cd01e276 100644 --- a/docs/sidebars.ts +++ b/docs/sidebars.ts @@ -60,7 +60,7 @@ const sidebars: SidebarsConfig = { collapsed: false, label: "Evaluation", link: { type: "doc", id: "guides/core-types/evaluations" }, - items: ["guides/evaluation/scorers"], + items: ["guides/evaluation/scorers", "guides/evaluation/guardrails_and_monitors"], }, "guides/core-types/prompts", "guides/core-types/models", From 732231273acc82fb18086f126fc059d36b362b62 Mon Sep 17 00:00:00 2001 From: Tim Sweeney Date: Fri, 10 Jan 2025 12:49:48 -0800 Subject: [PATCH 2/4] Little fix --- .../evaluation/guardrails_and_monitors.md | 137 +++++++++++++++--- docs/static/img/guardrails_scorers.png | Bin 0 -> 172914 bytes 2 files changed, 118 insertions(+), 19 deletions(-) create mode 100644 docs/static/img/guardrails_scorers.png diff --git a/docs/docs/guides/evaluation/guardrails_and_monitors.md b/docs/docs/guides/evaluation/guardrails_and_monitors.md index ce80fb968405..81105258ad13 100644 --- a/docs/docs/guides/evaluation/guardrails_and_monitors.md +++ b/docs/docs/guides/evaluation/guardrails_and_monitors.md @@ -3,42 +3,141 @@ import TabItem from '@theme/TabItem'; # Guardrails and Monitors -In order to prevent your LLM from generating harmful or inappropriate content, you can set guardrails and monitors using Weave. +![Feedback](./../../../static/img/guardrails_scorers.png) + +Weave provides a robust framework for implementing safety controls and monitoring systems in LLM applications through a unified scoring system. This guide explains how to leverage Scorers as both guardrails for active intervention and monitors for passive evaluation in production environments. ## Core Concepts -Everything is built around the concept of a `Scorer`. A `Scorer` is an instance of a sublcass of the `Scorer` class - particularly one that exposes a `score` method. See [Evaluation Metrics](./scorers.md) for more information. +The foundation of Weave's evaluation system is the `Scorer` class. This abstract base class defines a scoring interface through its `score` method, which concrete implementations use to provide specific evaluation metrics. For a comprehensive overview of available metrics and custom scorer implementation, see [Evaluation Metrics](./scorers.md). + +Here's a basic example of a custom scorer: + +```python +class MyScorer(Scorer): + def score(self, result: str) -> float: + """ + Evaluate the given result and return a score between 0 and 1. + + Args: + result: The LLM-generated content to evaluate + + Returns: + float: Score indicating quality/safety (0 = fail, 1 = pass) + """ + return 0.8 # Example score +``` + +### Applying Scorers + +Scorers are applied to operations using the `apply_scorer` method, which returns an `ApplyScorerResult`: + +```python +@dataclass +class ApplyScorerSuccess: + result: Any # The original operation result + score_call: Call # The scoring operation call object +``` + +Basic scorer application: + +```python +# Get both operation result and Call object +result, call = op.call(user_input) + +# Apply scorer and get evaluation results +evaluation = await call.apply_scorer(scorer) +``` + +:::important +Always use `op.call(user_input)` rather than direct invocation (`op(user_input)`) when working with scorers. This method returns both the operation result and a `Call` object required for scorer application. +::: + +## Guardrails -### Monitors -Now, many times you will want to apply a Scorer directly after calling an Op. This can be achieved by using the `apply_scorer` method on the `Call` object. +Guardrails provide active safety mechanisms by evaluating LLM outputs in real-time and intervening based on scorer results. They are essential for preventing inappropriate or harmful content generation in production systems. + +### Implementation ```python -res, call = op.call(user_input) -# optionally subsample to 25% -if random.random() < 0.25: - await call.apply_scorer(scorer) +async def process_with_guardrail(user_input: str) -> str: + """ + Process user input with safety guardrails. + + Args: + user_input: The user's input to process + + Returns: + str: Processed result if guardrail passes, fallback response if it fails + """ + result, call = op.call(user_input) + evaluation = await call.apply_scorer(guardrail) + + if evaluation.score < 0.5: + return handle_failed_guardrail(result) + return result ``` -This will log the score to Weave which can be viewed and analyzed in the UI. +## Monitors + +While guardrails provide active intervention, monitors offer passive evaluation and tracking of LLM operations. They are crucial for long-term quality assurance and system improvement. -:::info +### Implementation -Note that this style of Monitor will run the scoring function on the same machine as the call. This might not be desirable in all production environments. Coming soon will be the ability to apply scorers as monitors that run on W&B Weave's servers. +```python +async def monitored_operation(user_input: str, sampling_rate: float = 0.25) -> str: + """ + Execute operation with monitoring. + + Args: + user_input: The input to process + sampling_rate: Percentage of operations to monitor (0.0 to 1.0) + + Returns: + str: Operation result + """ + result, call = op.call(user_input) + + # Apply monitoring based on sampling rate + if random.random() < sampling_rate: + await call.apply_scorer(scorer) + + return result +``` +:::caution Performance Considerations +Scorer evaluations execute synchronously on the same machine as the operation. For high-throughput production environments, consider adjusting sampling rates based on load. Weave will soon support server-side scoring for high-throughput applications. ::: -### Guardrails +## Analysis and Observability + +### Accessing Scorer Results + +All scorer results are automatically logged as Feedback records in Weave, accessible through multiple interfaces: + +1. **UI Dashboard**: Access detailed scoring history in the Call details page +2. **Call Tables**: Filter and analyze scores across operations +3. **Programmatic Access**: Query results through API endpoints -Guardrails are a way to prevent the LLM from generating harmful or inappropriate content. In Weave, we use the same technique as monitors to apply a Scorer, but in addition to logging the score, we also modify the application logic based on the scorer output +![Feedback](./../../../static/img/guardrails_scorers.png) +### Data Access Examples + +#### HTTP API ```python -res, call = op.call(user_input) -scorer_res = await call.apply_scorer(guardrail) -if scorer_res.score < 0.5: - # Do something -else: - # Do something else +calls = client.server.calls_query_stream({ + # ... your filters + "include_feedback": True, # Include all scorer results +}) ``` +#### Python SDK +```python +# Retrieve comprehensive feedback data for a specific call +call = client.get_call(call_id) +feedback_data = call.feedback +``` +## Next Steps +- Deep dive into [Evaluation Metrics](./scorers.md) diff --git a/docs/static/img/guardrails_scorers.png b/docs/static/img/guardrails_scorers.png new file mode 100644 index 0000000000000000000000000000000000000000..d92cec46b4add4d8831983d8f3d072f4c81cd452 GIT binary patch literal 172914 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 Date: Fri, 10 Jan 2025 13:06:06 -0800 Subject: [PATCH 3/4] Little fix --- .../evaluation/guardrails_and_monitors.md | 2 +- docs/notebooks/guardrails_example.py | 93 ++++++++++ docs/notebooks/scorers_as_guardrails.ipynb | 173 +++++++++++------- 3 files changed, 202 insertions(+), 66 deletions(-) create mode 100644 docs/notebooks/guardrails_example.py diff --git a/docs/docs/guides/evaluation/guardrails_and_monitors.md b/docs/docs/guides/evaluation/guardrails_and_monitors.md index 81105258ad13..415b4efb4db2 100644 --- a/docs/docs/guides/evaluation/guardrails_and_monitors.md +++ b/docs/docs/guides/evaluation/guardrails_and_monitors.md @@ -15,7 +15,7 @@ Here's a basic example of a custom scorer: ```python class MyScorer(Scorer): - def score(self, result: str) -> float: + def score(self, output: str) -> float: """ Evaluate the given result and return a score between 0 and 1. diff --git a/docs/notebooks/guardrails_example.py b/docs/notebooks/guardrails_example.py new file mode 100644 index 000000000000..a448feafbbaf --- /dev/null +++ b/docs/notebooks/guardrails_example.py @@ -0,0 +1,93 @@ +""" +Example demonstrating how to implement guardrails in Weave. +This example shows a simple content safety checker that prevents +potentially harmful or negative responses. +""" + +import weave + +# Initialize Weave with a descriptive project name +weave.init("content-safety-guardrails") + + +class ContentSafetyScorer(weave.Scorer): + """A scorer that evaluates content safety based on presence of specified phrases.""" + + unsafe_phrases: list[str] + case_sensitive: bool = False + + @weave.op + def score(self, output: str) -> bool: + """ + Evaluate output safety based on presence of unsafe phrases. + + Args: + output: The text output to evaluate + + Returns: + bool: True if output is safe, False if unsafe + """ + normalized_output = output if self.case_sensitive else output.lower() + + for phrase in self.unsafe_phrases: + normalized_phrase = phrase if self.case_sensitive else phrase.lower() + if normalized_phrase in normalized_output: + return False + return True + + +@weave.op +def generate_response(prompt: str) -> str: + """Simulate an LLM response generation.""" + if "test" in prompt.lower(): + return "I'm sorry, I cannot process that request." + elif "help" in prompt.lower(): + return "I'd be happy to help you with that!" + else: + return "Here's what you requested: " + prompt + + +async def process_with_guardrail(prompt: str) -> str: + """ + Process user input with content safety guardrail. + Returns the response if safe, or a fallback message if unsafe. + """ + # Initialize safety scorer + safety_scorer = ContentSafetyScorer( + name="Content Safety Checker", + unsafe_phrases=["sorry", "cannot", "unable", "won't", "will not"], + ) + + # Generate response and get Call object + response, call = generate_response.call(prompt) + + # Apply safety scoring + evaluation = await call.apply_scorer(safety_scorer) + + # Return response or fallback based on safety check + if evaluation.result: + return response + else: + return "I cannot provide that response." + + +async def main(): + """Example usage of the guardrail system.""" + test_prompts = [ + "Please help me with my homework", + "Can you run a test for me?", + "Tell me a joke", + ] + + print("Testing content safety guardrails:\n") + + for prompt in test_prompts: + print(f"Input: '{prompt}'") + response = await process_with_guardrail(prompt) + print(f"Response: {response}\n") + + +if __name__ == "__main__": + import asyncio + + asyncio.run(main()) diff --git a/docs/notebooks/scorers_as_guardrails.ipynb b/docs/notebooks/scorers_as_guardrails.ipynb index 8bd7b43fc22a..ffd717739464 100644 --- a/docs/notebooks/scorers_as_guardrails.ipynb +++ b/docs/notebooks/scorers_as_guardrails.ipynb @@ -43,7 +43,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": { "id": "oKawLdN3SmJG" }, @@ -53,84 +53,127 @@ "output_type": "stream", "text": [ "Logged in as Weights & Biases user: timssweeney.\n", - "View Weave data at https://wandb.ai/timssweeney/scorers-as-guardrails/weave\n", - "🍩 https://wandb.ai/timssweeney/scorers-as-guardrails/r/call/019441d9-b322-7fe1-befc-03f10623326c\n", - "The prediction for 'Please make a prediction' is: Certainly!\n", - "Call(_op_name=, trace_id='019441d9-b321-7d62-bbad-faab27aca2b5', project_id='timssweeney/scorers-as-guardrails', parent_id=None, inputs={'input': 'Please make a prediction'}, id='019441d9-b322-7fe1-befc-03f10623326c', output='Certainly!', exception=None, summary={}, _display_name=None, attributes=AttributesDict({'weave': {'client_version': '0.51.28-dev0', 'source': 'python-sdk', 'os_name': 'Darwin', 'os_version': 'Darwin Kernel Version 23.6.0: Fri Nov 15 15:13:15 PST 2024; root:xnu-10063.141.1.702.7~1/RELEASE_ARM64_T6000', 'os_release': '23.6.0', 'sys_version': '3.10.8 (main, Dec 5 2022, 18:10:41) [Clang 14.0.0 (clang-1400.0.29.202)]'}}), started_at=None, ended_at=datetime.datetime(2025, 1, 7, 17, 39, 33, 794325, tzinfo=datetime.timezone.utc), deleted_at=None, _children=[], _feedback=None)\n", - "Certainly!\n", - "🍩 https://wandb.ai/timssweeney/scorers-as-guardrails/r/call/019441d9-b329-7d21-9dfb-6996730f9209\n", - "The results of the score are: ApplyScorerSuccess(result=False, score_call=Call(_op_name=, trace_id='019441d9-b329-7d21-9dfb-698b4c4bb903', project_id='timssweeney/scorers-as-guardrails', parent_id=None, inputs={'self': ObjectRef(entity='timssweeney', project='scorers-as-guardrails', name='Apology-Checker', _digest='7HojDvIDVc788WyJAr7b0nQppAkGNLhzsT3DIV9d74A', _extra=()), 'output': 'Certainly!'}, id='019441d9-b329-7d21-9dfb-6996730f9209', output=False, exception=None, summary={}, _display_name=None, attributes=AttributesDict({'weave': {'client_version': '0.51.28-dev0', 'source': 'python-sdk', 'os_name': 'Darwin', 'os_version': 'Darwin Kernel Version 23.6.0: Fri Nov 15 15:13:15 PST 2024; root:xnu-10063.141.1.702.7~1/RELEASE_ARM64_T6000', 'os_release': '23.6.0', 'sys_version': '3.10.8 (main, Dec 5 2022, 18:10:41) [Clang 14.0.0 (clang-1400.0.29.202)]'}}), started_at=None, ended_at=datetime.datetime(2025, 1, 7, 17, 39, 33, 802125, tzinfo=datetime.timezone.utc), deleted_at=None, _children=[], _feedback=None))\n", - "🍩 https://wandb.ai/timssweeney/scorers-as-guardrails/r/call/019441d9-b764-7961-8dd2-4d7c936e6f60\n", - "Certainly!\n", - "🍩 https://wandb.ai/timssweeney/scorers-as-guardrails/r/call/019441d9-b766-7c72-b74f-4c9ed74bb921\n", - "The prediction for 'Please make a prediction' (Certainly!) is safe\n", - "🍩 https://wandb.ai/timssweeney/scorers-as-guardrails/r/call/019441d9-b767-7843-9349-31e585535893\n", - "I'm sorry, I can't do that.\n", - "🍩 https://wandb.ai/timssweeney/scorers-as-guardrails/r/call/019441d9-b769-7ff1-8c8a-d5bbdb1de3e0\n", - "The prediction for 'Please make a prediction with a test' (I'm sorry, I can't do that.) is NOT safe\n" + "View Weave data at https://wandb.ai/timssweeney/content-safety-guardrails/weave\n" ] } ], "source": [ + "\"\"\"\n", + "Example demonstrating how to implement guardrails in Weave.\n", + "This example shows a simple content safety checker that prevents\n", + "potentially harmful or negative responses.\n", + "\"\"\"\n", + "\n", "import weave\n", "\n", - "weave.init(\"scorers-as-guardrails\")\n", + "# Initialize Weave with a descriptive project name\n", + "weave.init(\"content-safety-guardrails\")\n", + "\n", "\n", + "class ContentSafetyScorer(weave.Scorer):\n", + " \"\"\"A scorer that evaluates content safety based on presence of specified phrases.\"\"\"\n", "\n", - "# First, we define a very simple scorer that checks if the model output contains any specific words.\n", - "class WordMatcher(weave.Scorer):\n", - " words: list[str]\n", + " unsafe_phrases: list[str]\n", " case_sensitive: bool = False\n", "\n", " @weave.op\n", - " def score(self, output: str) -> float:\n", - " print(output)\n", - " for word in self.words:\n", - " if self.case_sensitive:\n", - " if word in output:\n", - " return True\n", - " else:\n", - " if word.lower() in output.lower():\n", - " return True\n", - " return False\n", - "\n", - "\n", - "# Next we define a function that makes a prediction\n", + " def score(self, output: str) -> bool:\n", + " \"\"\"\n", + " Evaluate output safety based on presence of unsafe phrases.\n", + "\n", + " Args:\n", + " output: The text output to evaluate\n", + "\n", + " Returns:\n", + " bool: True if output is safe, False if unsafe\n", + " \"\"\"\n", + " normalized_output = output if self.case_sensitive else output.lower()\n", + "\n", + " for phrase in self.unsafe_phrases:\n", + " normalized_phrase = phrase if self.case_sensitive else phrase.lower()\n", + " if normalized_phrase in normalized_output:\n", + " return False\n", + " return True\n", + "\n", + "\n", "@weave.op\n", - "def make_prediction(input: str) -> str:\n", - " \"\"\"Dummy function that makes a prediction\"\"\"\n", - " if \"test\" in input:\n", - " return \"I'm sorry, I can't do that.\"\n", + "def generate_response(prompt: str) -> str:\n", + " \"\"\"Simulate an LLM response generation.\"\"\"\n", + " if \"test\" in prompt.lower():\n", + " return \"I'm sorry, I cannot process that request.\"\n", + " elif \"help\" in prompt.lower():\n", + " return \"I'd be happy to help you with that!\"\n", " else:\n", - " return \"Certainly!\"\n", - "\n", - "\n", - "# Next we call the op using the `call` method in order to return\n", - "# a Call object.\n", - "prediction, weave_call = make_prediction.call(\"Please make a prediction\")\n", - "print(f\"The prediction for 'Please make a prediction' is: {prediction}\")\n", - "\n", - "# Next, let's construct a scorer that checks if the prediction contains the word \"sorry\"\n", - "# We will name the scorer \"Apology Checker\" which will show up as the name of the score\n", - "# associated with the call.\n", - "scorer = WordMatcher(name=\"Apology Checker\", words=[\"sorry\"])\n", - "\n", - "# Now we can apply the scorer to the prediction\n", - "score_results = await weave_call.apply_scorer(scorer)\n", - "print(f\"The results of the score are: {score_results}\")\n", - "\n", - "# In a real-world scenario, we would use the score results to determine if the prediction is safe\n", - "# and possibly modify the control flow of the program based on the score.\n", - "for example_input in [\n", - " \"Please make a prediction\",\n", - " \"Please make a prediction with a test\",\n", - "]:\n", - " prediction, weave_call = make_prediction.call(example_input)\n", - " score_results = await weave_call.apply_scorer(scorer)\n", - " if score_results.result:\n", - " print(f\"The prediction for '{example_input}' ({prediction}) is NOT safe\")\n", + " return \"Here's what you requested: \" + prompt\n", + "\n", + "\n", + "async def process_with_guardrail(prompt: str) -> str:\n", + " \"\"\"\n", + " Process user input with content safety guardrail.\n", + " Returns the response if safe, or a fallback message if unsafe.\n", + " \"\"\"\n", + " # Initialize safety scorer\n", + " safety_scorer = ContentSafetyScorer(\n", + " name=\"Content Safety Checker\",\n", + " unsafe_phrases=[\"sorry\", \"cannot\", \"unable\", \"won't\", \"will not\"],\n", + " )\n", + "\n", + " # Generate response and get Call object\n", + " response, call = generate_response.call(prompt)\n", + "\n", + " # Apply safety scoring\n", + " evaluation = await call.apply_scorer(safety_scorer)\n", + "\n", + " # Return response or fallback based on safety check\n", + " if evaluation.result:\n", + " return response\n", " else:\n", - " print(f\"The prediction for '{example_input}' ({prediction}) is safe\")" + " return \"I cannot provide that response.\"" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Testing content safety guardrails:\n", + "\n", + "Input: 'Please help me with my homework'\n", + "🍩 https://wandb.ai/timssweeney/content-safety-guardrails/r/call/01945209-4b69-7481-86d2-a15e08dac27e\n", + "🍩 https://wandb.ai/timssweeney/content-safety-guardrails/r/call/01945209-4b70-7241-aafb-774513b4fc3d\n", + "Response: I'd be happy to help you with that!\n", + "\n", + "Input: 'Can you run a test for me?'\n", + "🍩 https://wandb.ai/timssweeney/content-safety-guardrails/r/call/01945209-51bf-7c01-a9b6-958774440844\n", + "🍩 https://wandb.ai/timssweeney/content-safety-guardrails/r/call/01945209-51c4-7080-9055-b835ac7a1862\n", + "Response: I cannot provide that response.\n", + "\n", + "Input: 'Tell me a joke'\n", + "🍩 https://wandb.ai/timssweeney/content-safety-guardrails/r/call/01945209-53bb-7fb3-a8e6-76987c34114d\n", + "🍩 https://wandb.ai/timssweeney/content-safety-guardrails/r/call/01945209-53c5-75e0-8666-c97abddc9fdc\n", + "Response: Here's what you requested: Tell me a joke\n", + "\n" + ] + } + ], + "source": [ + "\"\"\"Example usage of the guardrail system.\"\"\"\n", + "test_prompts = [\n", + " \"Please help me with my homework\",\n", + " \"Can you run a test for me?\",\n", + " \"Tell me a joke\",\n", + "]\n", + "\n", + "print(\"Testing content safety guardrails:\\n\")\n", + "\n", + "for prompt in test_prompts:\n", + " print(f\"Input: '{prompt}'\")\n", + " response = await process_with_guardrail(prompt)\n", + " print(f\"Response: {response}\\n\")" ] } ], From 5e67a55cce727273a63787d0651603bcccb85563 Mon Sep 17 00:00:00 2001 From: Tim Sweeney Date: Mon, 13 Jan 2025 12:27:29 -0800 Subject: [PATCH 4/4] Little fix --- .../evaluation/guardrails_and_monitors.md | 2 +- docs/notebooks/guardrails_example.py | 93 ------------------- 2 files changed, 1 insertion(+), 94 deletions(-) delete mode 100644 docs/notebooks/guardrails_example.py diff --git a/docs/docs/guides/evaluation/guardrails_and_monitors.md b/docs/docs/guides/evaluation/guardrails_and_monitors.md index 415b4efb4db2..bf526554b2d3 100644 --- a/docs/docs/guides/evaluation/guardrails_and_monitors.md +++ b/docs/docs/guides/evaluation/guardrails_and_monitors.md @@ -5,7 +5,7 @@ import TabItem from '@theme/TabItem'; ![Feedback](./../../../static/img/guardrails_scorers.png) -Weave provides a robust framework for implementing safety controls and monitoring systems in LLM applications through a unified scoring system. This guide explains how to leverage Scorers as both guardrails for active intervention and monitors for passive evaluation in production environments. +Weave provides a robust framework for implementing safety controls and monitoring systems in LLM applications through a unified scoring system. This guide explains how to leverage scorers as both guardrails for active intervention and monitors for passive evaluation in production environments. ## Core Concepts diff --git a/docs/notebooks/guardrails_example.py b/docs/notebooks/guardrails_example.py deleted file mode 100644 index a448feafbbaf..000000000000 --- a/docs/notebooks/guardrails_example.py +++ /dev/null @@ -1,93 +0,0 @@ -""" -Example demonstrating how to implement guardrails in Weave. -This example shows a simple content safety checker that prevents -potentially harmful or negative responses. -""" - -import weave - -# Initialize Weave with a descriptive project name -weave.init("content-safety-guardrails") - - -class ContentSafetyScorer(weave.Scorer): - """A scorer that evaluates content safety based on presence of specified phrases.""" - - unsafe_phrases: list[str] - case_sensitive: bool = False - - @weave.op - def score(self, output: str) -> bool: - """ - Evaluate output safety based on presence of unsafe phrases. - - Args: - output: The text output to evaluate - - Returns: - bool: True if output is safe, False if unsafe - """ - normalized_output = output if self.case_sensitive else output.lower() - - for phrase in self.unsafe_phrases: - normalized_phrase = phrase if self.case_sensitive else phrase.lower() - if normalized_phrase in normalized_output: - return False - return True - - -@weave.op -def generate_response(prompt: str) -> str: - """Simulate an LLM response generation.""" - if "test" in prompt.lower(): - return "I'm sorry, I cannot process that request." - elif "help" in prompt.lower(): - return "I'd be happy to help you with that!" - else: - return "Here's what you requested: " + prompt - - -async def process_with_guardrail(prompt: str) -> str: - """ - Process user input with content safety guardrail. - Returns the response if safe, or a fallback message if unsafe. - """ - # Initialize safety scorer - safety_scorer = ContentSafetyScorer( - name="Content Safety Checker", - unsafe_phrases=["sorry", "cannot", "unable", "won't", "will not"], - ) - - # Generate response and get Call object - response, call = generate_response.call(prompt) - - # Apply safety scoring - evaluation = await call.apply_scorer(safety_scorer) - - # Return response or fallback based on safety check - if evaluation.result: - return response - else: - return "I cannot provide that response." - - -async def main(): - """Example usage of the guardrail system.""" - test_prompts = [ - "Please help me with my homework", - "Can you run a test for me?", - "Tell me a joke", - ] - - print("Testing content safety guardrails:\n") - - for prompt in test_prompts: - print(f"Input: '{prompt}'") - response = await process_with_guardrail(prompt) - print(f"Response: {response}\n") - - -if __name__ == "__main__": - import asyncio - - asyncio.run(main())