This is an automated email from the ASF dual-hosted git repository. skrawcz pushed a commit to branch docs/general_update in repository https://gitbox.apache.org/repos/asf/burr.git
commit fa086e400806f7f9bd6199b4eb7b6f2f79b53e1f Author: Stefan Krawczyk <[email protected]> AuthorDate: Sun Jul 6 09:31:31 2025 -0700 Updates docs references Adds apache, updates links. Need to double check I haven't missed anything though. --- docs/concepts/actions.rst | 2 +- docs/concepts/additional-visibility.rst | 2 +- docs/concepts/hooks.rst | 2 +- docs/concepts/index.rst | 2 +- docs/concepts/overview.rst | 4 ++-- docs/concepts/parallelism.rst | 6 +++--- docs/concepts/recursion.rst | 4 ++-- docs/concepts/sdlc.rst | 2 +- docs/concepts/state-persistence.rst | 4 ++-- docs/concepts/state-typing.rst | 4 ++-- docs/concepts/state.rst | 4 ++-- docs/concepts/streaming-actions.rst | 2 +- docs/concepts/sync-vs-async.rst | 6 +++--- docs/concepts/tracking.rst | 14 ++++++------- docs/conf.py | 2 +- docs/contributing/architecture.rst | 4 ++-- docs/contributing/contributing.rst | 2 +- docs/contributing/index.rst | 4 ++-- docs/examples/agents/divide-and-conquer.md | 4 ++-- docs/examples/chatbots/gpt-like-chatbot.ipynb | 30 +++++++++++++-------------- docs/examples/index.rst | 2 +- docs/getting_started/install.rst | 2 +- docs/getting_started/simple-example.rst | 4 ++-- docs/getting_started/up-next.rst | 2 +- docs/getting_started/why-burr.rst | 8 +++---- docs/index.rst | 13 +++--------- docs/main.rst | 4 ++-- docs/reference/integrations/opentelemetry.rst | 2 +- docs/reference/integrations/traceloop.rst | 2 +- 29 files changed, 68 insertions(+), 75 deletions(-) diff --git a/docs/concepts/actions.rst b/docs/concepts/actions.rst index 541cea83..b7b85846 100644 --- a/docs/concepts/actions.rst +++ b/docs/concepts/actions.rst @@ -6,7 +6,7 @@ Actions .. note:: - Actions are the core building block of Burr. They read from state and write to state. + Actions are the core building block of Apache Burr. They read from state and write to state. They can be synchronous and asynchonous, and have both a ``sync`` and ``async`` API. There are both function and class-based APIs. diff --git a/docs/concepts/additional-visibility.rst b/docs/concepts/additional-visibility.rst index b2620f92..9f58ae03 100644 --- a/docs/concepts/additional-visibility.rst +++ b/docs/concepts/additional-visibility.rst @@ -4,7 +4,7 @@ Additional Visibility .. note:: - Burr comes with the ability to see inside your actions. This is a very pluggable framework + ApacheBurr comes with the ability to see inside your actions. This is a very pluggable framework that comes with the default tracking client, but can also be hooked up to tools such as `OpenTelemetry <https://opentelemetry.io/>`_ (OTel) ---------- diff --git a/docs/concepts/hooks.rst b/docs/concepts/hooks.rst index 8ff6100c..38f96edd 100644 --- a/docs/concepts/hooks.rst +++ b/docs/concepts/hooks.rst @@ -8,7 +8,7 @@ Hooks Hooks allow you to customize every aspect of Burr's execution, plugging in whatever tooling, observability framework, or debugging tool you need. -Burr has a system of lifecycle adapters (adapted from the similar `Hamilton <https://github.com/dagworks-inc/hamilton>`_ concept), which allow you to run tooling before and after +Apache Burr has a system of lifecycle adapters (adapted from the similar `Hamilton <https://github.com/dagworks-inc/hamilton>`_ concept), which allow you to run tooling before and after various places in a node's execution. For instance, you could: 1. Log every step as a trace in datadog diff --git a/docs/concepts/index.rst b/docs/concepts/index.rst index f4aaba77..ae6a9468 100644 --- a/docs/concepts/index.rst +++ b/docs/concepts/index.rst @@ -2,7 +2,7 @@ Concepts ==================== -Overview of the concepts -- read these to get a mental model for how Burr works. +Overview of the concepts -- read these to get a mental model for how ApacheBurr works. .. _concepts: diff --git a/docs/concepts/overview.rst b/docs/concepts/overview.rst index de587899..fa4887d5 100644 --- a/docs/concepts/overview.rst +++ b/docs/concepts/overview.rst @@ -2,9 +2,9 @@ Cheat Sheet =========== -This is a quick overview of Burr's design -- the concepts are explored in more detail in the following sections. Read over this for a very high-level overview, or use this as a cheat sheet later. +This is a quick overview of Apache Burr's design -- the concepts are explored in more detail in the following sections. Read over this for a very high-level overview, or use this as a cheat sheet later. -- With Burr you write an :ref:`Application <applications>` -- this manages control flow (allowing for automated or user-blocking workflows), :ref:`persistence <state-persistence>` to DBs, logs :ref:`telemetry <tracking>`, and delegates to a variety of plugins/integrations. +- With ApacheBurr you write an :ref:`Application <applications>` -- this manages control flow (allowing for automated or user-blocking workflows), :ref:`persistence <state-persistence>` to DBs, logs :ref:`telemetry <tracking>`, and delegates to a variety of plugins/integrations. - Applications are composed of :ref:`actions <actions>` (functions that write to/read from state), and :ref:`transitions <transitions>` (functions that determine the next action to execute based on state). - :ref:`State <state>` is immutable and uses the special Burr :py:class:`State <burr.core.state.State>` API. You write to it by applying a state operation (e.g. ``state = state.update(key=value)``, which returns a new state instance with the updated value. - All other production/debugging concerns are implemented as :ref:`hooks <hooks>`, which are simple callbacks that are called at various points in the application lifecycle (store/retrieve state, log information, etc...). diff --git a/docs/concepts/parallelism.rst b/docs/concepts/parallelism.rst index ba7fa455..79243539 100644 --- a/docs/concepts/parallelism.rst +++ b/docs/concepts/parallelism.rst @@ -4,7 +4,7 @@ Parallelism =========== -Burr can run multiple actions in parallel. Each parallel branch can contain one or more actions, and different branches can have different actions. This is useful when: +Apache Burr can run multiple actions in parallel. Each parallel branch can contain one or more actions, and different branches can have different actions. This is useful when: - Trying different prompts with an LLM - Trying a prompt with different LLMs @@ -19,7 +19,7 @@ This section shows how to enable parallelism and presents use cases. TL;DR ===== -Burr provides a high-level and a low-level API for parallelism. The high-level API supports many different patterns and should be sufficient for most use cases. +Apache Burr provides a high-level and a low-level API for parallelism. The high-level API supports many different patterns and should be sufficient for most use cases. - ``MapStates``: Apply an action to multiple values in state then reduce the action results (e.g., different prompts to the same LLM). - ``MapActions``: Apply different actions to the same state value then reduce the actions result (e.g., same prompt to different LLMs). @@ -34,7 +34,7 @@ With the low-level API, you can manually determine how parallel actions or subgr Overview ======== -Burr allows you to define parallel actions by expanding a single action into multiple individual actions or subgraphs which +Apache Burr allows you to define parallel actions by expanding a single action into multiple individual actions or subgraphs which will execute them all and joining the results. This is a simple `map-reduce <https://en.wikipedia.org/wiki/MapReduce>`_ pattern. Currently, Burr has two separate APIs for building parallel applications -- higher level (use this first), and lower level. diff --git a/docs/concepts/recursion.rst b/docs/concepts/recursion.rst index e27dd06f..d0f173e9 100644 --- a/docs/concepts/recursion.rst +++ b/docs/concepts/recursion.rst @@ -4,7 +4,7 @@ Recursive Applications ====================== -Burr supports sub-applications. E.G. running Burr within Burr. +ApacheBurr supports sub-applications. E.G. running Burr within Burr. Currently this capability is only done with tracking (linking applications), but we are actively working on building first-level constructs that allow this. @@ -20,7 +20,7 @@ And so on. These can be arbitrarily complex and nested, allowing agents consisti .. image:: ../_static/meme.png :align: center -You can find an example `here <https://github.com/dagworks-inc/burr/tree/main/examples/recursive>`_. +You can find an example `here <https://github.com/apache/burr/tree/main/examples/recursive>`_. -------- Tracking diff --git a/docs/concepts/sdlc.rst b/docs/concepts/sdlc.rst index 0e58d302..805eceee 100644 --- a/docs/concepts/sdlc.rst +++ b/docs/concepts/sdlc.rst @@ -17,7 +17,7 @@ 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. +1. Write code with ApacheBurr. 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. diff --git a/docs/concepts/state-persistence.rst b/docs/concepts/state-persistence.rst index 1c0bcd7e..d59e47f8 100644 --- a/docs/concepts/state-persistence.rst +++ b/docs/concepts/state-persistence.rst @@ -6,14 +6,14 @@ State Persistence .. note:: - Burr comes with a core set of APIs that enable state `persistence` -- the ability + Apache Burr comes with a core set of APIs that enable state `persistence` -- the ability to save and load state automatically from a database. This enables you to launch an application, pause it, and restart where you left off. The API is customizable, and works with any database you want. TL;DR ----- -Burr provides an API to save and load state from a database. This enables you to pause and restart applications where you left off. +Apache Burr provides an API to save and load state from a database. This enables you to pause and restart applications where you left off. You can implement a custom state persister or use one of the pre-built ones. You can fork state from a previous run to enable debugging/loading. diff --git a/docs/concepts/state-typing.rst b/docs/concepts/state-typing.rst index 337f82b8..59276c81 100644 --- a/docs/concepts/state-typing.rst +++ b/docs/concepts/state-typing.rst @@ -6,7 +6,7 @@ Typing State .. note:: - Burr allows you to specify types for your state. This enables more self-documenting, easy-to-write actions, + Apach Burr allows you to specify types for your state. This enables more self-documenting, easy-to-write actions, allows you to type your entire application object for downstream consumption, and provides a way to inspect the state of your application prior to execution (for use by a web-server/other typing system). This is done through the use of pydantic schemas. @@ -14,7 +14,7 @@ Typing State For a quick-start guide, see the `example <https://github.com/DAGWorks-Inc/burr/tree/main/examples/typed-state>`_ -Burr has two approaches to specifying a schema for a state. These can work together as long as they specify clashing state: +Apache Burr has two approaches to specifying a schema for a state. These can work together as long as they specify clashing state: 1. Application-level typing 2. Action-level typing diff --git a/docs/concepts/state.rst b/docs/concepts/state.rst index b5e87413..7f0c3331 100644 --- a/docs/concepts/state.rst +++ b/docs/concepts/state.rst @@ -6,8 +6,8 @@ State .. note:: - Burr's ``State`` API enables actions to talk to each other, and enables you to persist data. - Burr has a ``State`` API that allows you to manipulate state in a functional way. + Apache Burr's ``State`` API enables actions to talk to each other, and enables you to persist data. + Apach Burr has a ``State`` API that allows you to manipulate state in a functional way. The :py:class:`State <burr.core.state.State>` class provides the ability to manipulate state for a given action. It is entirely immutable, meaning that you can only create new states from old ones, not modify them in place. diff --git a/docs/concepts/streaming-actions.rst b/docs/concepts/streaming-actions.rst index 28709345..dde6e6d3 100644 --- a/docs/concepts/streaming-actions.rst +++ b/docs/concepts/streaming-actions.rst @@ -5,7 +5,7 @@ Streaming Actions .. note:: - Burr actions can stream results! This enables you to display results to the user as + Apache Burr actions can stream results! This enables you to display results to the user as tokens are streamed in. diff --git a/docs/concepts/sync-vs-async.rst b/docs/concepts/sync-vs-async.rst index c24e37c5..52a43c02 100644 --- a/docs/concepts/sync-vs-async.rst +++ b/docs/concepts/sync-vs-async.rst @@ -5,7 +5,7 @@ Sync vs Async Applications TL;DR ------ -Burr gives you the ability to write synchronous (standard python) and asynchronous (``async def``/``await``) Burr applications. You then run these applications in some sort of python context (e.g. script, web-service, aws lambda, etc). Whether you choose to write your Burr application using Burr's synchronous or asynchronous features depends on where you plan to run your Burr application. At a high level: +Apache Burr gives you the ability to write synchronous (standard python) and asynchronous (``async def``/``await``) Burr applications. You then run these applications in some sort of python context (e.g. script, web-service, aws lambda, etc). Whether you choose to write your Burr application using Burr's synchronous or asynchronous features depends on where you plan to run your Burr application. At a high level: 1. Use the ``async`` interfaces when you have I/O-heavy applications that require horizontal scaling, and have available asynchronous APIs (E.G. async LLM APIs in a web-service like FastAPI) @@ -27,12 +27,12 @@ Comparison A synchronous Python application processes tasks sequentially for every thread/process it executes, blocking entirely on the result of the prior call. When using Burr, this means that two (or more) separate Burr applications, if they are to run concurrently, have to be run in separate threads/processes which you manage / control. -Specifically for Burr, this means that you have a 1:1 app -> thread/process mapping (unless you're using :ref:`parallelism <parallelism>` and explicitly multithreading sub-actions). +Specifically for Apache Burr, this means that you have a 1:1 app -> thread/process mapping (unless you're using :ref:`parallelism <parallelism>` and explicitly multithreading sub-actions). An asynchronous application can parallelize multiple I/O bound tasks within the confines of a single thread. At the time that a task blocks on I/O it can give control back to the process, allow it to run other tasks simultaneously. -In the case of Burr, Burr supports this model in running multiple Burr applications, in parallel, on the same as thread (i.e. the asyncio event loop). +In the case of Apache Burr, Apache Burr supports this model in running multiple Burr applications, in parallel, on the same as thread (i.e. the asyncio event loop). Note, however, that you have to ensure your Burr application is async all the way down -- E.G. that every blocking call is called using `await` -- if it blocks the event loop through a slow, synchronous call, it will block *all* current applications. diff --git a/docs/concepts/tracking.rst b/docs/concepts/tracking.rst index 01047d32..1061d199 100644 --- a/docs/concepts/tracking.rst +++ b/docs/concepts/tracking.rst @@ -1,12 +1,12 @@ .. _tracking: -============= -Tracking Burr -============= +==================== +Tracking Apache Burr +==================== .. note:: - Burr's telemetry system is built in and easy to integrate. It allows you to understand + Apache Burr's telemetry system is built in and easy to integrate. It allows you to understand the flow of your application, and watch it make decisions in real time. You can run it with sample projects by running ``burr`` in the terminal after ``pip install "burr[start]"``. @@ -92,10 +92,10 @@ run it with the following command: This will start a server on port 7241, and open up a browser window with the UI for you to explore. -Launch Burr UI from a notebook -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Launch Apache Burr UI from a notebook +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -You can launch the Burr UI from a notebook or Google Colab using the ``%burr_ui`` "IPython magic". +You can launch the Apach Burr UI from a notebook or Google Colab using the ``%burr_ui`` "IPython magic". This will print the URL to access the Burr UI web app. .. code-block:: python diff --git a/docs/conf.py b/docs/conf.py index efa9e0a8..394c766c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -39,7 +39,7 @@ html_css_files = [ html_title = "Burr" html_theme_options = { - "source_repository": "https://github.com/dagworks-inc/burr", + "source_repository": "https://github.com/apache/burr", "source_branch": "main", "source_directory": "docs/", "light_css_variables": { diff --git a/docs/contributing/architecture.rst b/docs/contributing/architecture.rst index 4af63fec..dda547d9 100644 --- a/docs/contributing/architecture.rst +++ b/docs/contributing/architecture.rst @@ -2,7 +2,7 @@ Architecture ============ -Some notes on the design/implementation of Burr: +Some notes on the design/implementation of Apache Burr: -------------- Python Package @@ -12,7 +12,7 @@ Dependencies ------------ A note on dependencies: -- The core Burr library will have zero dependencies. Currently its only dependency in hamilton, but that will be removed in the future. +- The core Apache Burr library will have zero dependencies. Currently its only dependency in hamilton, but that will be removed in the future. - Any other extensions (the server, the CLI, etc...) are allowed dependencies -- specify these as install targets in ``pyproject.toml`` - The dependencies/plugins will live alongside the core library, and contain guards to ensure that the right libraries are installed. You can do this with ``burr.integrations.base.require_plugins`` diff --git a/docs/contributing/contributing.rst b/docs/contributing/contributing.rst index f8002f28..b6ab6715 100644 --- a/docs/contributing/contributing.rst +++ b/docs/contributing/contributing.rst @@ -44,7 +44,7 @@ Developer notes CLI --- -Burr comes with a `cli` that is both user/developer facing. +Apache Burr comes with a `cli` that is both user/developer facing. **this is required in order to publish, do not do so otherwise** diff --git a/docs/contributing/index.rst b/docs/contributing/index.rst index 5bd4064a..cd6be61a 100644 --- a/docs/contributing/index.rst +++ b/docs/contributing/index.rst @@ -4,9 +4,9 @@ Contributing .. _examples: -Instructions to develop/get started with `Burr`! If you don't know where +Instructions to develop/get started with `Apache Burr`! If you don't know where to start, you can always reach out to us: -- Start an issue or discussion on our `GitHub <https://github.com/dagworks-inc/burr>`_. +- Start an issue or discussion on our `GitHub <https://github.com/apache/burr>`_. - Reach out to us by `email <mailto:[email protected]>`_ .. toctree:: diff --git a/docs/examples/agents/divide-and-conquer.md b/docs/examples/agents/divide-and-conquer.md index 7d59f183..cf6c4dfe 100644 --- a/docs/examples/agents/divide-and-conquer.md +++ b/docs/examples/agents/divide-and-conquer.md @@ -13,7 +13,7 @@ We provide two implementations of this idea: with [Hamilton](https://github.com/ ## With Hamilton -<a target="_blank" href="https://colab.research.google.com/github/dagworks-inc/burr/blob/main/examples/multi-agent-collaboration/hamilton/notebook.ipynb"> +<a target="_blank" href="https://colab.research.google.com/github/apache/burr/blob/main/examples/multi-agent-collaboration/hamilton/notebook.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> @@ -21,6 +21,6 @@ We provide two implementations of this idea: with [Hamilton](https://github.com/ ## With LangChain Expression Language (LCEL) -<a target="_blank" href="https://colab.research.google.com/github/dagworks-inc/burr/blob/main/examples/multi-agent-collaboration/lcel/notebook.ipynb"> +<a target="_blank" href="https://colab.research.google.com/github/apache/burr/blob/main/examples/multi-agent-collaboration/lcel/notebook.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a> diff --git a/docs/examples/chatbots/gpt-like-chatbot.ipynb b/docs/examples/chatbots/gpt-like-chatbot.ipynb index cde600f9..5503d0b9 100644 --- a/docs/examples/chatbots/gpt-like-chatbot.ipynb +++ b/docs/examples/chatbots/gpt-like-chatbot.ipynb @@ -11,7 +11,7 @@ "<img src=\"https://github.com/user-attachments/assets/2ab9b499-7ca2-4ae9-af72-ccc775f30b4e\" width=\"100\" align=\"left\" /> + \n", "<img src=\"https://cdn.mos.cms.futurecdn.net/VgGxJABA8DcfAMpPPwdv6a.jpg\" width=\"200\" align=\"center\"/>\n", "\n", - "[https://github.com/dagworks-inc/burr](https://github.com/dagworks-inc/burr) by DAGWorks Inc. (YCW23 & StartX).\n", + "[https://github.com/apache/burr](https://github.com/apache/burr) by DAGWorks Inc. (YCW23 & StartX).\n", "\n", "Takeš :\n", "\n", @@ -680,19 +680,19 @@ "evalue": "Demo error", "output_type": "error", "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[12], line 5\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mquit\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m==\u001b[39m user_input\u001b[38;5;241m.\u001b[39mlower():\n\u001b[1;32m 4\u001b[0m \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[0;32m----> 5\u001b[0m last_action, action_result, app_state \u001b[38;5;241m=\u001b[39m \u001b[43mapp\u001b[49m\u001b[38;5;241;43m.\u001b[3 [...] - "File \u001b[0;32m~/dagworks/burr/burr/telemetry.py:273\u001b[0m, in \u001b[0;36mcapture_function_usage.<locals>.wrapped_fn\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 270\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(call_fn)\n\u001b[1;32m 271\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapped_fn\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 27 [...] - "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:878\u001b[0m, in \u001b[0;36mApplication.run\u001b[0;34m(self, halt_before, halt_after, inputs)\u001b[0m\n\u001b[1;32m 876\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m:\n\u001b[1;32m 877\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 878\u001b[0m \u001b[38;5;28;43mnext\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mgen\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1 [...] - "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:823\u001b[0m, in \u001b[0;36mApplication.iterate\u001b[0;34m(self, halt_before, halt_after, inputs)\u001b[0m\n\u001b[1;32m 820\u001b[0m prior_action: Optional[Action] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 821\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhas_next_action():\n\u001b[1;32m 822\u001b[0m \u001b[38;5;66;03 [...] - "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:495\u001b[0m, in \u001b[0;36mApplication.step\u001b[0;34m(self, inputs)\u001b[0m\n\u001b[1;32m 492\u001b[0m \u001b[38;5;66;03m# we need to increment the sequence before we start computing\u001b[39;00m\n\u001b[1;32m 493\u001b[0m \u001b[38;5;66;03m# that way if we're replaying from state, we don't get stuck\u001b[39;00m\n\u001b[1;32m 494\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_increment_sequ [...] - "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:548\u001b[0m, in \u001b[0;36mApplication._step\u001b[0;34m(self, inputs, _run_hooks)\u001b[0m\n\u001b[1;32m 546\u001b[0m exc \u001b[38;5;241m=\u001b[39m e\n\u001b[1;32m 547\u001b[0m logger\u001b[38;5;241m.\u001b[39mexception(_format_BASE_ERROR_MESSAGE(next_action, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_state, inputs))\n\u001b[0;32m--> 548\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m e\n\ [...] - "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:534\u001b[0m, in \u001b[0;36mApplication._step\u001b[0;34m(self, inputs, _run_hooks)\u001b[0m\n\u001b[1;32m 532\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 533\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m next_action\u001b[38;5;241m.\u001b[39msingle_step:\n\u001b[0;32m--> 534\u001b[0m result, new_state \u001b[38;5;241m=\u001b[39m \u001b[43m_run_single_step_action\u001b[49m\u001b[43m(\u001b[49m [...] - "File \u001b[0;32m~/dagworks/burr/burr/core/application.py:233\u001b[0m, in \u001b[0;36m_run_single_step_action\u001b[0;34m(action, state, inputs)\u001b[0m\n\u001b[1;32m 230\u001b[0m \u001b[38;5;66;03m# TODO -- guard all reads/writes with a subset of the state\u001b[39;00m\n\u001b[1;32m 231\u001b[0m action\u001b[38;5;241m.\u001b[39mvalidate_inputs(inputs)\n\u001b[1;32m 232\u001b[0m result, new_state \u001b[38;5;241m=\u001b[39m _adjust_single_step_output(\n\u001b[0;32m--> 2 [...] - "File \u001b[0;32m~/dagworks/burr/burr/core/action.py:533\u001b[0m, in \u001b[0;36mFunctionBasedAction.run_and_update\u001b[0;34m(self, state, **run_kwargs)\u001b[0m\n\u001b[1;32m 532\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mrun_and_update\u001b[39m(\u001b[38;5;28mself\u001b[39m, state: State, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mrun_kwargs) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mtuple\u001b[39m[\u001b[38;5;28mdic [...] - "Cell \u001b[0;32mIn[8], line 94\u001b[0m, in \u001b[0;36mimage_response\u001b[0;34m(state, model)\u001b[0m\n\u001b[1;32m 91\u001b[0m \u001b[38;5;129m@action\u001b[39m(reads\u001b[38;5;241m=\u001b[39m[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mprompt\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mchat_history\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmode\u001b[39m\u001b[38;5;124m\"\u001b[39m], writes [...] - "\u001b[0;31mValueError\u001b[0m: Demo error" + "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", + "\u001B[0;31mValueError\u001B[0m Traceback (most recent call last)", + "Cell \u001B[0;32mIn[12], line 5\u001B[0m\n\u001B[1;32m 3\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mquit\u001B[39m\u001B[38;5;124m\"\u001B[39m \u001B[38;5;241m==\u001B[39m user_input\u001B[38;5;241m.\u001B[39mlower():\n\u001B[1;32m 4\u001B[0m \u001B[38;5;28;01mbreak\u001B[39;00m\n\u001B[0;32m----> 5\u001B[0m last_action, action_result, app_state \u001B[38;5;241m=\u001B[39m \u001B[43mapp\u001B[49m\u001B[38;5;241;43m.\u001B[3 [...] + "File \u001B[0;32m~/dagworks/burr/burr/telemetry.py:273\u001B[0m, in \u001B[0;36mcapture_function_usage.<locals>.wrapped_fn\u001B[0;34m(*args, **kwargs)\u001B[0m\n\u001B[1;32m 270\u001B[0m \u001B[38;5;129m@functools\u001B[39m\u001B[38;5;241m.\u001B[39mwraps(call_fn)\n\u001B[1;32m 271\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mwrapped_fn\u001B[39m(\u001B[38;5;241m*\u001B[39margs, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mkwargs):\n\u001B[1;32m 27 [...] + "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:878\u001B[0m, in \u001B[0;36mApplication.run\u001B[0;34m(self, halt_before, halt_after, inputs)\u001B[0m\n\u001B[1;32m 876\u001B[0m \u001B[38;5;28;01mwhile\u001B[39;00m \u001B[38;5;28;01mTrue\u001B[39;00m:\n\u001B[1;32m 877\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[0;32m--> 878\u001B[0m \u001B[38;5;28;43mnext\u001B[39;49m\u001B[43m(\u001B[49m\u001B[43mgen\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1 [...] + "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:823\u001B[0m, in \u001B[0;36mApplication.iterate\u001B[0;34m(self, halt_before, halt_after, inputs)\u001B[0m\n\u001B[1;32m 820\u001B[0m prior_action: Optional[Action] \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mNone\u001B[39;00m\n\u001B[1;32m 821\u001B[0m \u001B[38;5;28;01mwhile\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mhas_next_action():\n\u001B[1;32m 822\u001B[0m \u001B[38;5;66;03 [...] + "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:495\u001B[0m, in \u001B[0;36mApplication.step\u001B[0;34m(self, inputs)\u001B[0m\n\u001B[1;32m 492\u001B[0m \u001B[38;5;66;03m# we need to increment the sequence before we start computing\u001B[39;00m\n\u001B[1;32m 493\u001B[0m \u001B[38;5;66;03m# that way if we're replaying from state, we don't get stuck\u001B[39;00m\n\u001B[1;32m 494\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_increment_sequ [...] + "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:548\u001B[0m, in \u001B[0;36mApplication._step\u001B[0;34m(self, inputs, _run_hooks)\u001B[0m\n\u001B[1;32m 546\u001B[0m exc \u001B[38;5;241m=\u001B[39m e\n\u001B[1;32m 547\u001B[0m logger\u001B[38;5;241m.\u001B[39mexception(_format_BASE_ERROR_MESSAGE(next_action, \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39m_state, inputs))\n\u001B[0;32m--> 548\u001B[0m \u001B[38;5;28;01mraise\u001B[39;00m e\n\ [...] + "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:534\u001B[0m, in \u001B[0;36mApplication._step\u001B[0;34m(self, inputs, _run_hooks)\u001B[0m\n\u001B[1;32m 532\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[1;32m 533\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m next_action\u001B[38;5;241m.\u001B[39msingle_step:\n\u001B[0;32m--> 534\u001B[0m result, new_state \u001B[38;5;241m=\u001B[39m \u001B[43m_run_single_step_action\u001B[49m\u001B[43m(\u001B[49m [...] + "File \u001B[0;32m~/dagworks/burr/burr/core/application.py:233\u001B[0m, in \u001B[0;36m_run_single_step_action\u001B[0;34m(action, state, inputs)\u001B[0m\n\u001B[1;32m 230\u001B[0m \u001B[38;5;66;03m# TODO -- guard all reads/writes with a subset of the state\u001B[39;00m\n\u001B[1;32m 231\u001B[0m action\u001B[38;5;241m.\u001B[39mvalidate_inputs(inputs)\n\u001B[1;32m 232\u001B[0m result, new_state \u001B[38;5;241m=\u001B[39m _adjust_single_step_output(\n\u001B[0;32m--> 2 [...] + "File \u001B[0;32m~/dagworks/burr/burr/core/action.py:533\u001B[0m, in \u001B[0;36mFunctionBasedAction.run_and_update\u001B[0;34m(self, state, **run_kwargs)\u001B[0m\n\u001B[1;32m 532\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m \u001B[38;5;21mrun_and_update\u001B[39m(\u001B[38;5;28mself\u001B[39m, state: State, \u001B[38;5;241m*\u001B[39m\u001B[38;5;241m*\u001B[39mrun_kwargs) \u001B[38;5;241m-\u001B[39m\u001B[38;5;241m>\u001B[39m \u001B[38;5;28mtuple\u001B[39m[\u001B[38;5;28mdic [...] + "Cell \u001B[0;32mIn[8], line 94\u001B[0m, in \u001B[0;36mimage_response\u001B[0;34m(state, model)\u001B[0m\n\u001B[1;32m 91\u001B[0m \u001B[38;5;129m@action\u001B[39m(reads\u001B[38;5;241m=\u001B[39m[\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mprompt\u001B[39m\u001B[38;5;124m\"\u001B[39m, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mchat_history\u001B[39m\u001B[38;5;124m\"\u001B[39m, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mmode\u001B[39m\u001B[38;5;124m\"\u001B[39m], writes [...] + "\u001B[0;31mValueError\u001B[0m: Demo error" ] } ], @@ -990,7 +990,7 @@ "\n", "[Link to video walking through this notebook](https://youtu.be/hqutVJyd3TI).\n", "\n", - "[https://github.com/dagworks-inc/burr](https://github.com/dagworks-inc/burr)\n", + "[https://github.com/apache/burr](https://github.com/apache/burr)\n", "<img src=\"burr_qrcode.png\" width=\"125\"/>\n", "\n", "[Time Travel blog post & video:](https://blog.dagworks.io/p/travel-back-in-time-with-burr)\n", diff --git a/docs/examples/index.rst b/docs/examples/index.rst index ed9061bf..a39c1d4d 100644 --- a/docs/examples/index.rst +++ b/docs/examples/index.rst @@ -4,7 +4,7 @@ Cookbook .. _examples: -These are still under progress -- see the github `examples directory <https://github.com/dagworks-inc/burr/blob/main/examples>`_ +These are still under progress -- see the github `examples directory <https://github.com/apache/burr/blob/main/examples>`_ for the latest. Examples of more complex/powerful use-cases of Burr. Download/copy these to adapt to your use-cases. diff --git a/docs/getting_started/install.rst b/docs/getting_started/install.rst index 7458a2cd..f4af1642 100644 --- a/docs/getting_started/install.rst +++ b/docs/getting_started/install.rst @@ -2,7 +2,7 @@ Installation ============= -Burr itself requires no dependencies. Every *extra*/*plugin* is an additional install target. +Apache Burr itself requires no dependencies. Every *extra*/*plugin* is an additional install target. We recommend you start with installing the ``start`` target -- this has dependencies necessary to track burr through the UI, along with a fully built server. diff --git a/docs/getting_started/simple-example.rst b/docs/getting_started/simple-example.rst index 4757fe9e..c61e09f4 100644 --- a/docs/getting_started/simple-example.rst +++ b/docs/getting_started/simple-example.rst @@ -4,9 +4,9 @@ Quickstart ============== -Let's build a basic chatbot using Burr. +Let's build a basic chatbot using Apache Burr. -While Burr has a host of features related to state management and inspection, this basic tutorial is going to demonstrate two that are particularly relevant to LLM apps. +While Apache Burr has a host of features related to state management and inspection, this basic tutorial is going to demonstrate two that are particularly relevant to LLM apps. 1. Specifying user inputs 2. Persisting state across multiple interactions diff --git a/docs/getting_started/up-next.rst b/docs/getting_started/up-next.rst index 77ce2718..5fffe144 100644 --- a/docs/getting_started/up-next.rst +++ b/docs/getting_started/up-next.rst @@ -36,7 +36,7 @@ For the next examples you'll need the repository cloned: .. code-block:: bash - git clone https://github.com/dagworks-inc/burr && cd burr + git clone https://github.com/apache/burr && cd burr ------------------------------- Simple Counter ``demo_counter`` diff --git a/docs/getting_started/why-burr.rst b/docs/getting_started/why-burr.rst index 530ecfc7..6a9212ba 100644 --- a/docs/getting_started/why-burr.rst +++ b/docs/getting_started/why-burr.rst @@ -1,6 +1,6 @@ -========= -Why Burr? -========= +================ +Why Apache Burr? +================ Why do you need a state machine for your applications? Won't the normal programming constructs suffice? @@ -15,7 +15,7 @@ Why do you need a state machine for your applications? Won't the normal programm 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.** +**Apache 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 diff --git a/docs/index.rst b/docs/index.rst index e36eeb55..9712a21c 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -3,7 +3,7 @@ .. toctree:: :maxdepth: 2 :hidden: - :caption: Burr + :caption: ApacheBurr getting_started/index examples/index @@ -11,18 +11,11 @@ reference/index contributing/index -.. toctree:: - :hidden: - :maxdepth: 2 - :caption: Burr Cloud - - Waitist <https://forms.gle/w9u2QKcPrztApRedA> - .. toctree:: :hidden: :caption: RESOURCES Blog <https://blog.dagworks.io/> Discord community server <https://discord.gg/6Zy2DwP4f3> - GitHub <https://github.com/dagworks-inc/burr> - Twitter <https://twitter.com/dagworks> + GitHub <https://github.com/apache/burr> + X/Twitter <https://x.com/burr_framework> diff --git a/docs/main.rst b/docs/main.rst index 891506c1..36e5cb56 100644 --- a/docs/main.rst +++ b/docs/main.rst @@ -2,7 +2,7 @@ Burr ============== -Welcome to Burr's documentation. +Welcome to Apache Burr's (incubating) documentation. For a quick overview of Burr, watch `this walkthrough <https://www.loom.com/share/a10f163428b942fea55db1a84b1140d8?sid=1512863b-f533-4a42-a2f3-95b13deb07c9>`_ or read `our blog post <https://blog.dagworks.io/p/burr-develop-stateful-ai-applications?r=2cg5z1&utm_campaign=post&utm_medium=web>`_. The following video is @@ -24,7 +24,7 @@ We also ask that you: - Report any bugs, issues, or feature requests via `GitHub Issues <https://github.com/DAGWorks-Inc/burr/issues>`_ or \ `GitHub Discussions <https://github.com/DAGWorks-Inc/burr/discussions>`_. -- Give us a star on `GitHub <https://github.com/dagworks-inc/burr>`_ if you like the project! +- Give us a star on `GitHub <https://github.com/apache/burr>`_ if you like the project! Testimonials diff --git a/docs/reference/integrations/opentelemetry.rst b/docs/reference/integrations/opentelemetry.rst index 280cedf0..1ffa6e2d 100644 --- a/docs/reference/integrations/opentelemetry.rst +++ b/docs/reference/integrations/opentelemetry.rst @@ -13,7 +13,7 @@ Burr has two integrations with OpenTelemetry: See the following resources for more information: - :ref:`Tracing/OpenTelemetry <opentelref>` -- `Example in the repository <https://github.com/dagworks-inc/burr/tree/main/examples/opentelemetry>`_ +- `Example in the repository <https://github.com/apache/burr/tree/main/examples/opentelemetry>`_ - `Blog post <https://blog.dagworks.io/p/9ef2488a-ff8a-4feb-b37f-1d9a781068ac/>`_ - `OpenTelemetry <https://opentelemetry.io/>`_ diff --git a/docs/reference/integrations/traceloop.rst b/docs/reference/integrations/traceloop.rst index c432def5..c79c2f33 100644 --- a/docs/reference/integrations/traceloop.rst +++ b/docs/reference/integrations/traceloop.rst @@ -11,5 +11,5 @@ See the following resources for more information about how to leverage opentelem `openllmetry <https://github.com/traceloop/openllmetry/tree/main>`_ library to instrument your application: -- `Example in the repository <https://github.com/dagworks-inc/burr/tree/main/examples/opentelemetry>`_ +- `Example in the repository <https://github.com/apache/burr/tree/main/examples/opentelemetry>`_ - `Blog post <https://blog.dagworks.io/p/9ef2488a-ff8a-4feb-b37f-1d9a781068ac/>`_
