Giter Site home page Giter Site logo

jombooth / burr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dagworks-inc/burr

0.0 0.0 0.0 4.78 MB

State machine for LLMs, ML, and data projects. Build applications and watch them think.

Home Page: https://burr.dagworks.io

License: BSD 3-Clause Clear License

Shell 0.09% JavaScript 0.43% Python 62.41% TypeScript 36.19% CSS 0.29% HTML 0.58%

burr's Introduction

Burr

What is Burr?

Burr is a way to express a state machine (i.e. a graph/flowchart) for data/AI projects. You can (and should!) use it for anything where managing state can be hard. Hint: managing state is always hard! Like in a RAG chat application, or if you're doing hyperparameter tuning, or a trading simulation.

Link to documentation. Quick video intro here.

Burr is:

  1. A (dependency-free) low abstraction python library that enables you to build and manage state machines with simple python functions
  2. It comes with a UI you can use view execution telemetry for introspection and debugging

What can you do with Burr?

Burr can be used for a variety of applications. Burr can build a state machine to orchestrate, express, and track:

  1. A gpt-like chatbot
  2. A machine learning pipeline
  3. A trading simulation

And a lot more!

Using hooks and other integrations you can (a) integrate with any of your favorite vendors (LLM observability, storage, etc...), and (b) build custom actions that delegate to your favorite libraries (like Hamilton).

Burr will not tell you how to build your models, how to query APIs, or how to manage your data. It will help you tie all these together in a way that scales with your needs and makes following the logic of your system easy. Burr comes out of the box with a host of integrations including tooling to build a UI in streamlit and watch your state machine execute.

Burr at work

Why the name Burr?

Burr is named after Aaron Burr, founding father, third VP of the United States, and murderer/arch-nemesis of Alexander Hamilton. What's the connection with Hamilton? This is DAGWorks' second open-source library release after the Hamilton library Here we imagine a world in which Burr and Hamilton lived in harmony and saw through their differences and thus were happy to work together. We originally built Burr as a harness to handle state between executions of Hamilton DAGs (because DAGs don't have cycles), but realized that it has a wide array of applications and decided to release it more broadly.

Getting Started

To get started, install from pypi, using your favorite package manager:

pip install "burr[start]"

This includes the dependencies for the tracking server (see next step) -- alternatively if you want the core library only then just run pip install burr. Then, run the server and check out the demo projects:

$ burr

2024-02-23 11:43:21.249 | INFO     | burr.cli.__main__:run_server:88 - Starting server on port 7241

This will start a server and open up a browser window with a few demo projects preloaded for you to play with.

Next, see the documentation for getting started, and follow the example. Then read through some of the concepts and write your own application!

Roadmap

While Burr is stable and well-tested, we have quite a few tools/features on our roadmap!

  1. Various efficiency/usability improvements for the core library (see planned capabilities for more details). This includes:
    1. Fully typed state with validation
    2. First-class support for retries + exception management
    3. More integration with popular frameworks (LCEL, LLamaIndex, Hamilton, etc...)
    4. Capturing & surfacing extra metadata, e.g. annotations for particular point in time, that you can then pull out for fine-tuning, etc.
  2. Cloud-based checkpointing/restart for debugging or production use cases (save state to db and replay/warm start, backed by a configurable database)
  3. Tooling for hosted execution of state machines, integrating with your infrastructure (Ray, modal, FastAPI + EC2, etc...)

If you want to avoid self-hosting the above solutions we're building Burr Cloud. To let us know you're interested sign up here for the waitlist to get access.

Contributing

We welcome contributors! To get started on developing, see the developer-facing docs.

burr's People

Contributors

elijahbenizzy avatar skrawcz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.