Tracing and tagging functions
BAML allows you to trace any function with the @trace decorator. This will make the function’s input and output show up in the Boundary dashboard. This works for any python function you define yourself. BAML LLM functions (or any other function declared in a .baml file) are already traced by default. Logs are only sent to the Dashboard if you setup your environment variables correctly.
Prerequisites
Make sure you setup the Boundary dashboard project before you start.
Make sure you also CTRL+S a .baml file to generate the baml_client
Example
In the example below, we trace each of the two functions pre_process_text
and full_analysis
:
This allows us to see each function invocation, as well as all its children in the dashboard:
See running tests for more information on how to run this test.
Adding custom tags
The dashboard view allows you to see custom tags for each of the function calls. This is useful for adding metadata to your traces and allow you to query your generated logs more easily.
To add a custom tag, you can import set_tags(..) as below: