blob: 530ecfc7cd9c5140dd51b4ba29d812114e2b2955 [file]
=========
Why Burr?
=========
Why do you need a state machine for your applications? Won't the normal programming constructs suffice?
**Yes, until a point.** Let's take a look at what you need to build a production-level LLM application:
1. **Tracing/telemetry** -- LLMs can be chaotic, and you need visibility into what decisions it made and how long it took to make them.
2. **State persistence** -- thinking about how to save/load your application is a whole other level of infrastructure you need to worry about.
3. **Visualization/debugging** -- when developing you'll want to be able to view what it is doing/did + load up the data at any point
4. **Manage interaction between users/LLM** -- pause for input in certain conditions
5. **Data gathering for evaluation + test generation** -- storing data run in production to use for later analysis/fine-tuning
You can always patch together various frameworks or build it all yourself, but at that point you're going to be spending a lot of time on tasks that
are not related to the core value proposition of your software.
**Burr was built to make these all easier.**
By modeling your application as a state machine of simple python constructs you can have the best of both worlds.
Bring in whatever infrastructure/tooling you want and get all of the above. Burr is meant to start off as an extremely lightweight tool to
make building LLM (+ a wide swath of other) applications easier. The value compounds as you leverage more of the ecosystems, plugins, and additional
features it provides.