From 06f05bb64d35705d6e798a66a9e819fab4e4a46c Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Fri, 29 Nov 2024 16:11:49 -0800 Subject: [PATCH 01/15] Adds sketch of how to use pytest This is a WIP. This shows how one might log things they don't want to fail on to a results_bag and then access them in a dataframe... --- .../src/sql_tool_example/__init__.py | 0 examples/pytest/README.md | 32 +++++++++++++++++ examples/pytest/conftest.py | 2 ++ examples/pytest/requirements.txt | 1 + examples/pytest/some_actions.py | 1 + examples/pytest/test_some_actions.py | 36 +++++++++++++++++++ 6 files changed, 72 insertions(+) create mode 100644 examples/deployment/mcp/sql-tool-example/src/sql_tool_example/__init__.py create mode 100644 examples/pytest/README.md create mode 100644 examples/pytest/conftest.py create mode 100644 examples/pytest/requirements.txt create mode 100644 examples/pytest/some_actions.py create mode 100644 examples/pytest/test_some_actions.py diff --git a/examples/deployment/mcp/sql-tool-example/src/sql_tool_example/__init__.py b/examples/deployment/mcp/sql-tool-example/src/sql_tool_example/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/examples/pytest/README.md b/examples/pytest/README.md new file mode 100644 index 00000000..42b0a98c --- /dev/null +++ b/examples/pytest/README.md @@ -0,0 +1,32 @@ +# Using Pytest to evaluate your agent / application + +An agent is a combination of LLM calls and logic. But how do we know if it's working? Well we can test & evaluate it. + +From a high level we want to test & evaluate the "micro" i.e. the LLM calls & individual bits of logic, +through to the "macro" i.e. the agent as a whole. + +We can do this with Pytest. + +## Pytest Constructs + +We use the `pytest-harvest` plugin to log what our tests are doing. This allows us to capture the results of our tests in a structured way. +This means we can then use the structure output to then evaluate our code / application / agent. + +### Logging Test Results +`results_bag` is a fixture that we can log values to from our tests. This is then captured by the `pytest-harvest` plugin. + +```python +def test_my_agent(results_bag): + results_bag.input = "my_value" + results_bag.output = "my_output" + results_bag.expected_output = "my_expected_output" +``` + +We can then access the results in the `results_bag` from the `pytest-harvest` plugin via the `module_results_df` fixture. + +```python +def test_print_results(module_results_df): + print(module_results_df.columns) # this will include "input", "output", "expected_output" + print(module_results_df.head()) # this will show the first few rows of the results + # TODO: Add more evaluation logic here or log the results to a file, etc. +``` diff --git a/examples/pytest/conftest.py b/examples/pytest/conftest.py new file mode 100644 index 00000000..a8437965 --- /dev/null +++ b/examples/pytest/conftest.py @@ -0,0 +1,2 @@ +# examples/pytest/conftest.py +# TODO: utility functions for pytest fixtures diff --git a/examples/pytest/requirements.txt b/examples/pytest/requirements.txt new file mode 100644 index 00000000..1224a122 --- /dev/null +++ b/examples/pytest/requirements.txt @@ -0,0 +1 @@ +pytest-harvest diff --git a/examples/pytest/some_actions.py b/examples/pytest/some_actions.py new file mode 100644 index 00000000..96570b2e --- /dev/null +++ b/examples/pytest/some_actions.py @@ -0,0 +1 @@ +# TODO: create some code to test diff --git a/examples/pytest/test_some_actions.py b/examples/pytest/test_some_actions.py new file mode 100644 index 00000000..3833b1a1 --- /dev/null +++ b/examples/pytest/test_some_actions.py @@ -0,0 +1,36 @@ +import pytest + + +# examples/pytest/test_example.py +def test_example(result_collector): + result_collector.append("Test result 1") + result_collector.append("Test result 2") + assert True + + +@pytest.mark.parametrize("sample_idx", range(3)) +def test_1(sample_idx, results_bag): + results_bag.input = "..." + results_bag.actual = "foo bar" + results_bag.expected = "foo bar baz" + results_bag.cosine = 0.8 + results_bag.jaccard = 0.6 + results_bag.llm = sample_idx + + +def test_2(results_bag): + results_bag.input = "..." + results_bag.actual = "foo" + results_bag.expected = "foo bar baz" + results_bag.cosine = 0.3 + results_bag.jaccard = 0.2 + print("hi") + assert False + + +def test_print_results(module_results_df): + print(module_results_df.columns) + print(module_results_df.head()) + # save to CSV + # upload to google sheets + # compute statistics From 406aba43c5055806c08d473ca6e4c903bcc3b676 Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Sun, 1 Dec 2024 22:27:52 -0800 Subject: [PATCH 02/15] Remove file --- .../mcp/sql-tool-example/src/sql_tool_example/__init__.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 examples/deployment/mcp/sql-tool-example/src/sql_tool_example/__init__.py diff --git a/examples/deployment/mcp/sql-tool-example/src/sql_tool_example/__init__.py b/examples/deployment/mcp/sql-tool-example/src/sql_tool_example/__init__.py deleted file mode 100644 index e69de29b..00000000 From 027de9980d860d6f7fd68734493d5fb5a0d69496 Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Sun, 1 Dec 2024 23:06:48 -0800 Subject: [PATCH 03/15] Adds more to pytest README --- examples/pytest/README.md | 105 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/examples/pytest/README.md b/examples/pytest/README.md index 42b0a98c..f279d636 100644 --- a/examples/pytest/README.md +++ b/examples/pytest/README.md @@ -30,3 +30,108 @@ def test_print_results(module_results_df): print(module_results_df.head()) # this will show the first few rows of the results # TODO: Add more evaluation logic here or log the results to a file, etc. ``` + +### Parameterizing Tests +We can also parameterize tests to run the same test with different inputs. + +```python +import pytest + +@pytest.mark.parametrize( + "input, expected_output", + [ + ("input1", "output1"), + ("input2", "output2"), + ], + ids=["test1", "test2"] # these are the test names for the above inputs +) +def test_my_agent(input, expected_output, results_bag): + results_bag.input = input + results_bag.expected_output = expected_output + results_bag.output = my_agent(input) # your code here + # can include static measures / evaluations here + results_bag.success = results_bag.output == results_bag.expected_output +``` + +### Using Burr's Pytest Hook +With Burr you can curate test cases from real application runs. You can then use these test cases in your Pytest suite. +Burr has a hook that enables you to curate a file with the input state and expected output state for an entire run, +or a single action. See the [Burr test case creation documentation](https://burr.dagworks.io/examples/guardrails/creating_tests/) for more +details on how. Here we show you how you can combine this with getting results: + +```python +import pytest +from our_agent_application import prompt_for_more + +from burr.core import state + +# the following is required to run file based tests +from burr.testing import pytest_generate_tests # noqa: F401 + +@pytest.mark.file_name("prompt_for_more.json") # our fixture file with the expected inputs and outputs +def test_an_agent_action(input_state, expected_state, results_bag): + """Function for testing an individual action of our agent.""" + input_state = state.State.deserialize(input_state) + expected_state = state.State.deserialize(expected_state) + _, output_state = prompt_for_more(input_state) # exercising an action of our agent + + results_bag.input_state = input_state + results_bag.expected_state = expected_state + results_bag.output_state = output_state + results_bag.foo = "bar" + # TODO: choose appropriate way to evaluate the output + # e.g. exact match, fuzzy match, LLM grade, etc. + # this is exact match here on all values in state + exact_match = output_state == expected_state + # for output that varies, you can do something like this + # assert 'some value' in output_state["response"]["content"] + # or, have an LLM Grade things -- you need to create the llm_evaluator function: + # assert llm_evaluator("are these two equivalent responses. Respond with Y for yes, N for no", + # output_state["response"]["content"], expected_state["response"]["content"]) == "Y" + # store it in the results bag + results_bag.correct = exact_match + + # place any asserts at the end of the test + assert exact_match +``` +So if we want to test an entire agent, we can use the same approach, but instead rely on the input and output +state being the entire state of the agent at the start and end of the run. + +```python +import pytest +from our_agent_application import agent_builder, agent_runner # some functions that build and run our agent + +from burr.core import state + +# the following is required to run file based tests +from burr.testing import pytest_generate_tests # noqa: F401 + +@pytest.mark.file_name("e2e.json") # our fixture file with the expected inputs and outputs +def test_an_agent_e2e(input_state, expected_state, results_bag): + """Function for testing an agent end-to-end.""" + input_state = state.State.deserialize(input_state) + expected_state = state.State.deserialize(expected_state) + # exercise the agent + agent = agent_builder(input_state) + output_state = agent_runner(agent) + + results_bag.input_state = input_state + results_bag.expected_state = expected_state + results_bag.output_state = output_state + results_bag.foo = "bar" + # TODO: choose appropriate way to evaluate the output + # e.g. exact match, fuzzy match, LLM grade, etc. + # this is exact match here on all values in state + exact_match = output_state == expected_state + # for output that varies, you can do something like this + # assert 'some value' in output_state["response"]["content"] + # or, have an LLM Grade things -- you need to create the llm_evaluator function: + # assert llm_evaluator("are these two equivalent responses. Respond with Y for yes, N for no", + # output_state["response"]["content"], expected_state["response"]["content"]) == "Y" + # store it in the results bag + results_bag.correct = exact_match + + # place any asserts at the end of the test + assert exact_match + +``` From cf080ea6220422c262205d9a8dec1e490dc8a125 Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Mon, 2 Dec 2024 14:01:37 -0800 Subject: [PATCH 04/15] Updates README --- examples/pytest/README.md | 89 +++++++++++++++++++++++++++----- examples/pytest/requirements.txt | 2 + 2 files changed, 78 insertions(+), 13 deletions(-) diff --git a/examples/pytest/README.md b/examples/pytest/README.md index f279d636..1860382c 100644 --- a/examples/pytest/README.md +++ b/examples/pytest/README.md @@ -1,19 +1,76 @@ -# Using Pytest to evaluate your agent / application +# Using pytest to evaluate your agent / application An agent is a combination of LLM calls and logic. But how do we know if it's working? Well we can test & evaluate it. From a high level we want to test & evaluate the "micro" i.e. the LLM calls & individual bits of logic, through to the "macro" i.e. the agent as a whole. -We can do this with Pytest. +But, the challenge with LLM calls is that you might want to "assert" on various aspects of the +output without, and not want it to fail on the first assertion failure which is standard test framework behavior. So what are you to do? -## Pytest Constructs +Well we can use some `pytest` constructs to help us with this. -We use the `pytest-harvest` plugin to log what our tests are doing. This allows us to capture the results of our tests in a structured way. -This means we can then use the structure output to then evaluate our code / application / agent. +## pytest Constructs +To start let's recap pytest quickly, then move on to how we can evaluate multiple aspects without failing on the first assertion failure. -### Logging Test Results -`results_bag` is a fixture that we can log values to from our tests. This is then captured by the `pytest-harvest` plugin. +### pytest basics +We like pytest because we think it's simpler than the unittest module python comes with. To use it you need to install it first: + +```bash +pip install pytest +``` + +Then to define a test it's just a function that starts with `test_`: + +```python +# test_my_agent.py + +def test_my_agent(): + assert my_agent("input1") == "output1" + assert my_agent("input2") == "output2" + # can have multiple asserts here - it'll fail on the first one and not run the rest +``` +Yep - no classes to deal with. Just a function that starts with `test_`. Then to run it: + +```bash +pytest test_my_agent.py +``` +Boom, you're testing! + +### Parameterizing Tests +We can also parameterize tests to run the same test with different inputs. This comes in handy as we build up +data points to evaluate our agent or parts of our agent. Each input is then an individual test that can error. Here's an example: + +```python +import pytest + +@pytest.mark.parametrize( + "input, expected_output", + [ + ("input1", "output1"), + ("input2", "output2"), + ], + ids=["test1", "test2"] # these are the test names for the above inputs +) +def test_my_agent(input, expected_output): + actual_output = my_agent(input) # your code to call your agent or part of it here + # can include static measures / evaluations here + assert actual_output == expected_output + # assert some other property of the output... +``` +What we've shown above will fail on the + +### Not failing on first assert failure / logging test results + +Here we use the `pytest-harvest` plugin to log what our tests are doing. This allows us to capture the results of our tests in a structured way without +breaking at the first asserting failure. This means we can mix and match where appropriate hard "assertions" - i.e. definitely fail, with +softer ones where we want to evaluate all aspects before making an overall pass / fail decision. We walkthrough how to do this below using a few +pytest constructs. + +`results_bag` is a fixture that we can log values to from our tests. This is useful if we don't want to fail on the first assert statement, +and instead capture a lot more. This is not native to pytest, and is why we use the `pytest-harvest` plugin to acheive this. + +To use it, you just need to install `pytest-harvest` and then you can use the `results_bag` fixture in your tests: ```python def test_my_agent(results_bag): @@ -22,17 +79,22 @@ def test_my_agent(results_bag): results_bag.expected_output = "my_expected_output" ``` -We can then access the results in the `results_bag` from the `pytest-harvest` plugin via the `module_results_df` fixture. +We can then access the results in the `results_bag` from the `pytest-harvest` plugin via the `module_results_df` fixture that +provides a pandas dataframe of the results: ```python def test_print_results(module_results_df): + # place this function at the end of the module so that way it's run last. print(module_results_df.columns) # this will include "input", "output", "expected_output" print(module_results_df.head()) # this will show the first few rows of the results # TODO: Add more evaluation logic here or log the results to a file, etc. + # assert some threshold of success, etc. ``` +This enables us to get a dataframe of all the results from our tests, and then we can evaluate them as we see fit for our use case. +E.g. we only pass tests if all the outputs are as expected, or we pass if 80% of the outputs are as expected, etc. You could +also log this to a file, or a database, etc. for further inspection and record keeping. -### Parameterizing Tests -We can also parameterize tests to run the same test with different inputs. +Note: wou can also combine `results_bag` with ``pytest.mark.parametrize`` to run the same test with different inputs and expected outputs: ```python import pytest @@ -48,13 +110,14 @@ import pytest def test_my_agent(input, expected_output, results_bag): results_bag.input = input results_bag.expected_output = expected_output - results_bag.output = my_agent(input) # your code here + results_bag.output = my_agent(input) # your code to call the agent here # can include static measures / evaluations here results_bag.success = results_bag.output == results_bag.expected_output ``` -### Using Burr's Pytest Hook -With Burr you can curate test cases from real application runs. You can then use these test cases in your Pytest suite. + +### Using Burr's pytest Hook +With Burr you can curate test cases from real application runs. You can then use these test cases in your pytest suite. Burr has a hook that enables you to curate a file with the input state and expected output state for an entire run, or a single action. See the [Burr test case creation documentation](https://burr.dagworks.io/examples/guardrails/creating_tests/) for more details on how. Here we show you how you can combine this with getting results: diff --git a/examples/pytest/requirements.txt b/examples/pytest/requirements.txt index 1224a122..1a27de18 100644 --- a/examples/pytest/requirements.txt +++ b/examples/pytest/requirements.txt @@ -1 +1,3 @@ +burr +pytest pytest-harvest From f1284114779b71c237ebaaa5683e6e8c0d14e965 Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Tue, 3 Dec 2024 16:41:42 -0800 Subject: [PATCH 05/15] Adds example to test --- examples/pytest/some_actions.py | 144 ++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) diff --git a/examples/pytest/some_actions.py b/examples/pytest/some_actions.py index 96570b2e..bb188e15 100644 --- a/examples/pytest/some_actions.py +++ b/examples/pytest/some_actions.py @@ -1 +1,145 @@ # TODO: create some code to test + +from typing import Any, Callable, Dict, Generator, List, Tuple + +import openai + +from burr import core +from burr.core import Action, ApplicationContext, GraphBuilder, State, action +from burr.core.parallelism import MapStates, RunnableGraph + +# @action(reads=["input"], writes=["response"]) +# def some_assistant_action(state: State, client: openai.Client) -> State: +# # get the input from the state +# input = state.get("input") +# # call the LLM +# response = client.chat.completions.create( +# messages=[ +# {"role": "system", "content": "You are a helpful assistant."}, +# {"role": "user", "content": input}, +# ], +# model="gpt-4o-mini", +# ) +# # update the state with the response +# return state.update(response=response.choices[0].message) +# + + +@action(reads=["audio"], writes=["transcription"]) +def transcribe_audio(state: State) -> State: + # here we fake transcription. For this example the audio is text already... + return state.update(transcription=state["audio"]) + + +@action(reads=["hypothesis", "transcription"], writes=["diagnosis"]) +def run_hypothesis(state: State) -> State: + client = openai.Client() # here for simplicity because clients and SERDE don't mix well. + hypothesis = state["hypothesis"] + transcription = state["transcription"] + prompt = ( + f"Given the following diagnosis hypothesis and medical transcription:\n\n" + f"Diagnosis hypothesis:{hypothesis}\n\n" + f"Transcription:\n```{transcription}```\n\n" + f"Answer 'yes' if you believe the hypothesis has a strong reason to hold given the content of the transcription." + f"Answer 'no' if you do not believe the hypothesis holds given the content of the transcription." + f"Answer 'unsure' if you are unsure and need more details." + ) + response = client.chat.completions.create( + messages=[ + { + "role": "system", + "content": "You are a doctor diagnosing illnesses that is methodical" + " in determining whether a diagnosis hypothesis is supported by a transcription.", + }, + {"role": "user", "content": prompt}, + ], + model="gpt-4o-mini", + ) + return state.update(diagnosis=response.choices[0].message.content) + + +class TestMultipleHypotheses(MapStates): + def action(self, state: State, inputs: Dict[str, Any]) -> Action | Callable | RunnableGraph: + return run_hypothesis + + def states( + self, state: State, context: ApplicationContext, inputs: Dict[str, Any] + ) -> Generator[State, None, None]: + # You could easily have a list_hypotheses upstream action that writes to "hypothesis" in state + # And loop through those + # This hardcodes for simplicity + for hypothesis in [ + "Common cold", + "Sprained ankle", + "Broken arm", + ]: + yield state.update(hypothesis=hypothesis) + + def reduce(self, state: State, states: Generator[State, None, None]) -> State: + all_diagnoses_outputs = [] + for _sub_state in states: + all_diagnoses_outputs.append( + {"hypothesis": _sub_state["hypothesis"], "diagnosis": _sub_state["diagnosis"]} + ) + return state.update(diagnosis_outputs=all_diagnoses_outputs) + + @property + def reads(self) -> List[str]: + return ["transcription"] + + @property + def writes(self) -> List[str]: + return ["diagnosis_outputs"] + + +@action(reads=["diagnosis_outputs"], writes=["final_diagnosis"]) +def determine_diagnosis(state: State) -> State: + # could also get an LLM to decide here, or have a human decide, etc. + possible_hypotheses = [d for d in state["diagnosis_outputs"] if d["diagnosis"].lower() == "yes"] + if len(possible_hypotheses) == 1: + return state.update(final_diagnosis=possible_hypotheses[0]["hypothesis"]) + elif len(possible_hypotheses) > 1: + return state.update( + final_diagnosis="Need further clarification. Multiple diagnoses possible." + ) + else: + return state.update(final_diagnosis="Healthy individual") + + +def run_my_agent(input_audio: str) -> Tuple[str, str]: + # we fake the input audio to be a string here rather than a waveform. + graph = ( + GraphBuilder() + .with_actions( + transcribe_audio=transcribe_audio, + hypotheses=TestMultipleHypotheses(), + determine_diagnosis=determine_diagnosis, + ) + .with_transitions( + ("transcribe_audio", "hypotheses"), + ("hypotheses", "determine_diagnosis"), + ) + .build() + ) + app = ( + core.ApplicationBuilder() + .with_graph(graph) + .with_state(**{"audio": input_audio}) + .with_entrypoint("transcribe_audio") + .build() + ) + last_action, _, agent_state = app.run( + halt_after=["determine_diagnosis"], + inputs={"audio": input_audio}, + ) + return input_audio, agent_state["final_diagnosis"] + + +if __name__ == "__main__": + print(run_my_agent("Patient exhibits mucus dripping from nostrils and coughing.")) + print(run_my_agent("Patient has a limp and is unable to flex right ankle. Ankle is swollen.")) + print( + run_my_agent( + "Patient fell off and landed on their right arm. Their right wrist is swollen, they can still move their fingers, and there is only minor pain or discomfort when the wrist is moved or touched." + ) + ) From 60277740c1c5c148332a8679cd84ffa9c9b0d8e2 Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Tue, 3 Dec 2024 23:20:58 -0800 Subject: [PATCH 06/15] Adds some tests This shows how to use pytest to test an action. TODO: - how to use burr fixture - how to test agent and use tracker --- examples/pytest/conftest.py | 27 ++++++- examples/pytest/diagnosis.png | Bin 0 -> 11796 bytes examples/pytest/some_actions.py | 28 +++---- examples/pytest/test_some_actions.py | 105 ++++++++++++++++++++++----- 4 files changed, 122 insertions(+), 38 deletions(-) create mode 100644 examples/pytest/diagnosis.png diff --git a/examples/pytest/conftest.py b/examples/pytest/conftest.py index a8437965..d2b25738 100644 --- a/examples/pytest/conftest.py +++ b/examples/pytest/conftest.py @@ -1,2 +1,25 @@ -# examples/pytest/conftest.py -# TODO: utility functions for pytest fixtures +import pytest + + +class ResultCollector: + """Example of a custom fixture that collects results from tests.""" + + def __init__(self): + self.results = [] + + def append(self, result): + self.results.append(result) + + def values(self): + return self.results + + def __str__(self): + return "\n".join(str(result) for result in self.results) + + +@pytest.fixture(scope="session") +def result_collector(): + """Fixture that collects results from tests. This is a toy example.""" + collector = ResultCollector() + yield collector + print("\nCollected Results:\n", collector) diff --git a/examples/pytest/diagnosis.png b/examples/pytest/diagnosis.png new file mode 100644 index 0000000000000000000000000000000000000000..1e37e62e41d64fc8d1f812c4e5942ba4d880a1bd GIT binary patch literal 11796 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 literal 0 HcmV?d00001 diff --git a/examples/pytest/some_actions.py b/examples/pytest/some_actions.py index bb188e15..20c3a518 100644 --- a/examples/pytest/some_actions.py +++ b/examples/pytest/some_actions.py @@ -8,22 +8,6 @@ from burr.core import Action, ApplicationContext, GraphBuilder, State, action from burr.core.parallelism import MapStates, RunnableGraph -# @action(reads=["input"], writes=["response"]) -# def some_assistant_action(state: State, client: openai.Client) -> State: -# # get the input from the state -# input = state.get("input") -# # call the LLM -# response = client.chat.completions.create( -# messages=[ -# {"role": "system", "content": "You are a helpful assistant."}, -# {"role": "user", "content": input}, -# ], -# model="gpt-4o-mini", -# ) -# # update the state with the response -# return state.update(response=response.choices[0].message) -# - @action(reads=["audio"], writes=["transcription"]) def transcribe_audio(state: State) -> State: @@ -106,7 +90,9 @@ def determine_diagnosis(state: State) -> State: return state.update(final_diagnosis="Healthy individual") -def run_my_agent(input_audio: str) -> Tuple[str, str]: +def run_my_agent( + input_audio: str, partition_key: str = None, app_id: str = None, tracking_project: str = None +) -> Tuple[str, str]: # we fake the input audio to be a string here rather than a waveform. graph = ( GraphBuilder() @@ -121,13 +107,17 @@ def run_my_agent(input_audio: str) -> Tuple[str, str]: ) .build() ) - app = ( + app_builder = ( core.ApplicationBuilder() .with_graph(graph) .with_state(**{"audio": input_audio}) .with_entrypoint("transcribe_audio") - .build() + .with_identifiers(partition_key=partition_key, app_id=app_id) ) + if tracking_project: + app_builder = app_builder.with_tracker(project=tracking_project) + app = app_builder.build() + # app.visualize("diagnosis.png", include_conditions=True, view=False, format="png") last_action, _, agent_state = app.run( halt_after=["determine_diagnosis"], inputs={"audio": input_audio}, diff --git a/examples/pytest/test_some_actions.py b/examples/pytest/test_some_actions.py index 3833b1a1..f32b881f 100644 --- a/examples/pytest/test_some_actions.py +++ b/examples/pytest/test_some_actions.py @@ -1,36 +1,107 @@ +"""This module shows example tests for testing actions and agents.""" import pytest +from burr.core import state -# examples/pytest/test_example.py -def test_example(result_collector): +from examples.pytest import some_actions + + +def test_example1(result_collector): + """Example test that uses a custom fixture.""" result_collector.append("Test result 1") result_collector.append("Test result 2") assert True -@pytest.mark.parametrize("sample_idx", range(3)) -def test_1(sample_idx, results_bag): - results_bag.input = "..." - results_bag.actual = "foo bar" - results_bag.expected = "foo bar baz" - results_bag.cosine = 0.8 - results_bag.jaccard = 0.6 - results_bag.llm = sample_idx - - -def test_2(results_bag): +def test_example2(results_bag): + """Example that uses pytest-harvest results_bag fixture.""" + # the following become columns in the final results results_bag.input = "..." results_bag.actual = "foo" results_bag.expected = "foo bar baz" results_bag.cosine = 0.3 results_bag.jaccard = 0.2 - print("hi") - assert False + assert True + + +def test_example3(module_results_df): + """Example that shows how to access the module_results_df fixture.""" + # note pytest runs these tests in order - so in practice this + # would be placed at the end of the test file + print(module_results_df.columns) + + +def test_run_hypothesis(results_bag): + """Tests the run_hypothesis action for a single case""" + input = "Patient has a limp and is unable to flex right ankle. Ankle is swollen." + hypothesis = "Common cold" + expected = "no" + results_bag.input = input + results_bag.expected = expected + results_bag.test_function = "test_run_hypothesis" + input_state = state.State({"hypothesis": hypothesis, "transcription": input}) + end_state = some_actions.run_hypothesis(input_state) + results_bag.actual = end_state["diagnosis"] + results_bag.exact_match = end_state["diagnosis"].lower() == expected + # results_bag.jaccard = ... # other measures here + # e.g. LLM as judge if applicable + # place asserts at end + assert end_state["diagnosis"] is not None + assert end_state["diagnosis"] != "" + + +@pytest.mark.parametrize( + "input,hypothesis,expected", + [ + ("Patient exhibits mucus dripping from nostrils and coughing.", "Common cold", "yes"), + ( + "Patient has a limp and is unable to flex right ankle. Ankle is swollen.", + "Sprained ankle", + "yes", + ), + ( + "Patient fell off and landed on their right arm. Their right wrist is swollen, " + "they can still move their fingers, and there is only minor pain or discomfort when the wrist is moved or " + "touched.", + "Broken arm", + "no", + ), + ], + ids=["common_cold", "sprained_ankle", "broken_arm"], +) +def test_run_hypothesis_parameterized(input, hypothesis, expected, results_bag): + """Example showing how to parameterize this.""" + results_bag.input = input + results_bag.expected = expected + results_bag.test_function = "test_run_hypothesis_parameterized" + input_state = state.State({"hypothesis": hypothesis, "transcription": input}) + end_state = some_actions.run_hypothesis(input_state) + results_bag.actual = end_state["diagnosis"] + results_bag.exact_match = end_state["diagnosis"].lower() == expected + # results_bag.jaccard = ... # other measures here + # e.g. LLM as judge if applicable + # place asserts at end + assert end_state["diagnosis"] is not None + assert end_state["diagnosis"] != "" + + +def test_run_hypothesis_burr_fixture(input, hypothesis, expected, results_bag): + """This example shows how to scale parameterized with a file of inputs and expected outputs.""" def test_print_results(module_results_df): print(module_results_df.columns) print(module_results_df.head()) - # save to CSV - # upload to google sheets # compute statistics + # this is where you could use pandas to compute statistics like accuracy, etc. + tests_of_interest = module_results_df[ + module_results_df["test_function"].fillna("").str.startswith("test_run_hypothesis") + ] + accuracy = sum(tests_of_interest["exact_match"]) / len(tests_of_interest) + # save to CSV + tests_of_interest[ + ["test_function", "duration_ms", "status", "input", "expected", "actual", "exact_match"] + ].to_csv("results.csv", index=True, quoting=1) + # upload to google sheets or other storage, etc. + + assert accuracy > 0.9 # and then assert on the computed statistics From 38726a73f2532572ceb909a5c50198fea407a95a Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Tue, 3 Dec 2024 23:27:16 -0800 Subject: [PATCH 07/15] Fixes test to not complain --- examples/validate_examples.py | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/validate_examples.py b/examples/validate_examples.py index f46bf41a..818abd4f 100644 --- a/examples/validate_examples.py +++ b/examples/validate_examples.py @@ -26,6 +26,7 @@ "deployment", "talks", "parallelism", # TODO - remove this shortly + "pytest", ] From 3b2500f1c51b40dfe284e81e81871c3f59766bbb Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Fri, 13 Dec 2024 10:36:05 -0800 Subject: [PATCH 08/15] Add file for parameterization for pytest example --- examples/pytest/hypotheses_test_cases.json | 35 ++++++++++++++++++ examples/pytest/test_some_actions.py | 41 ++++++++++++++++++++-- 2 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 examples/pytest/hypotheses_test_cases.json diff --git a/examples/pytest/hypotheses_test_cases.json b/examples/pytest/hypotheses_test_cases.json new file mode 100644 index 00000000..cfedf631 --- /dev/null +++ b/examples/pytest/hypotheses_test_cases.json @@ -0,0 +1,35 @@ +[ + { + "action": "run_hypothesis", + "name": "run_hypothesis_0", + "input_state": { + "transcription": "Patient exhibits mucus dripping from nostrils and coughing.", + "hypothesis": "Common cold" + }, + "expected_state": { + "diagnosis": "yes" + } + }, + { + "action": "run_hypothesis", + "name": "run_hypothesis_1", + "input_state": { + "transcription": "Patient has a limp and is unable to flex right ankle. Ankle is swollen.", + "hypothesis": "Sprained ankle" + }, + "expected_state": { + "diagnosis": "yes" + } + }, + { + "action": "run_hypothesis", + "name": "run_hypothesis_2", + "input_state": { + "transcription": "Patient fell off and landed on their right arm. Their right wrist is swollen, they can still move their fingers, and there is only minor pain or discomfort when the wrist is moved or touched.", + "hypothesis": "Broken arm" + }, + "expected_state": { + "diagnosis": "no" + } + } +] diff --git a/examples/pytest/test_some_actions.py b/examples/pytest/test_some_actions.py index f32b881f..903724b1 100644 --- a/examples/pytest/test_some_actions.py +++ b/examples/pytest/test_some_actions.py @@ -72,6 +72,7 @@ def test_run_hypothesis(results_bag): def test_run_hypothesis_parameterized(input, hypothesis, expected, results_bag): """Example showing how to parameterize this.""" results_bag.input = input + results_bag.hypothesis = hypothesis results_bag.expected = expected results_bag.test_function = "test_run_hypothesis_parameterized" input_state = state.State({"hypothesis": hypothesis, "transcription": input}) @@ -85,8 +86,33 @@ def test_run_hypothesis_parameterized(input, hypothesis, expected, results_bag): assert end_state["diagnosis"] != "" -def test_run_hypothesis_burr_fixture(input, hypothesis, expected, results_bag): - """This example shows how to scale parameterized with a file of inputs and expected outputs.""" +# the following is required to run file based parameterized tests +from burr.testing import pytest_generate_tests # noqa: F401 + + +@pytest.mark.file_name( + "hypotheses_test_cases.json" +) # our fixture file with the expected inputs and outputs +def test_run_hypothesis_burr_fixture(input_state, expected_state, results_bag): + """This example shows how to scale parameterized with a file of inputs and expected outputs using Burr's.""" + input_state = state.State.deserialize(input_state) + expected_state = state.State.deserialize(expected_state) + results_bag.input = input_state["transcription"] + results_bag.hypothesis = input_state["hypothesis"] + results_bag.expected = expected_state["diagnosis"] + results_bag.test_function = "test_run_hypothesis_parameterized" + input_state = state.State( + {"hypothesis": input_state["hypothesis"], "transcription": input_state["transcription"]} + ) + end_state = some_actions.run_hypothesis(input_state) + results_bag.actual = end_state["diagnosis"] + results_bag.exact_match = end_state["diagnosis"].lower() == expected_state["diagnosis"] + print(results_bag) + # results_bag.jaccard = ... # other measures here + # e.g. LLM as judge if applicable + # place asserts at end + assert end_state["diagnosis"] is not None + assert end_state["diagnosis"] != "" def test_print_results(module_results_df): @@ -100,7 +126,16 @@ def test_print_results(module_results_df): accuracy = sum(tests_of_interest["exact_match"]) / len(tests_of_interest) # save to CSV tests_of_interest[ - ["test_function", "duration_ms", "status", "input", "expected", "actual", "exact_match"] + [ + "test_function", + "duration_ms", + "status", + "input", + "hypothesis", + "expected", + "actual", + "exact_match", + ] ].to_csv("results.csv", index=True, quoting=1) # upload to google sheets or other storage, etc. From 0520ad849aa6aaa0921f347051ccfd8684aa3909 Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Tue, 24 Dec 2024 14:10:06 -0800 Subject: [PATCH 09/15] Completes pytest example --- examples/pytest/README.md | 91 ++++++++++++++++++++++++++-- examples/pytest/e2e_test_cases.json | 32 ++++++++++ examples/pytest/some_actions.py | 41 ++++++++++--- examples/pytest/test_some_actions.py | 42 +++++++++++++ 4 files changed, 192 insertions(+), 14 deletions(-) create mode 100644 examples/pytest/e2e_test_cases.json diff --git a/examples/pytest/README.md b/examples/pytest/README.md index 1860382c..04247b3f 100644 --- a/examples/pytest/README.md +++ b/examples/pytest/README.md @@ -1,12 +1,12 @@ -# Using pytest to evaluate your agent / application +# Using pytest to evaluate your agent / augmented LLM / application -An agent is a combination of LLM calls and logic. But how do we know if it's working? Well we can test & evaluate it. +An agent / augmented LLM is a combination of LLM calls and logic. But how do we know if it's working? Well we can test & evaluate it. From a high level we want to test & evaluate the "micro" i.e. the LLM calls & individual bits of logic, through to the "macro" i.e. the agent as a whole. But, the challenge with LLM calls is that you might want to "assert" on various aspects of the -output without, and not want it to fail on the first assertion failure which is standard test framework behavior. So what are you to do? +output without failing on the first assertion failure, which is standard test framework behavior. So what are you to do? Well we can use some `pytest` constructs to help us with this. @@ -58,7 +58,7 @@ def test_my_agent(input, expected_output): assert actual_output == expected_output # assert some other property of the output... ``` -What we've shown above will fail on the +What we've shown above will fail on the first assertion failure. But what if we want to evaluate all the outputs before making a pass / fail decision? ### Not failing on first assert failure / logging test results @@ -94,7 +94,7 @@ This enables us to get a dataframe of all the results from our tests, and then w E.g. we only pass tests if all the outputs are as expected, or we pass if 80% of the outputs are as expected, etc. You could also log this to a file, or a database, etc. for further inspection and record keeping. -Note: wou can also combine `results_bag` with ``pytest.mark.parametrize`` to run the same test with different inputs and expected outputs: +Note: we can also combine `results_bag` with ``pytest.mark.parametrize`` to run the same test with different inputs and expected outputs: ```python import pytest @@ -175,7 +175,7 @@ def test_an_agent_e2e(input_state, expected_state, results_bag): input_state = state.State.deserialize(input_state) expected_state = state.State.deserialize(expected_state) # exercise the agent - agent = agent_builder(input_state) + agent = agent_builder(input_state) # e.g. something like some_actions._build_application(...) output_state = agent_runner(agent) results_bag.input_state = input_state @@ -198,3 +198,82 @@ def test_an_agent_e2e(input_state, expected_state, results_bag): assert exact_match ``` +#### Using the Burr UI to observe test runs +You can also use the Burr UI to observe the test runs. This can be useful to see the results of the tests in a more visual way. +To do this, you'd instantiate the Burr Tracker and then run the tests as normal. A notes on ergonomics: + +1. It's useful to use the test_name as the partition_key to easily find test runs in the Burr UI. You can also make the app_id match some test run ID, e.g. date-time, etc. +2. You can turn on opentelemetry tracing to see the traces in the Burr UI as well. +3. In general this means that you should have a parameterizeable application builder function that can take in a tracker and partition key. + +```python +import pytest +from our_agent_application import agent_builder, agent_runner # some functions that build and run our agent + +from burr.core import state + +# the following is required to run file based tests +from burr.testing import pytest_generate_tests # noqa: F401 +from burr.tracking import LocalTrackingClient + +@pytest.fixture +def tracker(): + """Fixture for creating a tracker to track runs to log to the Burr UI.""" + tracker = LocalTrackingClient("pytest-runs") + # optionally turn on opentelemetry tracing + yield tracker + + +@pytest.mark.file_name("e2e.json") # our fixture file with the expected inputs and outputs +def test_an_agent_e2e_with_tracker(input_state, expected_state, results_bag, tracker, request): + """Function for testing an agent end-to-end using the tracker. + + Fixtures used: + - results_bag: to log results -- comes from pytest-harvest + - tracker: to track runs -- comes from tracker() function above + - request: to get the test name -- comes from pytest + """ + input_state = state.State.deserialize(input_state) + expected_state = state.State.deserialize(expected_state) + + test_name = request.node.name + # exercise the agent + agent = agent_builder(input_state, partition_key=test_name, tracker=tracker) # e.g. something like some_actions._build_application(...) + output_state = agent_runner(agent) + + results_bag.input_state = input_state + results_bag.expected_state = expected_state + results_bag.output_state = output_state + results_bag.foo = "bar" + # TODO: choose appropriate way to evaluate the output + # e.g. exact match, fuzzy match, LLM grade, etc. + # this is exact match here on all values in state + exact_match = output_state == expected_state + # for output that varies, you can do something like this + # assert 'some value' in output_state["response"]["content"] + # or, have an LLM Grade things -- you need to create the llm_evaluator function: + # assert llm_evaluator("are these two equivalent responses. Respond with Y for yes, N for no", + # output_state["response"]["content"], expected_state["response"]["content"]) == "Y" + # store it in the results bag + results_bag.correct = exact_match + + # place any asserts at the end of the test + assert exact_match +``` + +# An example +Here in this directory we have: + + - `some_actions.py` - a file that defines an augmented LLM application (it's not a full agent) with some actions + - `test_some_actions.py` - a file that defines some tests for the actions in `some_actions.py`. + +You'll see that we use the `results_bag` fixture to log the results of our tests,and then we can access these results +via the `module_results_df` fixture that provides a pandas dataframe of the results. This dataframe is then +saved as a CSV for uploading to google sheets, etc. for further analysis. You will also see uses of `pytest.mark.parametrize` +and Burr's pytest feature for parameterizing tests from a JSON file. + +To run the tests, you can run them with pytest: + +```bash +pytest test_some_actions.py +``` diff --git a/examples/pytest/e2e_test_cases.json b/examples/pytest/e2e_test_cases.json new file mode 100644 index 00000000..9679845b --- /dev/null +++ b/examples/pytest/e2e_test_cases.json @@ -0,0 +1,32 @@ +[ + { + "action": "run_hypothesis", + "name": "run_hypothesis_0", + "input_state": { + "audio": "Patient exhibits mucus dripping from nostrils and coughing." + }, + "expected_state": { + "final_diagnosis": "Common cold" + } + }, + { + "action": "run_hypothesis", + "name": "run_hypothesis_1", + "input_state": { + "audio": "Patient has a limp and is unable to flex right ankle. Ankle is swollen." + }, + "expected_state": { + "final_diagnosis": "Sprained ankle" + } + }, + { + "action": "run_hypothesis", + "name": "run_hypothesis_2", + "input_state": { + "audio": "Patient fell off and landed on their right arm. Their right wrist is swollen, they can still move their fingers, and there is only minor pain or discomfort when the wrist is moved or touched." + }, + "expected_state": { + "final_diagnosis": "Healthy individual" + } + } +] diff --git a/examples/pytest/some_actions.py b/examples/pytest/some_actions.py index 20c3a518..b158b338 100644 --- a/examples/pytest/some_actions.py +++ b/examples/pytest/some_actions.py @@ -7,6 +7,7 @@ from burr import core from burr.core import Action, ApplicationContext, GraphBuilder, State, action from burr.core.parallelism import MapStates, RunnableGraph +from burr.tracking import LocalTrackingClient @action(reads=["audio"], writes=["transcription"]) @@ -90,10 +91,7 @@ def determine_diagnosis(state: State) -> State: return state.update(final_diagnosis="Healthy individual") -def run_my_agent( - input_audio: str, partition_key: str = None, app_id: str = None, tracking_project: str = None -) -> Tuple[str, str]: - # we fake the input audio to be a string here rather than a waveform. +def build_graph() -> core.Graph: graph = ( GraphBuilder() .with_actions( @@ -107,16 +105,43 @@ def run_my_agent( ) .build() ) + return graph + + +def build_application( + app_id, + graph, + initial_state, + initial_entrypoint, + partition_key, + tracker, + use_otel_tracing: bool = False, +) -> core.Application: + """Builds an application with the given parameters.""" app_builder = ( core.ApplicationBuilder() .with_graph(graph) - .with_state(**{"audio": input_audio}) - .with_entrypoint("transcribe_audio") + .with_state(**initial_state) + .with_entrypoint(initial_entrypoint) .with_identifiers(partition_key=partition_key, app_id=app_id) ) - if tracking_project: - app_builder = app_builder.with_tracker(project=tracking_project) + if tracker: + app_builder = app_builder.with_tracker(tracker, use_otel_tracing=use_otel_tracing) app = app_builder.build() + return app + + +def run_my_agent( + input_audio: str, partition_key: str = None, app_id: str = None, tracking_project: str = None +) -> Tuple[str, str]: + graph = build_graph() + tracker = None + if tracking_project: + tracker = LocalTrackingClient(project=tracking_project) + # we fake the input audio to be a string here rather than a waveform. + app = build_application( + app_id, graph, {"audio": input_audio}, "transcribe_audio", partition_key, tracker=tracker + ) # app.visualize("diagnosis.png", include_conditions=True, view=False, format="png") last_action, _, agent_state = app.run( halt_after=["determine_diagnosis"], diff --git a/examples/pytest/test_some_actions.py b/examples/pytest/test_some_actions.py index 903724b1..9af90d42 100644 --- a/examples/pytest/test_some_actions.py +++ b/examples/pytest/test_some_actions.py @@ -2,6 +2,7 @@ import pytest from burr.core import state +from burr.tracking import LocalTrackingClient from examples.pytest import some_actions @@ -115,6 +116,47 @@ def test_run_hypothesis_burr_fixture(input_state, expected_state, results_bag): assert end_state["diagnosis"] != "" +@pytest.mark.file_name( + "e2e_test_cases.json" +) # our fixture file with the expected inputs and outputs +def test_run_hypothesis_burr_fixture_e2e_with_tracker(input_state, expected_state, results_bag): + """This example shows a parameterized example of running the agent end-to-end with a tracker.""" + from opentelemetry.instrumentation.openai import OpenAIInstrumentor + + # this will auto instrument the openAI client. No swapping of imports required! + OpenAIInstrumentor().instrument() + tracker = LocalTrackingClient(project="pytest-example") + graph = some_actions.build_graph() + input_state = state.State.deserialize(input_state) + app = some_actions.build_application( + app_id=None, + graph=graph, + initial_state=input_state, + initial_entrypoint="transcribe_audio", + partition_key="pytest_example", + tracker=tracker, + use_otel_tracing=True, + ) + expected_state = state.State.deserialize(expected_state) + results_bag.input = input_state["audio"] + results_bag.expected = expected_state["final_diagnosis"] + results_bag.test_function = "test_run_hypothesis_burr_fixture_e2e_with_tracker" + last_action, _, agent_state = app.run( + halt_after=["determine_diagnosis"], + ) + + results_bag.actual = agent_state["final_diagnosis"] + results_bag.exact_match = ( + agent_state["final_diagnosis"].lower() == expected_state["final_diagnosis"].lower() + ) + print(results_bag) + # results_bag.jaccard = ... # other measures here + # e.g. LLM as judge if applicable + # place asserts at end + assert agent_state["final_diagnosis"] is not None + assert agent_state["final_diagnosis"] != "" + + def test_print_results(module_results_df): print(module_results_df.columns) print(module_results_df.head()) From 63e2f4ea694e62caee572681b7753e3c46c8caed Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Thu, 26 Dec 2024 14:52:15 -0800 Subject: [PATCH 10/15] Adds more clarification on what to evaluate With link to mlflow.evaluate. --- examples/pytest/README.md | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/examples/pytest/README.md b/examples/pytest/README.md index 04247b3f..98d87eab 100644 --- a/examples/pytest/README.md +++ b/examples/pytest/README.md @@ -60,15 +60,30 @@ def test_my_agent(input, expected_output): ``` What we've shown above will fail on the first assertion failure. But what if we want to evaluate all the outputs before making a pass / fail decision? +### What kind of "asserts" do we want? + +We might want to evaluate the output in a number of ways: +1. Exact match - the output is exactly as expected. +2. Fuzzy match - the output is close to what we expect, e.g. does it contain the right words, is it "close" to the answer, etc. +3. Human grade - the output is graded by a human as to how close it is to the expected output. +4. LLM grade - the output is graded by an LLM as to how close it is to the expected output. +4. Static measures - the output has some static measures that we want to evaluate, e.g. length, etc. + +It is rare that you solely rely on (1) with LLMs, and you'll likely want to evaluate the output in a number of ways before making a pass / fail decision. +E.g. that the output is close to the expected output, that it contains the right words, etc., and then make a pass / fail decision based on all these evaluations. + ### Not failing on first assert failure / logging test results -Here we use the `pytest-harvest` plugin to log what our tests are doing. This allows us to capture the results of our tests in a structured way without +One limitation of pytest is that it fails on the first assertion failure. This is not ideal if you want to evaluate multiple aspects of the output before making a pass / fail decision. + +There are multiple ways one could solve this limitation, as pytest is very extensible. We will only go over one way here, +which is to use the `pytest-harvest` plugin to log what our tests are doing. This allows us to capture the results of our tests in a structured way without breaking at the first asserting failure. This means we can mix and match where appropriate hard "assertions" - i.e. definitely fail, with -softer ones where we want to evaluate all aspects before making an overall pass / fail decision. We walkthrough how to do this below using a few +softer ones where we want to evaluate all aspects before making an overall pass / fail decision. We walk through how to do this below using a few pytest constructs. `results_bag` is a fixture that we can log values to from our tests. This is useful if we don't want to fail on the first assert statement, -and instead capture a lot more. This is not native to pytest, and is why we use the `pytest-harvest` plugin to acheive this. +and instead capture a lot more. This is not native to pytest, and is why we use the `pytest-harvest` plugin to achieve this. To use it, you just need to install `pytest-harvest` and then you can use the `results_bag` fixture in your tests: @@ -92,7 +107,8 @@ def test_print_results(module_results_df): ``` This enables us to get a dataframe of all the results from our tests, and then we can evaluate them as we see fit for our use case. E.g. we only pass tests if all the outputs are as expected, or we pass if 80% of the outputs are as expected, etc. You could -also log this to a file, or a database, etc. for further inspection and record keeping. +also log this to a file, or a database, etc. for further inspection and record keeping, or combining it with +open source frameworks [mlflow](https://mlflow.org) and using their [evaluate functionality](https://mlflow.org/docs/latest/llms/llm-evaluate/index.html). Note: we can also combine `results_bag` with ``pytest.mark.parametrize`` to run the same test with different inputs and expected outputs: From 8e820a327f244ff13511543c43004ca15fcd8e8b Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Thu, 26 Dec 2024 15:20:42 -0800 Subject: [PATCH 11/15] Adds docs reference for pytest example --- docs/examples/guardrails/creating_tests.rst | 14 ++++++++++---- docs/examples/guardrails/index.rst | 6 +++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/docs/examples/guardrails/creating_tests.rst b/docs/examples/guardrails/creating_tests.rst index fa453d65..def1d89d 100644 --- a/docs/examples/guardrails/creating_tests.rst +++ b/docs/examples/guardrails/creating_tests.rst @@ -14,6 +14,12 @@ words or phrases, or using LLMs to grade the output, etc. We aren't opinionated do this, but in any case, you'll need to write a test case to exercise things, and this is what we're showing you how to do here. +Need to know more about pytest? +------------------------------- +For a more pytest walkthrough and example, see the `pytest example `_, +that explains what pytest is, how to evaluate more than just a single assert statement, how to aggregate results, etc. + + Test Case Creation Example -------------------------- Video walkthrough: @@ -57,11 +63,11 @@ test case with the module name of your serialization logic. Note (2): you can pass in `--action-name` to override the action name in the test case. This is useful if you want to use the output of one action as the input to another action; there are corner cases where this is useful. + Future Work ----------- We see many more improvements here: -1. Annotating data in the UI to make it easier to pull out. -2. Automatically suggesting tests cases for you to add. -3. Data export / integration with evaluation tools. -4. etc. Please let us know what you need! +1. Automatically suggesting tests cases for you to add. +2. Data export / integration with evaluation tools. +3. etc. Please let us know what you need! diff --git a/docs/examples/guardrails/index.rst b/docs/examples/guardrails/index.rst index e6f078a2..c577fd0a 100644 --- a/docs/examples/guardrails/index.rst +++ b/docs/examples/guardrails/index.rst @@ -1,6 +1,6 @@ -============= -🚧 Guardrails -============= +======================= +🚧 Guardrails / Tests +======================= .. toctree:: :maxdepth: 2 From ee7a2e2134086ee280d60db307759874f213f01f Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Thu, 26 Dec 2024 16:31:33 -0800 Subject: [PATCH 12/15] Adds image and SDLC section in overview docs. --- docs/_static/burr_sdlc.png | Bin 0 -> 38597 bytes docs/concepts/index.rst | 1 + docs/concepts/sdlc.rst | 27 +++++++++++++++++++++++++++ examples/pytest/README.md | 14 ++++++++++++++ examples/pytest/burr_sdlc.png | Bin 0 -> 38597 bytes 5 files changed, 42 insertions(+) create mode 100644 docs/_static/burr_sdlc.png create mode 100644 docs/concepts/sdlc.rst create mode 100644 examples/pytest/burr_sdlc.png diff --git a/docs/_static/burr_sdlc.png b/docs/_static/burr_sdlc.png new file mode 100644 index 0000000000000000000000000000000000000000..d27c1155da41663a491954962d4008688571ff84 GIT binary patch literal 38597 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 literal 0 HcmV?d00001 diff --git a/docs/concepts/index.rst b/docs/concepts/index.rst index e6dcba2d..e5b32f73 100644 --- a/docs/concepts/index.rst +++ b/docs/concepts/index.rst @@ -10,6 +10,7 @@ Overview of the concepts -- read these to get a mental model for how Burr works. :maxdepth: 2 overview + sdlc actions state state-machine diff --git a/docs/concepts/sdlc.rst b/docs/concepts/sdlc.rst new file mode 100644 index 00000000..0e58d302 --- /dev/null +++ b/docs/concepts/sdlc.rst @@ -0,0 +1,27 @@ +================================ +SDLC with LLMs +================================ +If you're building an LLM-based application, you'll want to follow a slightly different software development lifecycle (SDLC) +than you would for a traditional software project. Here's a rough outline of what that might look like: + +.. image:: ../_static/burr_sdlc.png + :alt: SDLC with LLMs + :align: center + +The two cycles that exist are: + +1. App Dev Loop. +2. Test Driven Development Loop. + +and you will use one to feed into the other, etc. + +Walking through the diagram the SDLC looks like this: + +1. Write code with Burr. +2. Use Burr's integrated observability, and trace all parts of your application. +3. With the data collected, you can: (1) annotate what was captured and export it, or (2) create a pytest fixture with it. +4. Create a data set from the annotated data or by running tests. +5. Evaluate the data set. +6. Analyze the results. +7. Either adjust code or prompts, or ship the code. +8. Iterate using one of the loops... diff --git a/examples/pytest/README.md b/examples/pytest/README.md index 98d87eab..aaf43401 100644 --- a/examples/pytest/README.md +++ b/examples/pytest/README.md @@ -1,3 +1,17 @@ +# A SDLC with Burr and pytest +Here we show a quick example of a software development lifecycle (SDLC) with Burr and pytest. + +![Burr and pytest](burr_sdlc.png) + +While we don't cover everything in the diagram, in this example we specifically show how to do most of the TDD loop: + +1. Create a test case. +2. Run the test case. +3. Create a dataset. +4. Show how you might construct evaluation logic to evaluate the output of your agent / augmented LLM / application. + +using Burr and pytest. + # Using pytest to evaluate your agent / augmented LLM / application An agent / augmented LLM is a combination of LLM calls and logic. But how do we know if it's working? Well we can test & evaluate it. diff --git a/examples/pytest/burr_sdlc.png b/examples/pytest/burr_sdlc.png new file mode 100644 index 0000000000000000000000000000000000000000..d27c1155da41663a491954962d4008688571ff84 GIT binary patch literal 38597 zcmeFZWmr{P8#YQQOFERU1qcRR5{s^dv_XT?-5`sW2I-LQP!s{_Zlt9J>F#bxzp;Gx z-tT_D>pDNr`E~RMi!~=>%rWK|Pu%zYj1UziSzIg%EEE(JTsgSZGZYlGVH6ZpL&$CL z4Z+>*HShz~@tLdyN>M-62KYtASVPW4Q4!@4_zXcoLnT5%N8SSdqXe0wVEp-vg2DuT zqM)E>qW<@4CfeUu(S|e8|Ne|>h`iC*UlI>AqG|p@!%0I?LD10FnoZxx*1(tzVQq)J z0R@H-1Rt%9o%HDt)>bx-f(T*yKX(X%&&aRY>FNI5;$$gIuc4?yCu!?oOvlH@!Nx%^ zf<;G12Xino5qu^k^Vgq)--PMSoSf_g+1XuOT-aQ=*=!w5**OIS1lT#a*txh^!5yrQ zt~O5k2v!?MhW|A3cRNzXj)o5Ac24HDHgw2#^$l#DorLM>ksbZ>??2D!WNz}`o@^Zd z8WtEJJMs!UCmRR*KW&3Qg(1HcRCX{o20bI&7vY5cx$}R%`>P)qJF@eCJ;kfQf=4h9V~={sMuzoralsS9&}ETj4?QyI=z;j@M}S9L4SuI!dS# z-o<%f!fDEZ$w3g8=__C;rK&>C({?t!8h z%KtpyvhUkqr~m(6$p3ru(Ck}d)WbNyS~b1sb-qGcbv!Iz=Xo~sB$mZF*<`lfb$2zz zR!J-97OBo4xW~b!uwu-iP^;o;a#4}XwCh^hZV;`PowjX5g|=y$^JcA}VB^1DYY&N! zFTq9$AC;T)9}T&r8XcMH>-OvNs(Yy^^ZsiyklW7jva=E<4yNZhC`D!DIJ5nfLKP?5O6wduUBJ7X_E# zDTl{GT=ug=*^>EmA2R*gshXSKo+#5D`Jgys5X!3d?xPB)Gh1-E;bMCTO*09rR<-x< z>v7@p<=FeT*1axw)*@hsU5~tV>)tr;OjbBzvwVH)em3JW1BRF|6t4G-xu^#Vxl-vN zVPu@Gg`iWLSVcbju<3g_!Z*K`cB5r!x<6SsuJt>Ec~DbwegBCA(oAmVxN(z?SPW@> zL5H6=jM}hW+Uu}-XF%lgi|B9rr4D1=l&0S|Q}%QHiJS~u^*vF-Xs&1Q-v^zvHa&3< z@syp;c4uY+NcGl*8=^+QPyS1aG4Y6SzR9k_udP@mvN!u}_}AZkJPf*`phd5myl!+1 zi7j)GFCep>uzII*s$OBcuxi%fY}UP4Xg$;K-DX(+I4UO9JX_6jOzP&XkjAA5p=oJS z-MHso#*e7b+;?j}ZjF9=K8$YlwdJD>rEn?voWd!e^yhnt{=O=^-1wM5rR5Nqy$&}vSccm2b@t@yqF`AGFr3N(YCTUUI+Y2+#-j0BYu3`Y$h`cUiyJRC zhZtSY6)~4vFlmpusOoo29v9b_PFWT=r0Ob9*<=(q-PG3YHC|HHBFd0v*}7_GY^ULD z_J<%obE=*1c=?ca<3b?iH2AB<713pBtkE1$A(XQwqy33wQ#{Q5KHo2$JZVig7*1DD+frVfRyoKIN8Z`w_(_ z=cTTlQ8zygBNfe_l9PCEe)>2~`pRPg!L~5pl4GM~n=WqKc>clrHYbkqdEHKB3Ol}R zm+;y25@OsA7qJ>kx)#Mk<5O!5uus*T*Bfz$cyTd~`ipwOLDZIX&~uYg_PNBQF-%Nh&WVo+M>B z`Z<^-c`bx164Pg9Y1k2FPZjBMpd_@jO!CU(;OFu*c74GD?mqhL(6k{R^E*CU2LfM_ z`m4jaUkuo@?QNS=$giTdx6#$ z@dSE&eR<}hp!L9iB8tduV=!^u<#fXI5)bucUb>OI<&ok2_- zzFo{}7TJ%qcqE|C#HQ}1VMA`bz@vSLLiVUrtJGKAG zz-?}-d)ihd0d@1f*jJFeXp-_tm^|n3^V=Pl0fsSnzNq#s_NWK19J=odn@imIICe&~ ziOgz~x$d~)jS1~m=P<9pij&ObUVQxiWNuo#-{=4`s0J;lm{EfcsO#7VH0kNM@DwLvd?pUAPAKNR^t56Vr5#|5&{+W zu-Q!;!&MMuTo4-!Sbyqernq0dx_{6$Sl&BTvAY@GHwWyJJo33Uz?ojlcf(HWd7?hh zg+g|KT{#kMfj+O1N)(OV^Y2^gSTlC*AUFNR;T<0tfyEA|;X;HbUin0)dyIx)Lh$Li z`~65s+R1FAPXet))9Cb!)>0iK*healhC9&P{ZJ44d*zuh9#NyFv)A{zdL8O4kZV%X zSnRqQsYj`Xea&!+J4hWmSe>Au@K40!WVeN2Q6KBN%>0-e>APQI%H+E3fq3#7E<5;W z4tV0-c4Fn@0eRRc!7Z5wT+jp_`mRmc#T5whdI9f%V?G}MMC)JL1*823{8ZDo&8Xk|}b_+S;Uc|mz> zK6gh%SKZ;DB>su0{WK?0i@Tqt!sYr*U6uEfkpt|x`wGoD*5Y2Asj`T-!YF-VVt4Pl<%JYGL*CaKDc|<{Df=f9h}yq zLFf9V+k{<|(ScH0kq;POz6hCv9j~J<-iMR)+>)S*F*`hb{h{hxc*r>4)7*nMlA{vW zocR0{0>Xlu?V)d-&Uu6|`zec`NF`&kH@v3cbT&vK52ulc#KiEmowV5O;dtnO&trc* zafsVk$cXpdr@T)a%+99k#7nmb8@GRUgvR3G3BPvRmB~H-UgL-^yVZdnp@cE(QV+us z8oI;{@5gJ0@#sB6BsT}8bKx5#5p! zP3P2iZL!*!#(9_~^fT72&p1N<5uvA;xhHd&-A!iS58?l^2qnMTLG) z6wlsx&Ynr&+ybA0A3~T?=GP-kBzz-r{dAt$1czuyB4joy{E=x)Kgw3YeFm;KX?>xfi}u-@aZL zi2sozty{d++M^R2JvuO7CLGfwE;stNCYrFkjfGpV>M#i_^VD1voO|TA59(N@_0*&G z+2NsI2VeHz>VK$-eio=r*Y}#3$Xrj1KzB3!v#jOH+F`c}lO6^Q#p+2&Ji6*?p0q6q zJ2A1qC(-z@ZLWuo-|nd&w^brg_Va^CTneFB$HA@}zQ(1cZ4Sq}5Tkb}1GF&3JQGCb zM(QEe%KaW#$e_JS@XGFh{n+=e9sV6hP@W^LZ2WKA z=dER;7Ae-1Npn)kMp6`EzuHPrYb2U_j<6j97IYO%V8!|D&!Sc0CEV(VH9lv#Wn|v| z{j?-}a$|U?wDO%_{s(K`aj?h zK!G(&qjcb54~h%RHv+Y+e6L>rP9xo z_|b?yEL`8?jrG!~%dwv5ddkCU9peIJ=rFP089mLr$ZeAm82ivxK6aBoU7H!uEM4 zM(3e6D&tu*5N*SeeYdLX&cOY^7O0{seOmDaVd0&!khl6Zt6#tJEQnn8N5L2=Y9MYJ zRQJee_=BC|erk(|u(C>?z+W0AF{pqk(&ApGmNHxL6!iFIw^tr2gWU!t<+Xgi+SPJt zIhAeRbg@~`E;KEpl5Ng){aq;Llw`a==S1pR>(!&l`!V?0&WZL#8#oP5s9*0+^`{9j zQ@!mHq#ORU8{%ZFesNPzVBSS*bSEuh!+-IuwEFF#j>pupx!<)ZzgxDM6MS6{w-D|! zqw&&itfn#3xlpJYnuk~iWo_|s5AejI#^4HQO|COP5&D(+&@dRafrp*Pq)@wN2zLI< zTG;%kwf%j!a~2z!u;~q5>pV(_eS`UM^0-JXtup=!xj9pzW>!(s`(kB~n?7S`{_GGH z(CB%o=Bla9mWm1Iru!U)%RpNxN}GWreiY`@rOhw+IAM*^L~?Gm8WQxum04URQG+Zw zfU#_i{Bm2-Etv zqkuf_=e+%7G0j?ir1RS7B~IOkgLY=eKR*`~S#%#A%K3e;+9Yx_`eLsQ$*cC`?2ZbQ zFBael#2Shn!p<9qM0ad=;Ek*v)%_sX<-&N!bD#%d5&AxVB(a|L7#s6fW*51CCWp|H~X#JTJPF!Tl36XiYO)rnot=; zY_ky4zl7*KDpc^jYo{A?J>edMN3Hs3eV$N@aBbp;`l}s?tb7m$&mr9%Q%f39d<73N8LRpX+D)5%BOiiaU* zKLvf~4T;$#KW0;>M9_L*n^G}Sue?1V-hBw0X4-5M4i z8H!4h^DKvOa@!~Qlb(LgXT@C&VNTz__c4Ktw@ZsE$?%lb75dTa!=W*c6w~DEX@rc_ z`FBMK9_(#lN$E^jV9)oKL3;e{{3Md(*@sV9ahsT8$+A~EuWdM+99!)N&3!aSt3O#I z61tUAX-#J7+z#J74{}YKZ#$Q0lq_z@E3vd_I?t6=vdu7T*WKbMY{W)|MtNhFaR@?rDOf4W~QK7E}LnJn(Ve?jyRb?0%q?c&{~D4*sO=44Zjle}4lF_UaAS2+HG zJ`stYQ+=;LdXAy(GpWrGo8&VhRpKx)@kY9#C^|ba8H0_%$e{E#kJN&mU|AH2ZfCjE zCvINHIJ2tTAD1vV%L#QR@5ItR^!ql|XQwsvCQ)a=d1s>Rqpj$v9y2vDR#FN|mAICi zU~AVw3WsA-ea8Ncgc`YS@9g&0h7JLTnHd%0=wFuC2VyYA~9s)PkvL-C&wx{|eu^W)0}6!_Mcegbi#SC>gjp3P92Z3eyrX$V&atKnD;*uv6xPs&gC2R ztrBWyP8RuL>-PE0^KW@e`fZ9`=m81z%jr?dWET&e*6Uv!pm2t!9V3GKfFmUpod}M& zd%(X@6^kFnSu91xrTV&ctI<%lC1C);?*snGeA*OkuBMal# zr?F8wJ{-zCT>e(Qi}UG#RL^n}rOk#5yg&s4XHPp1eYJ2E=C&)Sn2PJ7SZg{fe zn$DMTGWFZ(dK5w%+zqI04%Hjht$NkM7imYh;gpFBLm@}^pL9LV=l-Rgmb1}4WpJ}k zl)#G$RmGeWyBg%vmUUasV^}MPK3`%R#Vbu)VRp>F)V43<+ zyMEWMPbWft?ePen2GfZ;#ox_#6Nq^w_7KLiWK?4Nyg*LT$445M|8PmDP!$%)-A6qN zC8-&ks!t%J{1&n^FSKRvp&^;3e;&>`6tFKdi^VzrdR{R|+ygXe=nmZ&Gx3jSib|o2 z@?`hb5)7WDe{mw1Pv-278+1V~k-z(j<3f`b&vgtTSAbXAO$*6*jEyj)4wn#AN_ZJSkdT*jorxz^r`e`)T_!vmQ5LP~2&b$A0YLA`#z-fx*v8eNxTwKLMRmKIvtF0h zRe-9fRx8x1ahY}P)O8w?wwbQBN8)HmY(6+>W!iDTSuzmEe#)vWd}}BtC`G{W!`5s= zoi@PgX1ID;o|_MDcm(`KVcta!RodPBMTvvNJiwIS*w!BeQu0|PZcSELE{^iec{sWN zq_$4n?{>{|C4q0mI{@Aui?wFrO13T^k`YM@E{A3h0Cf92q(~y$1FW|AoKJ=Eb1zxP zE0cTQ6Givm;$0y`)1==A2z6~dtF{_+=jQ22c`Ac{nozBphE zBYBONl^e3g3(^DJS=tkl|8ho2POK})vMAU=*$hZwzWp7Z{_BXaZ0u&Q5h z>xH~-lb2`Hbxx$n;ibs0d31FotJOha`9e;=!?n`6g#CZgzJG< zc*V9%`}^jyxQ&~dmx;RPzi(|(oNiV+KIme`aX@$%Z~*UE%|q_T+bN`5jD6AEzHyic z-gVx{OE?`O?O926qN#xnmKe&q0Q|P*$(+YXVcl+Rhy)T~J_7)4Ejm7I&~^&6blu*z zRaDo{DL#a=bNofKY9Z2ptjqoUOE@mAcbFL! zpKl5QsGO$?P(7jWgo}W_%$tuHUbWg_^%Ue;jTfbD{U}I?tUg%JiM;3z^ska+7xuhx z8gKIUo|_On>f`pD1rW%^@sn9ZP9(GeV0hK!+$PmXic#y!h6U!x?SHmJrW)Y`vglQo zF&#(6y@1g4p>p$)X@RxWrGC-h9+*Qv-L?vI+$(;lIf9ug+e6S3N8drd z&_7e~%|}c;gopk5y}Dk_WKwDPxBI6*4e?z7=kyM)E(xc6dJ7fyEr~+Utm_zbyytau zZdx_^OuptD>8tvur-0VzP=>((`9~WI+`H<0n6@rft14Qf@mpyQOx(6(}PWsG1`q;Pe$Ppm8doDcpE- zVM)vWbF&_BKQ(~Y1=|>~%=JdX2Sf=s% zRJ&^9LyFo&5$!)FOl$_Kq7v!!dBhiCK%mUclcSLTjzSeT9T1FCW?unM)&Co89lr)s z+fHg1Ct#W!fr0r5$g$ECL1&BiS%+q>fb;syya+hI{)d-276c zz@}~g?cU6T?yF(I=2M485$OXc+FmD|RB9*DqS8NJ{bk+7Cg@aDK+txt!PKnj`ZR^Pj=kxs^wsNZm%Z7A-7k&A z-e-W!R3@0@v!1MuRTAvx{PeiL%sPO(B($EGNx|-MVR_8lbc4Ig-cH@G#n1-Rq#vuZ zZdOl#%OIUB2;S_Kg->1>*oTXF zUi>olg03Sz4h{Ek$-eE!LMWy356QOiFGopw{X9t}_{y|;uNj7NjjPkTb@`G)@24H$094e8;24mM!|WS4(ShZ}XJ=rWo4B<8 z!XdsqE|&AlP+G?J~V^pQcOEfpJcJp2=|AR9hA+(MFy&-C!g0i;~csczKs9R zq%8*mbKsvlboEg?FXRQa z(-bhN6UKstJ2^|k65Pwa^A)^V2Xv}gNw`IR?%dndj`Gco=Z^#adMilFa~LF6NN8Tb z727&k&czv}F`RXUYP(14eWfo)oU#7y$awWzM9OGayC}~<*Ap^5<;q;{*d{AE)7T&n z;8jIz-e?T4H~wl(XycQQOrQvNHX}Hr_4?Jq-bZLNes&BAmipKUf7nBenrr`wq~Xy( z8QWf&#Aa80ssne$4~M$!{>NB7C55XFc@}B#=W-G~;vZ~lH<&O>W<8F+d(MQ^ib>%G zbEjKw1LC8QB))&I>wwlC0c~Qb2}>V?jUY1F8;+ly0e^9Ei#vGQe$Mmk{N+lkaZ=KB zaB7ZhBu(S(G$EHa3M}0G#|vBZBLBQVh)@zM8X#D@T&511U~~h4G%`5Sc|XMwOd7wiYa`~ewg^D zv*r*UsVg5$n%6F^`+8+WG@Ln-!(nHXXps>*YB0$0&eS-d(e*>HI8omd1UUJxU-_F1 z>9ty4u>Iq!;+`O*fT##3nY)pLbe|JmdDSo{!(sb6Q}mRG;_q||SJJrWQq|84oVz;%nnpX~ji(Q%9>5mc&Q+ZmTLI zsVuC}J+Av2z^hx88k9F+5N76l>$=1FMH3#7xX_Mm%5}RvWv=he>uB1re&WZb^wwB8 zbt-sV4CTiPVtEWTAl!0)`0VG9A*1Qfulf-$MMKCWaZZq7sS8A&K;)(7-(EnDUL{Vd zmNEK8-eU^X`X4NY15%nyIoY2~%h8DxgGJ!G@!B>?iMbcYBg&VmIKzo}DIpb6TOg$Q zHAEDu?lq=qS_5K)xn6ISq+_%Fp*3#GbX77&NwW*+&-ESS|9aE~LJ%LqIs_$dL7TG$ zW0@2W3AO0Pud*6U&)t~Vwd(DU$J_B}h2B{C!XqhodlUf?YPpjX_l}dBLRdIjSA!{4 zC1kxU8j~}jxqh_4?Zg2YQDwAKyjOTha3%Qi@6e{=o!GUOa55efMh}$_Yvs?@STiN! z;Xc|~Q#gPS{7`g79(yH=e-458Nip)oV+Z*^u^j7@7ol5=vH-q77dY2zDL9D$RxeKP zkjvkVO3*byx){=4!Cq(<4B;m0^W4{BD9hq!YrW!Q0B ztfwjq@yoh=MTwb}6zJLyPqGpON*I1gPE(ncdO#cQgy}X+??;5n;~$ zSTb*a5JHE9_Ug+roXCiFK)li!q{o8@RzwPurUu%X(^tX85%w!X`DtQo>OE&OsdJ?y|8MSJ!Q2eJxm50XT|$<7A1-6`?{yF*Tf0xT1-Td297t)i z&O7kMs|KVWzvO&ac)eS0kyd-(oOd#CyX@+)ck+X{lv;0dcc!k+>-s`KZ9J9B_}!~q zvnlH;=M<~b5a!t^^Tp?empfG%45vKuqr^GMd22w0W8b9w`(M*T52i=MH?6`sY)UOp({{1TU19l5boEFr=0af(qv zl}`+VrN+Iv@`Gh)`lTxy2OMRB3rLv|6r$eLoTkp315*WSD=XN!md#4U~$F!A`nwiw&`Su#m~M1Y5b%bL8Nnlri>C zOA&)0E1v-}#a;EO@vYz;SJ?zZv~TWv13y-mPo4!QFj;r`9X%o`}nwr;7^^e%1P*V_v-H4+&CoqF5zE zraZfVYC1R=w6C5&5dofg`YkFt5jKH%Omq}7cjG*d|G6Pmr0-z(`{sHENG~@uW@49K z$8~17e!n9;0aE_rwAGq!PJR+&B1Kt8T$t4bGY}>RLKyE4GsuK>eGT4@;mk=1z6I3H z1+khl86JlrF#HK!uDn0$>KBspKuP2zl_|H=kXTMX{Ox4Q5?4EhjI0vC1MF6ns|eL9-SqaM9yI$@KQ4Zo8~6 z9)ukDFV54m`V}Cf)M!yUBsbzF(V^BrP5H7^+<=pcYCTC3$+}-VrUZml{xraL0dgb8 zH^euDY22ZNia=>;TlHRoIK-Fz4b>)%a6i`LFY|`AOEWUcti;G&Y2+(bNVM@sJ%<>o zAmj_NldCXB{EhN%Zv*%BSQg2|gyqst0i zeKnUBaA#iMCbjX=5i~|tjD4DUp}b@+FW|F9?Gnoo?8Ca zeB^^`!y%A;y|}OFB$1&g(=Oka+g9B)^JeOMLd&Aem(A{c`jXE{&G6$$khvH1a4ve$ zVYdvrbW;0Sx2MPd2?x2PGsl8?VsRu7`_Q+5EWfWjo%dQUIyf0=$S$n8H%TdC2}-J$ra`XlRZ73d^rvmQ=NJ~@aBkNS&0&AK)?o3c)!CCA zu)!Re@TXKMg8Ngj(F#>eYRNxVTM1HbJvHVY5K=A;z*ih$b<3Gu8H zy_l$RG^ItSShVKMmGk?Uq~hv7X*pT`NgJ^c;HjqlZn{UD)_URBeoRVqdUueC`*ul? z_wFlz9C@WjSev5JPi_G)0tO{4@w{MR!$^cr0{Qq)QG*2TXM~kmlb?mpBum`_rk)3c z_T?4vGwy-W>y$oHPAABJ8Sa$6`NiNrJ}nbMPz_A%weJHsYeyvQUR!4gKi2X+_7lD- zt0kF8nly-g!j~SiFLJUFq55$J8L1m_5Az;M0f$`XA*Afq4~KzR$`{qOg*dz(9seAe z%dX8?0f_QO#eZDV4K13S$1KY5o3zBHcx7UB7d;yscLQf$LqEo0G&Jo?|D>J^garuP zMMPXR(8~{41|>c0iv(0(tLfN(eSBP4n`Kn5MILCYVe8^DYRsEtUY76<8CKc>CWVo7>^ zPg0Gtz0QP7Y?$aQ=~ur=lm*jgNiV1}RnU-9wz#Sn2(wwu4H#qYM3U@LSf3$P!m72R<)khb z?i#@Tu~jP9(N{6)&vaM#q4Zj?m$VaAIDVyyECmpUz|C+H;fB!$T`5823z;y}E?#fd z(3r=|bN~#};Yng%1(Icnik(RnZj5(Xg>N>7zY&{nh1tva%Nm`?3tDECh*73B0g3ES z&PQku@4u>hvvW0k2#-yi3#jx0P4roM*e^>VzDLtT)hCP-bcu%V7cf}bz(6dti`1GU zwf%;CUH*+Mn9a*4GrH7uZT%+_{EhP%JBu^irF514e$mUto=@iDL*1ZdF!;>=SgG!4ZW_ zxb#+J>8G;c4>Fl!Oq3sr0#E-`EclC2q17YqFm%etkc!egNFsP3gJD+ig~qjyvlF4~ zo;CTX_Dz@RuQQ+;b*1kKzKu~05N!cT9-}UTSHFRbImA&Bky2EL&jX<2ccz@OsX|&L@3)>6OEP(jR|( z5y;P&(efr`b}TZrJ3}v#SrmsKOH;b7-*gcu!YKJhZ%g+`-RY$7XS*C9jmLgV2%H-( z5`{__$hkSB6eGN0(#17ty-dE4Ee16Br;NY47$T2j-?&VgGt=%8k`vQdmbKxFPRmxw z-Or(~XCFtQu8|Yd_-Y2+dxV*w4rR~#6@1jJBvF=^F<=Eqhlzb+qr@*+l;#KVwWzD@ zfbiLuGW{d^#(LxDyx4@=!Ndm79wbjpaxfAg@p6Y!8}9egZ#E2I`xuZjWwzQ;c_`PKH;Yi zNK6_iUJi4onXYX>_(nenop-%r`=7Nb1|O7u%8+Jj^tc!XcY=lpI-q4&&fha>rLj)~ zl+Ou8H_KuXk)D>s{bbIpa-db$J4BId0JyM~x>80Znu$`{x{atN6-@AkcokmLL@xLQLlqsxae_qb&f&n&sr;@-Qs^^yM zTRG)qBMrMm=eICAG41=iPaJ|Ld0>N7DRO>rGP(l=1P-p8qYL^EkJodTqwqrc3G|MdTbkdBX)xN7*CkdrPWFo-}|^TR1H z*lv-NfI->W|E&5-BK~B3D5oQ~nXAxm_}&w=^^k)x`bfIz6!O^fLCdAWj>It8fTY@e7pv2%q178br=ntSJSdE+xm6{r2jOAJH4DpWQM3Pb~_X2QKJalgIKn>*Cj zvdQv74yMgyn{}>W>c3}j#|YBaFSNIva3<4<)m^=o?p{wCd5`eUEv5o1jDFaWf->XK zy`^u)rPRGLf)f#J8c~;&sIV^5ihn4F>AOS1M1U(qOk#X44P0Ck z;xi8tMi7&OzBOgxQNuLSNL)C0pkb zDj~a-)e?+oHsaPir$=e=f5F5ps8KcZCMAJ`E~i;z&|l+wl;xu0QOZ4nAvkeX4w!Kf z>K*Fra8n_k_%u_YcAn>c&BVGG^pq6({F*Aa?%Xc6wb}SVuGxBVhH3Rl-rk( zEKhn17u+;_Gc3n^E|I}-E`hd|u89c*qXPg&+b8K`tm_yJ>Jlozltsb{U?Hj7pO zhiasv=k#Zs93~p_U+@Ur5nw71OBQd<@I2K-^1tVbT@qnd8WbYrTtTBMw%L?l1z%A? zW%VRn5yMb9P}KDD=`&Iq$+;uH=2`c>v`V@z%edz3xd`ptfPklcY8v_hkA}poglhLV zo(5YhpU7!1u_qDACpW#gt#1+?|3c=ASv=_)dpRft8a!Zr3!R%oKwns08aGt5s?w{v5h+#&5_g z(8WJFY!rA#rD(-Jgo_qoiZ>ieI=IM89GO7YxcY;!6je_tLi|MlvX<2yX=U#o~X=k>3D33>Nc3d1mDHI%*aXRjpOuWE)Vvm`lXMDA<*4h+}LQFve7sCuioqZL7F0xELp%w>)BT+%B3L@|aK`}^6nGLr8; z2=G821@4l6=h1sj51qG`sr12%>!M>(PAkkJlt%B7YO@N1V_xa6=Ro@q8O%4{)xx37 z3hSZ~;;FjzD-^)TrykQS6H5gX z|9k+&v6`zv*h0%QT{<+rg>!gG8NF30qs8SZan6ysi{BcZ^=jR^vx;@< zASws=wyWQ*b7Y$Qf(dMj_pUR}W8fEvPZ%MGa*<*?Hn+qxXfKO!7zX+tTe5zAC!9Ih zvDcTdOCrkK$dYB+mv91oz-}~3J@aLUl|5;;0}CK)8)>8nTG|v8^cN2dzI+abo@9Cv zI6KXNQpdlFMQb*@O9jtXtOVh2P&C@bT`t^ym*4sdj* zqMCR8@K9&XdB&n#xtAHu3c5kkEs^O!sPWZ7S=aP0?jVW28AF1k?I(aut|aiKioXWD z)Hn&xC;53#U1wp1kVUtTQ8M^JL63Opfm#Z(I;!N$lade7`uhoe3JKSsV2l5TpTvl~ z=JxF&yaYFs5F@7FCCQXhREuHisXt~-z9+A=O-Dycvp~#)mJM6|?}*Uw=vgw6mL_Mj zqWD<_827N(ZF2zx;OzXC5t4CzMba6<7AQV})Ga+i2M)cbx?fQKkJpib5Y+g}A>b4e zlD2(4K1jgIz*sVVg^7>bguh$!@3R2XwYhn|BZ2`zt=D8gHwEoh;49BdoCx$l(%o9w`k0z6$j z=@vJ`s4UkR#=UOvpf{*cELXtn%N|A>ZV1JE!@$Xy3AY`D4K!4;`{;!3w^|QGaM)ijkGmC;1mzTX2NNN-W!QzUp zf5z$@)(nnK*s8uQSWnP}9p3OflQi z_@8Mr_5*MC|J$20`G+e)DkEN6LSQGO&vya$F>rxE77|;I=0{ULu}O75UrC5vePt9a zJ>B!TcpCsG+*L?0_yaOSn*qosRows|8(7&zfN-?&!{xI>X5H5P>y7|Av*}CZECM|1 z9|rS5eN z_NqY%?3V)5^{z+5@#56X3W@V-TITmLLqOu}`kw3AHIg;*I4AJ_3nT+CROJ#$EQqWM z8nDuR1xTE$vhA@7Qo#lwL%%5y%+3HjmuzOIVQ8U)cTA%V90tHUz1-vtI2)VI(N8uP z#~U`_1OdEfQ&qOFK%U%SVLo98^c1xhCk2l_bsYiO(B&0~$C9?@nwshWPK-Q&z_52v z=AR{)S&bBW6>VirF5mG1wo2e8+eFV0)&$1(#>u5(4#X4)E5SpFF@V_HyMQ|B8g)I_ zZ^*J`FYOA6Ra>)}+6ryEmd&cE4=FaAf^W9h?;KCpIL-ia8nzMfSn@w${2%wTD3SR& z^h@>The?P}wrnOioWQ1+wd(jpYV}~R>9>ilsS!0&+c9tk(EVC)N`r~63>$eq5@Op% zio${vZV4zbodU?D4ov?{0~k$X(eJAxWh=g1);W)(a3m&ueS>5c)|L=((|<^+r_?^1 zY^Bdc8Gu%1lnV{irPm>)Jzoa}%&qlP&joF~y!8)n6&ki_*3 zdEi20zkVYiBW9=_x}YV*52DM$K(N%S*$M+h%jqF0>^Li&R`gHNeUbaw?k=dpeS@T( zE-&|*h~*NEChA;l#{n?d&gTh^1NgJ$Ri1*^o-q95nQkZ%Dy&DIrNqB&>Eh;cZ%ry! zpu~Ahvy<4o=Rs~b;1MKJXG`PY3=P zX7>r!k*dhGIv{itemG~_bj>2ac!aE%n6;sg1)LzstR!x?%&Q2ttHn_EH$cgxkULKL z_d3W!o^0|-=i!gCd_oNXj0;E0^h6b?-d2m{8m7Jki@?rh+CE5m?4vSm6%f8Kmu^>1 z+1P*-V0Xea!&#xH{;=mUG4wnTpLUmSh`=^GR3pDpDNWGT9NV1MZ5=ue(vV_I<-3Bv zv16hEKsiM1G$My1KCBp$bYBk5d_Yl`$+xi35x|r@JbjUD{TeF zM|wCE?fY-#b;0w6frkr{BvK@ykD%Ln?R($o2E3z_`=0wPn0naXr4-AjWwLiTq(sf< z8XLxgxX-yP5L@{C^KT!egtU3i`(R#Jw_o;4YwP8S{iBam!9?yx)OA6lbLi`XkED8t zg;eGKy=4>%;JPr95xsvdxBoHx*hUp`TuNZxH^O3skbmI?A2b`AJLuBBNr7q_T<|N8MgTD$K9I~vVe%z{| z*aLUj2j@_XFo*PTw|Z3OhY=baRd#-Bsr0D)i9-~gufXt9L@548Z_mizUI`Smfw1gu zQOu^sD1_iC-f&1DS&al+;KyHp!aLL)2ZX%NyRHZL7p6D@(p=od6?qlPQ#1(!r&&i4 zM5bzX3MOii_Y-uuG>NQ9|6bSSU;;^Z@>IV)MMb68MAB@HpV$3KK^~m?8Q_X8LiPWL zytn>~a%iPL_h>Yl#r6{Rsj*|k`8G& zYxdsm?|%P-b3W(Shj`Yr;;waF*IgM)f9rOM*+B7(dg0xBkG{C13tFjK4_*dMHUjwK zgiDn)CTh7gfn1DUdbbh4PPmLwp^&6@Qs8jvB-mU1^pA%MvBUtO$IH=c_p0y$0041w zM3dhOV6fh{Qec!PY#!aC=B@?mE>mq$6oJ!ak3RWXrh6&S*;L%6<}#WgfHgdzPdo}hFIDE?-G>je9>(w@TvxZ26K z`^SW9dMq=~T~5p`g}@2@ox(Oh2++I@#!UI?K&OPE`m3?SaU`Siuz8froH($G7eP{z zb}462VH?!o8tG$|ez({VR@1N|kiu)+nYv z^|)e%$TYxGrwP#QgJ3B@$K$mz)ag&~qDO!+K`nO;n0^sqb@5Gq7jJdw#bzsAss{Jt z9XB)_trC)~k);{8+2`^8r^mf1T)m`(_=7Zb1UTMHed$5N$rxCte=mk48`0OIIP&cHIIfzp zwi5u(&!fY6*ADoOpH5KA8e^%zT4OaALx@!uIS0?8uhSDrgK2WvnC04|*Y?lEz& z*cA&ih#n;ECWG7dkUj{DP6I~m;tX>oU?$yLBBH(zk{(l|<$|PQ8Jzo$&-8q>oU6W& zIc%*+VyeY|IpIIp5*(Ob0$xRrRT+p6W~f^ zi2KK1{Pn*QF?rnrUphDMKVSK`b0fkSf!4cvOn-m+KOy&R5)l0+ezGp9_@4<7#F#Xq zdkS8EHYTuh!4NPGGN%-`M=+0w#p{|I(m2HE@Ce z_WK(^+nOCZ|EQ}CBa!UFlooFI@|Af02J>edpYHx=H-MRGhF5g4#?%0Ff3$V5_QeB3 zaKMlnp6NWp%pZ)#`1K#7B#%dVJp@43>u#jnZ~0Pg_S0*1btl9 zojgt|9AI#69)iH44rm75n_e-fweu}`9qE}JY$*8e)PsUe1%TOn0?JHd;O%dOu!?5h zn^uGlK6?EJe)p1<3?o-@3PN+9-6=xf5zL(#ET+7xlHt~q1yvNSe$_G`>!YevRjNNb zU5^%rWmqYKYlX?QKJOn^J3nAC4AO{^33_}CD--^!UJ72XCy7}ox3`o&!h{t)Z1(Ru%Xul% zyy*Xo`%>EHf-mauF`+9R*fJ5Yt0mfkTz0Q5jK)@!! zL_P(|8q0vUlzQhPz*dpE0 z$DsBBdU!Kx5hGRS+;r~k0|HNu->D}w(jA!6cJk=TSaH&KP@(w&K5}b7=Fp@XfIn-% z%kF99Grx)omL7TK`@_)Tk4069X~xJ&H6AZ9e0!~%!_6jHx?TJ_d+j%f4{&nB1DHMf z1Wk1VhgE2Ng?e1}ngNSrc@rf(;Hs|pamroO>^F$lsHj()Jf<*Z;0>_q&LCIyL63t< z{14##ZG$d>C;k=R>e9173+_-6d6@vn)0O2pqEQA;q4Te|)xViS#qDpiDk04@P&UR>zV}C1QjZ0PT_s#L5PCDj!r%t3UCb^kpM-W z2LjCYsSKCKRd5x_-~$59PugNX#x`o^<49tKp{8uCHsHQ7SvMje@9rC;Y+g(yfW+W7 z6uy`udm;eV9h%2=FU}XOzQtvZ?cOYTXhC7iTXrP<}hy?2Z zo*OZ80+Qw9tpZFo8u$Q{v37=}S#o3}@;F{GE(6@BJEjuyGrL!AfpLsNR~&gSwcAfw zAa{U}?}+)P6u4=aV$X1#!`}hRygXU$vW1r%X-jMH9h5tAn91Xo)A5rKY5gl#{zA#U z>xAxQJ4c>^0Q?uQ`Lo@EtABB?_6DTo4%j@e-TJF`(dD4_*$6fV%yI;Q5{s}@juVAAMA}7FYVy4&XN(^jx90)6}MKLKK zzYHTOVWq%;1UVYjC9;D~>~o-%gr5mDM5HjDt?3d}5B781F1J<`2m_I91s#t~-#BC21HVpV?Gx%i*c0JhDfUGAe-B#=f3e4Nq41;cV-i;~Dr4^t$ zG4B8ASf?}mCx$E7WYndO&YXECO0F$QR7`lf1wQ*ybmb{FmTv)t-b&2B&Ie73^Fq{V zE$UmQghwTbO9UId3X`f|hO^9*k@QEhR^qYYYgw~pLUG7+H^56)z;&36ZbvuGm#Yzv zC)|LR8OatI>0vH^2d4v|W)S*3K42mhnOwqn_+|Kji0LCdX?IH5;|x)!7pJ?u{4!Cx zURMT^)26y~R~%n1E=g-KJ1uKw?HGg+K1ET=r|hUFG0!7BMKE;1YLMe}LR0oq?}F>i zI&SF6jeldgF$fm&G6$&G>Efj`ruCs8V$f8-0&d3o>TZZhniFZ?QkHlEj&j-IbY+%? z3#Oph=BcWxAR{g-xejhqmERj3GeIM|7;<48A=`NjWl;*=u<9kjLSB&`4Dlz`tMpw5 zy)&p~9lDe6&#XrB7(b~WE(kNsk5?sE%(O3Hut7AY7pUV%gUR@bbe9$@TMu&LO?l%JGm0E7@dfdj$k_w- zXk0(fZB}vucT)AB%uTvl9qs+usOaYtH1-7!$Du+6EwRcqFC0;`EW6KOHY;~Wj$*oN z^a1cw10$|ihavyr&f115!B86T-+J82$H}Jbu(-6Bi39LN-OQmGH!V{lOpW0-4VF3` z#R@`I4pf1^=!8QYwB}mV)YE!~r1FzH@(I!jV-JCdDerv4&vk!*t8QqNWE(E1-u8xA z3fEUro5nef(G|A?a+*v{uebg_I4T5`vXTB-$?7LUD~<>o*q`kD2LBu4XEg%O1U2 zOA9~lJ^mEwdDHY!l`&9U+}~k(eNTNwhF#9Jg|vn`NcrPUgG0Zi!Lm4`p`u14p-dhU z5QZO(&;$|QM(dmmpa8}lvd3MSyGt=ZVwFL+xNFLuc&)$-ghqQjq?M%-6ePoR`4a3w z!oz}St?f8X+vn}4@p9A8JSii8^qqPFwC(<5g>gY^E?TddEX{K~rY@m5h|L1~$KCwZ zlJsrd2zdwXAa(woK+!Qq?ujk*qA`%peNMTqzNDmqAFW^G4okur7%kPUF3Xr`PZLz*BY(wHe zQan}=`P`RocQzzBDz|)2p_A9DQP@yzT^Fht-j{o|xd0+fP&ua-Oh#doIEvr07hlG= zw!?YxUXK`aQ>lqFbTZf7ma9lBs;b|=y{RbjfLodZKE{;5d!N%92n$B>YQ0oKnkQae zV1pPDlBy|2O2S{+g}`=|XPWUyamlRTQRA_;G2&udEFC$=@km~izGT@*r`_sb`IO`X z@00-st^Vux9t(07W1E3qBc(QB;$!4YC{tUi4h@S$&z>hQ03&D3uH~Mx&tsp^>f@w3#g85?>paD~`<+c(I-D zqSp1J*jXQG-pk6qA*1d$Tl!o%KkTKvq5B7cNWZej3vlKg0bhs!e%S1L^pr=E5Ct81 zzblz>sUg#JE7Y_oj}Ii4XR6JEZgv%xl%3>#;E^R%SCUhcsc2&wphsPsCuDB3m129PYHqn>xk zI4QDF;6{z@fGocbq=Ibh)~a43nf&zjBXbR^YgnJ-=_@HN(2vQD(Ha@U>f8&n#@j(x zmRGzYQyvU7sT4S@u2t@miwQO;&~xHkb0=3Tpi^a*@vGWu@UR-P`T+I3|EPcoZ8Vym ztEsxI94{$?45=AjIUgPESebPXK)zf#cb|7}6`H5X7kkpGwU1gQR+~3G3E#Vfy_=cs z+J2y(=OmZo$yj5*Y7udLXX$fuY=3KV@|zlo{6#%o zN$WErl@V%$LIU3=OuPSnERi;=DGky>$;vRo`}0u2kE^pmrvuyYUg8YF+K75oirziR zj|ijn=?YKG9UIG2JlFCM0A=2BO;G^WTTCS6=vH*+l@;@0;8eq49#?vo_(*cjYEbqa zY9!wyXhr~CVSXz*3P>WJYN3YrJoP0JE_?U7jhYg58$}1Rx(TJPpsidf1Oh^BVx~>U zAeTzFYZEjE7q0Bz){oH56Ei6k%AKyiSH4xm|5)kbnC*{<|P_rFyro~d@eR49;di&HWRocr{`v#DsI9@ZE1s)UyHfDACzp>7)0~) z+j+eteIa)Hes&yO6eF<_HwIV+s~#b_l&lPR7HGFf`L9pv?Z@x2@K19ItEz4H2&@x? z6naElB%Bl&7k%FS^=}nA5~MCL`fDcx6=d{xOuvdsdxCPh-v%vP_$;?@0V%|h9VgB6 zs$xsDj+=1KO*7FPG)))L;>5N-kdHn`J&qJNwYT)23ki2^d-fSW9vAjn?Fs!GSF_43 zEq8Mv9HwjaacCH7uPqD}F}!b&*xAujD%zm+ypoqi2sc63068&slGx77-67iuiW}tk z`>zPF5&43WthA=~NZy@&;YxX2ei7tljVe)uC6R@2;Ck7 zf&g20tF2c4od!vqg#?`lJ?L*G?CqD&*hsb*7a)l=$e*A0Y>Wk@M3iAfrOw|0tR(DN zA%1s+Z}HCcc`D_Rgtxhuao2}*?;&prM@zS>i}Y1)xgLeg21*zPJ4?JNmOJBMF+#6Lp1XY$Z%n>@nr&iCwI zj%jD2KG3uevn0{&TUJ?~5mTY9kh zd0VCr|ro|X33C^c<=;gW#1yaWRCwy6$AAZJlm-VIKlA#?~FKVQ_C*l zI$N9X6i3Yc{+{loi|=&RWmf6*gVjg7qvN*k8>`wLDQ#aJVTK(~*|FI**wj`vbg>K+$p&pfnz!A>283>LrnScd(y(}=6ieeqJ4 z<<1`6+yv;LO=ckjEAxRV()ZxUu{wQ~ie=dgS(&zL6J$FNc5ZY0qC~E?ZmA<_LGZ=c zArJ_v5`mS5PS9kJcJIbGR(3Mz`T)Wn@LLe#lh*|Kmh=K{WNx>Q&zDKM+a2`6Ht#f5|dk)3PL|eBy zWVgi|9vqSBubTqJ%I4|v965KBqi#XyxUJjS)suj+;j_^UUUm0b64XpM7CA>zT45Im^dlqC9yz z^j*bivc*s<;dcTe>_LLkx*`xZI>s<{XhFnE8cmuyqZT#1PL)yNqfqfBK!60EvwR89 zX_e}az8zjK9NH_9MnhIEM!~ofOmR1)i+L>lWG;)t68}JcAXF@A=m~&-nzA^`fh3p_-NBqZV|@XG{-p;Z#8VLX(%sgm99FP4atG2Fh?~K>RwB)|@(p z&x^ZV6`pOGaa3&S-l`G2sBuMq77`I-CstQIu`c%`wE!>nn+Bwo2J;Ptvh`C@RM$ zRKCp0FYX>k53^i^ckvp2TFhJxCwEW!Kw`ZZ5?t_?Ke^t;zW`4ss|~}0P8o*hTkQ}w zDiNWMcHB8o<8-!}38l16S@*l`Dq+*VLuVgfwfHz>&9)$BYKffiwKJFA78hOUAgb&s zP)3doyS`@CMZ_gUR16X2wre?PJ}7l;NBh^jBwWUsV4u7?+us*S7Hh*uT1$6-ycPG6 z*hg>&d7=*OBI+Beo$D{uYK;pltpPA8zX#IT_2VqbXpIzaT^p^lu<%f+jhlB`HBmI_ zI@C{T^%Yhe4cH~mJyj*yl}08AIp!-l2^TWuM%w76HLK3L6vbuXY-bi#?RHWq0JA6o zwiFqsE~HtVrc@cwUYSMm@MwxV#gEEEhW6QG!y(D;vE&;KwQ{hc*~-y&ZzzCCyn8A) zH^cROr*tuJz{Ai8Q}CtPmQ`& z#h=G>`+~py=}&bvWg=_Qv*GEL1?AW;0;`b^C~3=hULfi_iF!x*Hs}@IeY-8IwAaYK z^uHgRG&lUJ@VeKUp&&;14X#rh(CQ2ZOu6P>71|rQ+TE3E!ErA8e%5Bu?#~Iar77-* z1$*Js!i3)I>rZnDVF-I*8g{5u?(~=m&CgQCnkX2v-`z#kZFz6x>fpTkuw-A?j|pz*B49swc|i zuFBprAoutkG0OFdxo2s@i`m-zFqP$KNLKhQ)JLuyiwn5|1@&h1rE;qoD_4FPEgxK0 zErU#g&1z*Youj3mIFl-%GXx8!EEiuI8)uOt8%RDPk~hdAoM)xWk+n>deXO+wd*f3w zXy7P@G9OX+kf1X_x=zd0PJ4GzB5ommSXZ^l_@m?MqLDOijSEDS_1u+3pgLS*vWj8=BXe*;+jl7M7kP(g zU^r|aSLb_8B<8>XzawwtzFSfLsShhtw3`sR#2BCCw$_3f$;e9 z=~RS??!wC{2G{GMl;K-gn;6XY(TN~8F?(qs*`r@DUNPpMwOjLPIb}zd$bE!2DcZOOm{s?Sni@73v5NnBzeQOv}9EcI;3NY1nX>*j3*)} z@$6|A!pR8Yu)5XOuFig@eGCM3`5hWPh=>xets+Gfw^>#pqU!bS4Ttz1XKJ59tkZG0 zJ1y7P7~m*RJz-yd!3UYAVF{|P8Gt{}Q40}L=k}oEj5!uD$F?WV->HaoAc2L~3$Bgj zsSwKj#ETc-b3#8Cn8Wc6e?B77(_Taf=hw;$AM*HNU)?8`7YL5dZ*5?!sBM^Z}gUx^_^_#k%^ag z+3eHRJFOY!7Dm3OQbDn#nGoGtU(xH&Opjg|ekI!$*%OlI!+F=Gn)>LT`UGJ%4O4cZ zVx!*L8skRI6lrm`0-Ct~zTFlKt{eb+f~MP(NSk@Q3mH)=LEFMcg{)WwDJplOA1jXV znoV&)Wu%`Yt}2z&w-LH`?(8IvxV7%#DTvDOB$e-UC=9TyED_K9_9gBkW@#n5+wH`p zt+r8?tE>|X?kL5j+4L@xh!s1wEY?WAY<+fmgv7v z($)yl!#8MToflhxiKgls0d_`Vn$TN>>;v&6iX3rqWISo^+B<%obPK6|Bl?!m>j%v> zP<1?eX0-KQq|)~4l)_NDT3ds>ageZ|rRw+BZ-*{cS>&xBgcFZwq^}bF5M|PvEb&?z zS;Rja&9=`#G-``#WNnYVf8uIl61XeOeRXLjR4dsbOi;*b8X+lX#10LpUq-Y$v31*a zjmk+@d6KVCj{4%mTNYL!5;S+*fF?gPZ29&CLcQw=DHhV(H$hb?KiN;JLK9NsG^p?;_=%{0mx#M2wbr{QiO>hPQ?`)KD>Yd;h%G2=L<+@)Ee0= z!9;l-{k3KL?b|s84sjnxut}O7s((CmMCeed6{IsJzghehy66|M_=W)o5tYB8LfQ?X zF~vpxK*&=k6$gGj|AP0OpiaAfwZ624Q`F0>x8zol#;1@rc~@aU|d` zT$ixG`b_>24=x7fg7JD(?1*m!ct5qt_8aY0@}bh5Cv&VQq0S(OK515$Cny zJQf+xRatJC*=a{_gkMh=HK2CZJnI5KSVUaihxX?8d@=& zP1;zewXJ`Ns2&!(Bbt=AU8N9e zkWTzI0xGE)KNZ$wBJ_8F&|M+WWrseGHX zhxETYU&SoF>2{gKIpln*ez#)#=oZ(fLSIl?i+;I#j}7}-kewl0(PO`nCp?#r?wd9e zb>|1RhvB|6zi}@~UtSgMEfCPFEL&e?L%qs!JKCwq_wAf%DPu2DrJ5(Px}?%Kb)i1m zY+c*JEfu+kE3^}@zB=<_<4EqB#C{AW!XC65tNE>E%@h7j*spY3%+y1bS8I!Tvo)Wg zN0j9lk(=OczS5E)mb>vPDJ5P%*wBf|B}f#GJzJ~X?HJ(!>(jQGSgS|7XqULeaY=1y*c>i0(!tlfgQzid;^9b1dQ?zN7_8!@@? zB}NUQabU~}877>q7a6p1F}|Q72H5Vk4sNa|ve+J12ek;pzLKsR}Z)sQp?l zefCvVw{<~?U0y9)DfP4(L*8TNY>|&-g@myJ;RJyaNiSIRX(^89P|MfqtVdv2u#xLt zR+hP|3f-ODZwhYk(vv5Cef!XVYZ7#@n>m;)z-J3m5#M5#RdAQ4U^%J zd@K2Nb397PZO<5bHswuQ~~5DGh{(MpWTjWnCi@x-Dxo zC{i5$GvTwGWJcQun>oHDvfH=)}oBFmE&-RlnTx`<5i}O<&2P&RM(<<#b z2@c^=V)pOl8;fCApwouRFFr!Z?FSgkMVM|z8idMp(rPTR`55J#8 z6zdgDR<(~T?M;sl3_7~@;Rw#tD$;`cQDxh@6 zvvS`|+$9`V^y62(Lgqn8!-pdMeJ$czr^?!UZic)#5f`oJ%KId3;{4)?UDOFbYbb=? zd9IEeeG)|nWju(;U{Tc&?-b96e43I@c>By_AeN34H7A8CE%<3JG%B!@Vi+4aZ+%88 z03(T)L8iX2g0;iNVi6x6e2w0b!?jYDCJmS5!m0IT%PioXM~IV}d^5SEtqb)qIcwr` z$oMfn7zq^%+)AenbEOQJ-A@*>hj?4aXP7tbNPCXZ^07v635EpJeiJqrKsO@!eKx&g zkjv=ws)*a)s;kpf^@>$7w&Neyn#%~md5M;bTz=*tPFPf6H@hk~;TccHJ#4{Ww zM__n;4mXS$C!Fm2Qg7HNtIf*2`yx0JK3@p^>jeCr%UC0g0?gk<$u$gq(nwQY|YlES43KfyQ^~#%Azc+uh<5JU9y?FHdua6g0BdzNwvUxQkD9xrk zu?x`+7Y|Z=!63XlyDad^Vw`6Pm=8CMHPWYz07_$7MQ31jgv{0A#dkevR%(``@@dsf z;f*q76Nhix1A8==625=khE%LQuPuBz4N#O{wcvUq4f52E(ngo6apYqP43n`6ERo6WayLrW!9#@m!U(6euez7mA5L zZK+RL;ftur!+tQnR&aRM-0UH$2e(P6z^iwUjF^Hjw$TfPuq<{I)bqD$Qp&3<>2U?Q z0Y1?1d?rV@S`qp~$W%(7jT!_#5|#d{o*T&_oouD8_+l}VA>4<1Pm7ApaxJYb5AC~RM&9MKbSd+vBu@GTm-IYXCMQ(ifQ5??^t9swv`>@q!8<^b#&$B0*} zyYpNPHQu9^{LIwB#m;mx{IVZso#~;_Hahnt6=p|5vVksDda_x`MM?Muz0$z3o>OB^ zV@fd2BuDVo2nOpGl3Fh4xa7h+br{UyPN>e>O;Yj5 z+0T7ml?WEIC|GDB#}${jSlW4@TBF97_kdJa=o{87tX7ahc5&}jyohhCAsW?V?ij(! zf_llB=i%3wB5#Z5`o5R=Eo+@{z=jusYzQuc8o;$ogsrjZoPNKBqYNcg4`5+Ud5pK3 zCm1CtW^-iO_KNyuJM^{a>Yk;Rc}bliip$C@Iy8EN(rO8Ec;8LR-d`F%vLiju)%mNx zANzgw&J?M)`$a%g$w}RpZsf7H@c?R$+P98f5t+7-G@`ud#0Bp=Fs;{#-U&fHadm?1 zwuW8an7*SCkLJ?GCPxS3u<5a5J@ZT#`Mw@=v=Su)wUV~$r?u}|d%R&+#RqMeGARDy zCmc`K5^35Z>;C3j%3ut(gc(PJPM%c5vV<>Q%=hl^u2<#7v35R&`v?RKy2=VpNgJHx z1~8eCGGiYA7}h-#opt|)MK_B<=K6=LFSL83zlnT)v(f5ie z9cAH7)83HnHWlHh$3VqLurDk(Kzb}Z(C&wBFyw}^bAHtm6P|vP_(*&9S7i_0v+Jl9 zxMIOYrot1PRFlBxvtZ#rSCNN3qV5(w%{71&*ImD(PSF@bdxI|-u`*@wV8}AMs9yU` zd3R$%xQ8*#77ThsNt0c_b9|wf8M01XY{;KSzr{Kid0SJ3|MA-QK###E7agc+X@mTNc?CJwA z7i@ynX=&s-lTU%tPP{UKWW9F*k7Al7;yS>bLg(Y}5P8s^vDkFQ>Z%uXD&o;dd9{TZL1kJGnr!JI--nZWxp5W5(qF>;1&Uoa zr)uBT;O;C~yS^MpiXw2j@RV-9x!~3HZD$*vD^UE}w2~L|@kQ5*6BT)i0i`FZ1XUG3 zEWN3tFDv+czs6U|?hK!?=$$=dzNz|v^I@q5_!wGe9AgdIq18a!HXp#pbaR&*AbcwU z=6XrotDY*mCRe0w&^(H`&5dBu&a>}8(WI!&j^Mp&n`BdFRPbAp<6Dx02LmoaI8)LG zUNXO{`Ar7<3lsXPe>vc*o7>^du)u^V;Q0$B%TiZflUP_rezK-9aaHK!8jPfXMNa9> zA6bNxzt-#N@cZL19}_^1$23KKESg zzO=atU44Eh=VKr4X9X2Jc>5@A_bc=RS=*@fyMTx2%iFA~;r$!86YKlp(XMB;_y}#o zs~(>7&s4hN`AxO6$u`Of^LNyjtxtkBtXmt8kBa{~@nAbJvCF5KmDp%Le#lM@XM3%k z@zp^HYHvvv*B7r)#mZRxq|SA=Mf^#+w=h+lB^y1?X9P@ zW&#y-6RupLEYwg|FwEk>QXn`ipr!l5szKBozFH5V>WmoI?d)uOq6ph*7XB6$B>KAm zrQ!)M614m<@l;uC`qva>%eucMKWFex_xGbZF)W#p2H&GHB^=s9<2q0K2*2uwe>sK~ zBkXWK$ctv>>Z$EYa+?JI_+!S`L|)ethp)r5#}#+m3J39sHCU4#M_LhK#lnKq<6ChS z+43If&@y;LY@f{)J6q#9Ib%o9rZZ9)O&zM9SDXPDcGQFD?K}>$e)qWebts+*``of> z$6LS7h;MXOk5Cy2o_$kxEET_)X!hbOz#5Y7Ovs&648ecM!5{wRtbi>af?;dnb?o&m zSdZk%0-3cPg)`ylB|{|^ry$U4;w^q#6>n5`{dKGys%3k&cbSti06Y0E#?OO$d%&`a zi(v6cVUSr!Q(r53+*wfokINTqCXMzja z4VnBrAAFT0($vYIH_@ue&K~;^fQX}+j~lVT>=8HD-2dCXvxE##G$%=Wt&P#%mghDa zaUgG$PgC42TJjfkx89R&mhOXZ!5dVItPT`OM=KkngAyJ^4z&Y$=5T;n>OdK{X(gRD z-qrkG?9-=}$F{+f%UFBh6Hux)O!GSy;UQ#`&=P;-R6n7Tn=?-S@a-+Nm&b43)m}K> z0J{?7$%AoTu*>&t|B#{5j>2O1S0VR^G$~1>ZZ{oe5*tS6Y17{I+3{Td4Wzs~ssk5& zvt|6fiGIH1Hs74R@f_RX@z1@$C?4CV<1{C04rY~04W_I^8iYMp;Y!_S$9q<@?=eXE zd#3BpjjK(cOqyn$6spR{dlEn6$GCOO`)M7q!hp?~< z0^nchYg2bN6D6=`(=2^4M9{csdxE!UuCV%^a9eci381qOP|bY5?-`CFdm63V5v>fS*Cdc1S(?51 zT7U>U$Iv_S@WL|B-|Oq14QQxivDlM53rM$ds2xAubfFu57wG}_iDp?En5S0+tvV<_ z?FL@OhWjD;U*s4}zDzQr@%WrLTJarqUUrY<)AzX6bEoVpwaT9sjoaskGzPWz#!4m< zCw8C9Zi(*I(M<}A8h-0{J(FpDsCghK-ONS&-8`GgU0M!+Z$r52C|!%iR^!hVo|7*r zbdaC~h`z$LLeF)e>qi!|q)A6b;WeW=Qtca*vSkf7%F<=K?}t{r^0SiaU{k@7UBv=2 zK7+>X?e)4N^9h3Cj6d*BW-VLKea5?yt&6waGULVIky<3|}u^0*vSte|`%b`zauo2Hx6x zkBy}yMIax*^Y6hbQ4YTE3~*FZ8ns1lJkK^5-ze5G`IY_OFVtmTNshq(HN^1aBubUL9P)z(M}O6(O4ZcVvt?LUtj+ zxlA{kLEil5P=P%|4mLXL?EC*dGG=*+cE(E4{>vf#v$N26oCOs4Isbh$gbn_bu)>l1 z-|qmUP?m>fsUPwF_YpN-+C|y5`+r8_NQeUf$B!R{JIyK^&Cu2uMZD)Kh}fHO`}xnP zm{=;Fd?_K>f09aG1O-!7;xiy)`NsxOVFVSVw5{Hrh8Q*R2 z6?|BEkN#M8@SBG5!HRW$%TsWWrv8}%&JgenC(;}Ce?!)j0nyi5mPh;_!wY`&5(hjZ zXPJEV?;oP&55Pd){Qr4y&0XXtMOrkVAB`UZ+`aL5)I;s?fSfJ?Q0XE6znL134p#Kz zVT+|<$xG!oo307TarD3edLbYBnUZkX{+V}q2^^vg&WQYm|E?Dbtc@kdRO^2>F=qsL z#u)dT^*`$+2-YS#%a!!rKaLW!UX0+GyZB_xf7YuVtQU`Wi;T&CHj_Je);nv*|DVl7 zh1pEw_=m3l*-Sk!u$lhfJ2-*LOy~7iOxRD4d(B$npPtQc|1!IjtOrWm762_rGT#|b ziXqjG1EQ|KS0HFL@(gHV@G}BY;)WEOpBRFIOOo3 zo{Z+S0A43G5EEvKlUPa<01@n*bJclJdo+~=(BviH$nrG!9yk&5??iJZ1w&Vb>`7jh zV^Y#t(3zh2=kb6~3t$RE{cC_kb*os@asT$kVUrw-vB$$oYmNJ$4OwH+rbGC?Pt)m- z?eeGRZ#I{&KBxiId;t*daL$okJiR>q*(!H=JXirZ&#r*Zi3ANSZtyXv|BU_mpfSL= z28f6-1g^XPyR-tNhT~jmyu?mI~qpX28ns`Ea-2C2O1OANASFQZ!5g*>NS|{!^ztAPb~SdhGJ_^!xTf`BRy`Y#FI_Ko4}2 zsb4WWo&1(Jvv`avccjpCKJkyS1g6GQ3dC+oi0k-^&At9WAbg*Eczt9xf*IPl{fs{x zCv{^`SukH6{p#bzOZ&l>3T;9?FC>w13vJ_T(CzRZFFYf}#4t%AtcZLCP& zVxsb~1#q*1$~Sz!#$?F?r`4|F^|QLt1qf;f{E#)_{P$EyYJ;+(eM{i}W!<+1z90~$ z#(#D40_}4m0A~rt2xQwEWI6bbPk&wpjRU5sRlx42>4P#_f?cqE^1p6=|9Rn!_<1@_ zGg66(9uJ#NzLdA9$?hgp01-_j;A!3j%13Z%&>rE#0eypcVEuQqlabUlQH2VM+kjl2 z8eZM7;q*aNSMJ>NXlhxOW*Y1Os{SVTA= z=E?!hX(|h#_#o(M3G!(DnaYQF)=-sC$4eQl{6RZ0oKMoz5P;i?Oy;?V6l+-3o(1%w zsD7YuG{K1``!Np4g^-`ZAv<7YV+1FFoT2j3*Xl;9IN6gGSD;)OUfp=`_MOuXsi{Ys z?CEJrb^WU&w~g~~e2ORKzMln|yvFq1zMCEQ+-v!a%ghLx&^4|!*jz@D>LziKebX{m z_5`PrnG`RmMGcQ@0tlEpoU`W1?L_Ie9q`r6gmTuoeA@UJj9x-S7H@{bGQpi(!uF@1 z=X}ss(BpxE4*(@~9D8K{SfmwlY$etL{A(=8>a~wxF`hY;)v^cd#F(K3N7^*3@YEEg z@cP9;w}Fo>B0xT)*;=u_dK~bVm>a(GYAX7@NxrDQLKc0codoRh?cdc+GG$MJ{f+=A zr?c|ATO5_q=Jx&#a!zM)Q3<8~fC{X}FMbm!pHN=A6`DOr!*9wM`ALWMMJd}j$hqjY zMJeFf-+^)!_LMVF$*~5|JO8X7e4iLVL14;!yLb zvf;GdFse``m4*xCC*&;+`QJ=(ipt+wE;oNamtrM=*O6vrrC?l4}2| z?P21JmvuN7a@yx+z=SfP<$GA>Elw9tv#N08%2GZplp-2j%T|85(WPwpEuc=zOi_K1JmeKAIFgO<-{Qw&gqM z|0Kpv&0p~Wo_#lSTbLClId~hG&JP(WU}N*dAw|^Ha(XcQ{*#Nz`;gI+$9wv~)~2RS zfpMD!dk(eJb8NINaAyj~txLHTbX^hbAbBlX>mzy7;dgEJy>ydN`#GzIAkN587WQ5| z!QR-(Ic*OA&Ih(xRPF46uV^+~BUdkg3wW?D)L2e)$FzF( z3JtlUqO=&)^`Ck(OUM(DJr38%A&M&$uz$~;kze?MOyf?hOE@@uVq2_@?3-E9F>M^exezN$_=Id% zNdg1Z8%HR|3Xz7d4ck+9u7XRc3Q5m1pUvP}Io=XntR-_-kn1-L?EAL&;a_J*%LyXX z>$l6o4`jhcKmt9(TOIPkxf@E%Cwf}Tsz*2!Bs-Kz2Aja42H-zDb)k9wo&6NYt+Bx4 z;X6x}KB7>cYJT{#$h*nsSe;VZ9i$@@v%ZA{a0_P8W~^={Z{=2Dd3n&m8~uHEl%Xq| zG)}p&DZ=zM5xh--f?217-50+Mw7hqcuscB&%uc=rE{ z&%JsgqMNZo0@ztP>bIjE(Wz4j-~)K(}FGHNFM4E z4Dbkl(^9}>KR4({n4kBC@$TbSC{~EEE zKL(MSK*3<5mXP6|Y*vTV9#?2=1NwsZ;txcd5ExKW!T}!UX^)ZPKq$il*hmrRl}Bpx hdn_;nh6-^8{@~B>EoI41F_2^c0#8>zmvv4FO#rncc}@TT literal 0 HcmV?d00001 From 354fa86fb519e0cf311ea5e243126b47bf9cb6ae Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Thu, 26 Dec 2024 16:43:39 -0800 Subject: [PATCH 13/15] Fixing some typos --- examples/pytest/some_actions.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/examples/pytest/some_actions.py b/examples/pytest/some_actions.py index b158b338..9e3ac277 100644 --- a/examples/pytest/some_actions.py +++ b/examples/pytest/some_actions.py @@ -1,5 +1,3 @@ -# TODO: create some code to test - from typing import Any, Callable, Dict, Generator, List, Tuple import openai @@ -22,12 +20,12 @@ def run_hypothesis(state: State) -> State: hypothesis = state["hypothesis"] transcription = state["transcription"] prompt = ( - f"Given the following diagnosis hypothesis and medical transcription:\n\n" + "Given the following diagnosis hypothesis and medical transcription:\n\n" f"Diagnosis hypothesis:{hypothesis}\n\n" f"Transcription:\n```{transcription}```\n\n" - f"Answer 'yes' if you believe the hypothesis has a strong reason to hold given the content of the transcription." - f"Answer 'no' if you do not believe the hypothesis holds given the content of the transcription." - f"Answer 'unsure' if you are unsure and need more details." + "Answer 'yes' if you believe the hypothesis has a strong reason to hold given the content of the transcription. " + "Answer 'no' if you do not believe the hypothesis holds given the content of the transcription. " + "Answer 'unsure' if you are unsure and need more details. " ) response = client.chat.completions.create( messages=[ @@ -155,6 +153,7 @@ def run_my_agent( print(run_my_agent("Patient has a limp and is unable to flex right ankle. Ankle is swollen.")) print( run_my_agent( - "Patient fell off and landed on their right arm. Their right wrist is swollen, they can still move their fingers, and there is only minor pain or discomfort when the wrist is moved or touched." + "Patient fell off and landed on their right arm. Their right wrist is swollen, they can still move their " + "fingers, and there is only minor pain or discomfort when the wrist is moved or touched." ) ) From 4838d64cd64df2196c805268829622f3080566f5 Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Thu, 26 Dec 2024 16:48:31 -0800 Subject: [PATCH 14/15] Adds UI screencap to pytest example --- examples/pytest/README.md | 6 ++++++ examples/pytest/burr_ui.png | Bin 0 -> 343716 bytes 2 files changed, 6 insertions(+) create mode 100644 examples/pytest/burr_ui.png diff --git a/examples/pytest/README.md b/examples/pytest/README.md index aaf43401..85d1c890 100644 --- a/examples/pytest/README.md +++ b/examples/pytest/README.md @@ -307,3 +307,9 @@ To run the tests, you can run them with pytest: ```bash pytest test_some_actions.py ``` + +After running the tests, you can see the results in a CSV file called `results.csv` in the same directory as the tests. + +You should also see the following in the Burr UI: + +Burr UI diff --git a/examples/pytest/burr_ui.png b/examples/pytest/burr_ui.png new file mode 100644 index 0000000000000000000000000000000000000000..a33ff973a8bd006a666599e18211d88b14a83f50 GIT binary patch literal 343716 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ɑ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 literal 0 HcmV?d00001 From fb960cbfe379218358c9a6af126c77f31256bc2e Mon Sep 17 00:00:00 2001 From: Stefan Krawczyk Date: Thu, 26 Dec 2024 16:53:05 -0800 Subject: [PATCH 15/15] Adds link to Hamel's post on figuring out metrics for evals --- examples/pytest/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/pytest/README.md b/examples/pytest/README.md index 85d1c890..732e0cb0 100644 --- a/examples/pytest/README.md +++ b/examples/pytest/README.md @@ -86,6 +86,10 @@ We might want to evaluate the output in a number of ways: It is rare that you solely rely on (1) with LLMs, and you'll likely want to evaluate the output in a number of ways before making a pass / fail decision. E.g. that the output is close to the expected output, that it contains the right words, etc., and then make a pass / fail decision based on all these evaluations. +We will not dive deep into what evaluation logic you should use. If you want to dive deeper there, we +suggest you start with [posts like this](https://hamel.dev/notes/llm/officehours/evalmultiturn.html) - you need to understand your data and outcomes to +choose the right evaluation logic. + ### Not failing on first assert failure / logging test results One limitation of pytest is that it fails on the first assertion failure. This is not ideal if you want to evaluate multiple aspects of the output before making a pass / fail decision.