diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 573046ac6..bf95610c4 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -28,7 +28,6 @@ on: permissions: contents: write - pull-requests: write concurrency: ci-${{ github.ref }} @@ -37,7 +36,7 @@ jobs: runs-on: ubuntu-latest env: PR_PATH: pull/${{github.event.number}} - BASE_URL: https://burr.dagworks.io/pull/${{github.event.number}} + BASE_URL: https://burr.apache.org/pull/${{github.event.number}} steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v4 @@ -49,7 +48,7 @@ jobs: - name: Sphinx build run: | sphinx-build docs -b dirhtml _build - echo "burr.dagworks.io" > _build/CNAME # keep the cname file which this clobbers -- todo, unhardcode + echo "burr.apache.org" > _build/CNAME # keep the cname file which this clobbers -- todo, unhardcode - name: Comment on PR uses: hasura/comment-progress@v2.2.0 if: github.ref != 'refs/heads/main' diff --git a/README.md b/README.md index c65c035ed..ac155fc98 100644 --- a/README.md +++ b/README.md @@ -160,9 +160,7 @@ While Apache Burr is attempting something (somewhat) unique, there are a variety ## 🌯 Why the name Burr? Apache Burr is named after [Aaron Burr](https://en.wikipedia.org/wiki/Aaron_Burr), founding father, third VP of the United States, and murderer/arch-nemesis of [Alexander Hamilton](https://en.wikipedia.org/wiki/Alexander_Hamilton). -What's the connection with Hamilton? This is [DAGWorks](www.dagworks.io)' second open-source library release after the [Apache Hamilton library](https://github.com/apache/hamilton) -We imagine a world in which Burr and Hamilton lived in harmony and saw through their differences to better the union. We originally -built Apache Burr as a _harness_ to handle state between executions of Apache Hamilton DAGs (because DAGs don't have cycles), +What's the connection with (Apache) Hamilton? We imagine a world in which Burr and Hamilton lived in harmony and saw through their differences to better the union. Originally Apache Burr was built as a _harness_ to handle state between executions of Apache 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. # Testimonials diff --git a/burr/core/application.py b/burr/core/application.py index 855cbdb46..84e3f7cbd 100644 --- a/burr/core/application.py +++ b/burr/core/application.py @@ -201,9 +201,9 @@ def _state_update(state_to_modify: State, modified_state: State) -> State: This is suboptimal -- we should not be observing the state, we should be using the state commands and layering in deltas. That said, we currently eagerly evaluate the state at all operations, which means we have to do it this way. See - https://github.com/DAGWorks-Inc/burr/issues/33 for a more detailed plan. + https://github.com/apache/burr/issues/33 for a more detailed plan. - This function was written to solve this issue: https://github.com/DAGWorks-Inc/burr/issues/28. + This function was written to solve this issue: https://github.com/apache/burr/issues/28. :param state_subset_pre_update: The subset of state passed to the update() function @@ -851,6 +851,8 @@ def __init__( spawning_parent_pointer=spawning_parent_pointer, ) + # @telemetry.capture_function_usage # todo -- capture usage when we break this up into one that isn't called internally + # This will be doable when we move sequence ID to the beginning of the function https://github.com/apache/burr/pull/73 @_call_execute_method_pre_post(ExecuteMethod.step) def step(self, inputs: Optional[Dict[str, Any]] = None) -> Optional[Tuple[Action, dict, State]]: """Performs a single step, advancing the state machine along. @@ -2257,7 +2259,7 @@ def with_graph(self, graph: Graph) -> "ApplicationBuilder[StateType]": def with_parallel_executor(self, executor_factory: lambda: Executor): """Assigns a default executor to be used for recursive/parallel sub-actions. This effectively allows - for executing multiple Burr apps in parallel. See https://burr.dagworks.io/concepts/parallelism/ + for executing multiple Burr apps in parallel. See https://burr.apache.org/concepts/parallelism/ for more details. This will default to a simple threadpool executor, meaning that you will be bound by the number of threads diff --git a/burr/core/state.py b/burr/core/state.py index 87312daaf..ad0d96a54 100644 --- a/burr/core/state.py +++ b/burr/core/state.py @@ -307,7 +307,7 @@ def apply_operation(self, operation: StateDelta) -> "State[StateType]": # This ensures we only copy the fields that are read by value # and copy the others by value # TODO -- make this more efficient when we have immutable transactions - # with event-based history: https://github.com/DAGWorks-Inc/burr/issues/33 + # with event-based history: https://github.com/apache/burr/issues/33 if field in new_state: # currently the reads() includes optional fields # We should clean that up, but this is an internal API so not worried now diff --git a/burr/integrations/base.py b/burr/integrations/base.py index c02812228..8291ccf8c 100644 --- a/burr/integrations/base.py +++ b/burr/integrations/base.py @@ -20,6 +20,6 @@ def require_plugin(import_error: ImportError, plugin_name: str): raise ImportError( f"Missing plugin {plugin_name}! To use the {plugin_name} plugin, you must install the 'extras' target [{plugin_name}] with burr[{plugin_name}] " f"(replace with your package manager of choice). Note that, if you're using poetry, you cannot install burr with burr[start], so " - f"you'll have to install the components individually. See https://burr.dagworks.io/getting_started/install/ " + f"you'll have to install the components individually. See https://burr.apache.org/getting_started/install/ " f"for more details." ) from import_error diff --git a/burr/tracking/server/backend.py b/burr/tracking/server/backend.py index e33cab9b8..448d0daf9 100644 --- a/burr/tracking/server/backend.py +++ b/burr/tracking/server/backend.py @@ -257,10 +257,10 @@ def safe_json_load(line: bytes): def get_uri(project_id: str) -> str: project_id_map = { - "demo_counter": "https://github.com/DAGWorks-Inc/burr/tree/main/examples/hello-world-counter", - "demo_tracing": "https://github.com/DAGWorks-Inc/burr/tree/main/examples/tracing-and-spans/application.py", - "demo_chatbot": "https://github.com/DAGWorks-Inc/burr/tree/main/examples/multi-modal-chatbot", - "demo_conversational-rag": "https://github.com/DAGWorks-Inc/burr/tree/main/examples/conversational-rag", + "demo_counter": "https://github.com/apache/burr/tree/main/examples/hello-world-counter", + "demo_tracing": "https://github.com/apache/burr/tree/main/examples/tracing-and-spans/application.py", + "demo_chatbot": "https://github.com/apache/burr/tree/main/examples/multi-modal-chatbot", + "demo_conversational-rag": "https://github.com/apache/burr/tree/main/examples/conversational-rag", } return project_id_map.get(project_id, "") diff --git a/docs/examples/chatbots/gpt-like-chatbot.ipynb b/docs/examples/chatbots/gpt-like-chatbot.ipynb index 7a4351b1e..3d7f64065 100644 --- a/docs/examples/chatbots/gpt-like-chatbot.ipynb +++ b/docs/examples/chatbots/gpt-like-chatbot.ipynb @@ -19,7 +19,7 @@ " + \n", "\n", "\n", - "[https://github.com/apache/burr](https://github.com/apache/burr) by DAGWorks Inc. (YCW23 & StartX).\n", + "[https://github.com/apache/burr](https://github.com/apache/burr).\n", "\n", "Take🏠:\n", "\n", diff --git a/examples/adaptive-crag/README.md b/examples/adaptive-crag/README.md index 9dfe6af05..ba8dc3acb 100644 --- a/examples/adaptive-crag/README.md +++ b/examples/adaptive-crag/README.md @@ -38,4 +38,4 @@ We stop after `ask_assistant` to get the next `query` for `router`. ## Adaptive-CRAG 🧪 ![statemachine](statemachine.png) -We have some of the core concepts from the [Burr Docs](https://burr.dagworks.io/concepts/) in a folder and we will add that to a `LanceDB` table for Hybrid Search. You can add as many tables as you want. Each table will be a different route for the `router`. +We have some of the core concepts from the [Burr Docs](https://burr.apache.org/concepts/) in a folder and we will add that to a `LanceDB` table for Hybrid Search. You can add as many tables as you want. Each table will be a different route for the `router`. diff --git a/examples/conversational-rag/graph_db_example/README.md b/examples/conversational-rag/graph_db_example/README.md index 7f553767a..ecf9e5334 100644 --- a/examples/conversational-rag/graph_db_example/README.md +++ b/examples/conversational-rag/graph_db_example/README.md @@ -102,7 +102,7 @@ This will run the following two pipelines: ![ingest fighters](ingest_fighters.png) ![ingest fights](ingest_fights.png) -**Note:** [Hamilton](https://github.com/dagworks-inc/hamilton) also comes with a UI that you can use to visualize the pipeline and +**Note:** [Hamilton](https://github.com/apache/hamilton) also comes with a UI that you can use to visualize the pipeline and track execution information about it. See hamilton_ingest.py or ingest_notebook.ipynb for more information. ## Ingest data using a notebook: diff --git a/examples/conversational-rag/graph_db_example/hamilton_ingest.py b/examples/conversational-rag/graph_db_example/hamilton_ingest.py index 574392496..e55f90003 100644 --- a/examples/conversational-rag/graph_db_example/hamilton_ingest.py +++ b/examples/conversational-rag/graph_db_example/hamilton_ingest.py @@ -37,7 +37,7 @@ def main(): # from hamilton_sdk import adapters # tracker = adapters.HamiltonTracker( # project_id=44, # modify this as needed - # username="elijah@dagworks.io", + # username="elijah@apache.org", # dag_name="load_fighters", # tags={"environment": "DEV", "team": "MY_TEAM", "version": "X"} # ) @@ -60,7 +60,7 @@ def main(): # from hamilton_sdk import adapters # tracker = adapters.HamiltonTracker( # project_id=44, # modify this as needed - # username="elijah@dagworks.io", + # username="elijah@apache.org", # dag_name="load_fights", # tags={"environment": "DEV", "team": "MY_TEAM", "version": "X"} # ) diff --git a/examples/conversational-rag/graph_db_example/ingest_notebook.ipynb b/examples/conversational-rag/graph_db_example/ingest_notebook.ipynb index d18436b95..b60f9c25c 100644 --- a/examples/conversational-rag/graph_db_example/ingest_notebook.ipynb +++ b/examples/conversational-rag/graph_db_example/ingest_notebook.ipynb @@ -2,22 +2,39 @@ "cells": [ { "cell_type": "code", + "execution_count": null, "id": "z27s4nl744c", - "source": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied. See the License for the\n# specific language governing permissions and limitations\n# under the License.", "metadata": {}, - "execution_count": null, - "outputs": [] + "outputs": [], + "source": [ + "# Licensed to the Apache Software Foundation (ASF) under one\n", + "# or more contributor license agreements. See the NOTICE file\n", + "# distributed with this work for additional information\n", + "# regarding copyright ownership. The ASF licenses this file\n", + "# to you under the Apache License, Version 2.0 (the\n", + "# \"License\"); you may not use this file except in compliance\n", + "# with the License. You may obtain a copy of the License at\n", + "#\n", + "# http://www.apache.org/licenses/LICENSE-2.0\n", + "#\n", + "# Unless required by applicable law or agreed to in writing,\n", + "# software distributed under the License is distributed on an\n", + "# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n", + "# KIND, either express or implied. See the License for the\n", + "# specific language governing permissions and limitations\n", + "# under the License." + ] }, { "cell_type": "code", "execution_count": null, "id": "1ad0bb7d-58db-44c5-aa17-7db4f9af9f59", "metadata": {}, + "outputs": [], "source": [ "# install requirements\n", "!pip install falkordb openai sf-hamilton[sdk,visualization] " - ], - "outputs": [] + ] }, { "cell_type": "markdown", @@ -26,7 +43,7 @@ "source": [ "# Ingestion Notebook\n", "\n", - "In this notebook we see how to load data into FalkorDB using [Hamilton](https://github.com/dagWorks-Inc/hamilton)." + "In this notebook we see how to load data into FalkorDB using [Hamilton](https://github.com/apache/hamilton)." ] }, { @@ -39,11 +56,11 @@ "start_time": "2024-05-26T05:05:25.579866Z" } }, + "outputs": [], "source": [ "# load jupyter magic to help display Hamilton in a notebook\n", "%load_ext hamilton.plugins.jupyter_magic" - ], - "outputs": [] + ] }, { "cell_type": "markdown", @@ -67,6 +84,7 @@ "start_time": "2024-05-26T05:12:04.295564Z" } }, + "outputs": [], "source": [ "%%cell_to_module -m load_fighters --display\n", "\n", @@ -138,8 +156,7 @@ " q = \"UNWIND $fighters as fighter CREATE (f:Fighter) SET f = fighter\"\n", " graph.query(q, {'fighters': records})\n", " return len(records)\n" - ], - "outputs": [] + ] }, { "cell_type": "markdown", @@ -165,6 +182,7 @@ "start_time": "2024-05-26T05:44:01.430713Z" } }, + "outputs": [], "source": [ "%%cell_to_module -m load_fights --display\n", "\n", @@ -252,8 +270,7 @@ "\n", "def collect_writes(write_to_graph: Collect[str]) -> int:\n", " return len(list(write_to_graph))" - ], - "outputs": [] + ] }, { "cell_type": "markdown", @@ -275,6 +292,7 @@ "start_time": "2024-05-26T05:44:05.448476Z" } }, + "outputs": [], "source": [ "import falkordb\n", "from hamilton import driver\n", @@ -286,8 +304,7 @@ "# Clear previous graph\n", "if \"UFC\" in db.list_graphs():\n", " g.delete()" - ], - "outputs": [] + ] }, { "cell_type": "markdown", @@ -295,14 +312,14 @@ "metadata": {}, "source": [ "### Note about the Hamilton UI\n", - "Hamilton comes with an [open source UI](https://hamilton.dagworks.io/en/latest/hamilton-ui/) that you can\n", + "Hamilton comes with an [open source UI](https://hamilton.apache.io/en/latest/hamilton-ui/) that you can\n", "surface information about your Hamilton executions. If you pull the docker containers\n", "locally and uncomment adding the HamiltonTracker, then you'll see runs logged to it." - ] + "Hamilton comes with an [open source UI](https://hamilton.apache.org/en/latest/hamilton-ui/) that you can\n", }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "ec7e41c83b69311c", "metadata": { "ExecuteTime": { @@ -310,12 +327,13 @@ "start_time": "2024-05-26T05:44:06.038046Z" } }, + "outputs": [], "source": [ "# if you have the Hamilton UI you can see progress:\n", "# from hamilton_sdk import adapters\n", "# tracker = adapters.HamiltonTracker(\n", "# project_id=44, # modify this as needed\n", - "# username=\"elijah@dagworks.io\",\n", + "# username=\"elijah@apache.org\",\n", "# dag_name=\"load_fighters\",\n", "# tags={\"environment\": \"DEV\", \"team\": \"MY_TEAM\", \"version\": \"X\"}\n", "# )\n", @@ -332,12 +350,11 @@ ")\n", "\n", "fighter_loader.execute([\"write_to_graph\"], inputs={\"graph\": g})" - ], - "outputs": [] + ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "3b703eeb5a360", "metadata": { "ExecuteTime": { @@ -345,12 +362,13 @@ "start_time": "2024-05-26T05:44:33.835479Z" } }, + "outputs": [], "source": [ "# if you have the Hamilton UI you can see progress:\n", "# from hamilton_sdk import adapters\n", "# tracker = adapters.HamiltonTracker(\n", "# project_id=44, # modify this as needed\n", - "# username=\"elijah@dagworks.io\",\n", + "# username=\"elijah@apache.org\",\n", "# dag_name=\"load_fights\",\n", "# tags={\"environment\": \"DEV\", \"team\": \"MY_TEAM\", \"version\": \"X\"}\n", "# )\n", @@ -364,8 +382,7 @@ " .build()\n", ")\n", "fights_loader.execute([\"collect_writes\"], inputs={\"graph\": g})" - ], - "outputs": [] + ] }, { "cell_type": "code", @@ -377,16 +394,16 @@ "start_time": "2024-05-26T05:49:42.580724Z" } }, - "source": [], - "outputs": [] + "outputs": [], + "source": [] }, { "cell_type": "code", "execution_count": null, "id": "7981e2c8294873e5", "metadata": {}, - "source": [], - "outputs": [] + "outputs": [], + "source": [] } ], "metadata": { diff --git a/examples/hamilton-integration/notebook.ipynb b/examples/hamilton-integration/notebook.ipynb index 763542b0f..e4e061a57 100644 --- a/examples/hamilton-integration/notebook.ipynb +++ b/examples/hamilton-integration/notebook.ipynb @@ -31,7 +31,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Use the 2-layer approach for a maintainable RAG system [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/dagworks-inc/burr/blob/main/examples/hamilton-integration/notebook.ipynb) [![GitHub badge](https://img.shields.io/badge/github-view_source-2b3137?logo=github)](https://github.com/dagworks-inc/burr/blob/main/examples/hamilton-integration/notebook.ipynb)\n", + "# Use the 2-layer approach for a maintainable RAG system [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/dagworks-inc/burr/blob/main/examples/hamilton-integration/notebook.ipynb) [![GitHub badge](https://img.shields.io/badge/github-view_source-2b3137?logo=github)](https://github.com/apache/burr/blob/main/examples/hamilton-integration/notebook.ipynb)\n", "\n", "Ready-made solutions can get you started with GenAI, but building reliable product features with retrieval augmented generation (RAG) and LLM agents inevitably required custom code. This post shares the 2-layer approach to build a maintainable RAG application that will evolve with your needs. To illustrate these ideas, we will show how a typical RAG project might evolve.\n", "\n", @@ -676,7 +676,7 @@ "\n", "In th next snippets, we refactor actions using Hamilton, a lightweight library to structure data transformations as directed acyclic graphs (DAGs). Hamilton uses the function and parameter names to infer the dependencies between functions and the graph structure.\n", "\n", - "The next cell reimplements the `ingest_blog` action from `V2`. It uses `%%cell_to_module` from the Hamilton notebook extension to define a DAG in a single cell and view it ([see tutorial](https://github.com/DAGWorks-Inc/hamilton/blob/main/examples/jupyter_notebook_magic/example.ipynb))." + "The next cell reimplements the `ingest_blog` action from `V2`. It uses `%%cell_to_module` from the Hamilton notebook extension to define a DAG in a single cell and view it ([see tutorial](https://github.com/apache/hamilton/blob/main/examples/jupyter_notebook_magic/example.ipynb))." ] }, { diff --git a/examples/image-telephone/README.md b/examples/image-telephone/README.md index e618b0447..ea72ab784 100644 --- a/examples/image-telephone/README.md +++ b/examples/image-telephone/README.md @@ -29,7 +29,7 @@ that talks to itself to do something fun. The game is simple: 2. That caption is then provided to DALL-E, which generates an image based on the caption, which is saved to state. 3. The loop repeats -- and you have encoded the game of telephone! -Specifically, each action here in Burr is delegated to the [Hamilton](https://github.com/dagworks-inc/hamilton) micro-framework to run. +Specifically, each action here in Burr is delegated to the [Hamilton](https://github.com/apache/hamilton) micro-framework to run. Hamilton is a great replacement for tools like LCEL, because it's built to provide a great SDLC experience, in addition to being lightweight, extensible and more general purpose (e.g. it's great for expressing things data processing, ML, and web-request logic). We're using @@ -71,5 +71,5 @@ documentation for the Hamilton dataflows that are used: [captioning](https://hub template by overriding values, or by copying the code and modifying it yourself in 2 minutes - see instructions on the [hub](https://hub.dagworks.io/). ## Hamilton code -For more details on the [Hamilton](https://github.com/dagworks-inc/hamilton) code and -this [streamlit app](https://image-telephone.streamlit.app) see [this example in the Hamilton repo.](https://github.com/DAGWorks-Inc/hamilton/tree/main/examples/LLM_Workflows/image_telephone) +For more details on the [Hamilton](https://github.com/apache/hamilton) code and +this [streamlit app](https://image-telephone.streamlit.app) see [this example in the Hamilton repo.](https://github.com/apache/hamilton/tree/main/examples/LLM_Workflows/image_telephone) diff --git a/examples/ml-training/README.md b/examples/ml-training/README.md index 993030329..4b02e3934 100644 --- a/examples/ml-training/README.md +++ b/examples/ml-training/README.md @@ -19,7 +19,7 @@ # ML Training -This is a WIP! Please contribute back if you have ideas. You can track the associated issue [here](https://github.com/DAGWorks-Inc/burr/issues/138). +This is a WIP! Please contribute back if you have ideas. You can track the associated issue [here](https://github.com/apache/burr/issues/138). A machine learning training system can easily be modeled as a state machine. @@ -52,7 +52,7 @@ you can use Burr hooks to log metrics, visualize, etc... at each step. This allo While some models are trained in a single-shot and shipped to production, many require human input. Burr can be used to express training, then checkpoint/pause the state while a human is evaluating it, -and have their input (e.g. go/no-go) passed in as an [input parameter](https://burr.dagworks.io/concepts/actions/#runtime-inputs). +and have their input (e.g. go/no-go) passed in as an [input parameter](https://burr.apache.org/concepts/actions/#runtime-inputs). Note that this still requires a scheduling tool (say a task executor that runs until the next human input is needed), but that task executor does not need to be complicated (all it needs to do is run a job when prompted, and possibly on a chron schedule). diff --git a/examples/multi-agent-collaboration/README.md b/examples/multi-agent-collaboration/README.md index 3638c2ee8..ecd6c18a5 100644 --- a/examples/multi-agent-collaboration/README.md +++ b/examples/multi-agent-collaboration/README.md @@ -23,7 +23,7 @@ This example resembles the example from following [cookbook](https://github.com/ There are two implementations: -1. `hamilton/` -- this uses [Hamilton](https://github.com/dagworks-inc/hamilton) inside the defined actions. +1. `hamilton/` -- this uses [Hamilton](https://github.com/apache/hamilton) inside the defined actions. 2. `lcel/` -- this uses LangChain's LCEL inside the defined actions. # `hamilton/application.py` vs `lcel/application.py`: diff --git a/examples/multi-agent-collaboration/hamilton/README.md b/examples/multi-agent-collaboration/hamilton/README.md index 6b612b6fd..097885c95 100644 --- a/examples/multi-agent-collaboration/hamilton/README.md +++ b/examples/multi-agent-collaboration/hamilton/README.md @@ -27,7 +27,7 @@ With Hamilton the prompts can be found in the module [`func_agent.py`](func_agen The Hamilton code creates the following dataflow: -![dataflow](https://github.com/DAGWorks-Inc/burr/assets/2328071/24822ee5-f05b-4fa4-95e7-daa23969cfff) +![dataflow](https://github.com/apache/burr/assets/2328071/24822ee5-f05b-4fa4-95e7-daa23969cfff) # Tracing diff --git a/examples/multi-modal-chatbot/burr_demo.ipynb b/examples/multi-modal-chatbot/burr_demo.ipynb index 5f26a6f5f..8ab0712f2 100644 --- a/examples/multi-modal-chatbot/burr_demo.ipynb +++ b/examples/multi-modal-chatbot/burr_demo.ipynb @@ -19,7 +19,7 @@ " +\n", "\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).\n", "\n", "Take🏠:\n", "\n", @@ -82,7 +82,7 @@ "metadata": {}, "source": [ "# Solution: Burr\n", - "(Complements our other framework [Hamilton](https://github.com/dagWorks-Inc/hamilton))\n" + "(Complements our other framework [Hamilton](https://github.com/apache/hamilton))\n" ] }, { @@ -1002,7 +1002,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", "\n", "\n", "[Time Travel blog post & video:](https://blog.dagworks.io/p/travel-back-in-time-with-burr)\n", @@ -1013,10 +1013,10 @@ "\n", "More blogs @ `blog.dagworks.io` e.g. [async & streaming](https://blog.dagworks.io/p/streaming-chatbot-with-burr-fastapi)\n", "\n", - "More [examples](https://github.com/DAGWorks-Inc/burr/tree/main/examples/):\n", + "More [examples](https://github.com/apache/burr/tree/main/examples/):\n", "\n", - "- e.g. [test case creation](https://burr.dagworks.io/examples/guardrails/creating_tests/)\n", - "- e.g. [multi-agent collaboration](https://github.com/DAGWorks-Inc/burr/tree/main/examples/multi-agent-collaboration)\n", + "- e.g. [test case creation](https://burr.apache.org/examples/guardrails/creating_tests/)\n", + "- e.g. [multi-agent collaboration](https://github.com/apache/burr/tree/main/examples/multi-agent-collaboration)\n", "\n", "Follow on Twitter & LinkedIn:\n", "\n", diff --git a/examples/opentelemetry/README.md b/examples/opentelemetry/README.md index d0c18c6ca..f5b67f401 100644 --- a/examples/opentelemetry/README.md +++ b/examples/opentelemetry/README.md @@ -29,4 +29,4 @@ We have two modes: See [notebook.ipynb](./notebook.ipynb) for a simple overview. See [application.py](./application.py) for the full code -See the [documentation](https://burr.dagworks.io/concepts/additional-visibility/#open-telemetry) for more info +See the [documentation](https://burr.apache.org/concepts/additional-visibility/#open-telemetry) for more info diff --git a/examples/opentelemetry/notebook.ipynb b/examples/opentelemetry/notebook.ipynb index d78004329..49a4757b9 100644 --- a/examples/opentelemetry/notebook.ipynb +++ b/examples/opentelemetry/notebook.ipynb @@ -34,7 +34,7 @@ "source": [ "# OpenTelemetry\n", "\n", - "In this notebook we'll instrument a simple Burr app with [OpenTelemetry](www.opentelemetry.io). See the [docs](https://burr.dagworks.io/concepts/additional-visibility/) for more information." + "In this notebook we'll instrument a simple Burr app with [OpenTelemetry](www.opentelemetry.io). See the [docs](https://burr.apache.org/concepts/additional-visibility/) for more information." ] }, { diff --git a/examples/parallelism/README.md b/examples/parallelism/README.md index 6365172d2..884a3e551 100644 --- a/examples/parallelism/README.md +++ b/examples/parallelism/README.md @@ -19,7 +19,7 @@ # Parallelism -In this example we go over Burr's parallelism capabilities. It is based on the documentation (https://burr.dagworks.io/concepts/parallelism/), demonstrating the `MapStates` capabilities. +In this example we go over Burr's parallelism capabilities. It is based on the documentation (https://burr.apache.org/concepts/parallelism/), demonstrating the `MapStates` capabilities. See [the notebook](./notebook.ipynb) for the full example. Or Open In Colab diff --git a/examples/parallelism/notebook.ipynb b/examples/parallelism/notebook.ipynb index 5b150b22b..8465295fb 100644 --- a/examples/parallelism/notebook.ipynb +++ b/examples/parallelism/notebook.ipynb @@ -16,7 +16,7 @@ "\n", " \"Open\n", " \n", - "or view source\n", + "or view source\n", "\n", "For a video walkthrough of this notebook click here." ] @@ -41,13 +41,13 @@ "\n", "Burr is all about thinking and modeling things as a \"graph\" or \"flowchart\". This just so happens to be a great way to model agents. This modeling also lends itself well to modeling \"hierarchy/recursion\" and \"parallelism\", which are key in building more complex interactions and agent systems.\n", "\n", - "In this notebook we're going to go over how to run parallel \"actions\", which could be as simple as a single \"action\", or even \"whole burr sub-applications themselves\" (a.k.a. \"sub-agents\"). For full documentation on Parallelism see [this page](https://burr.dagworks.io/concepts/parallelism/); if you're familliar with the [`map-reduce`](https://en.wikipedia.org/wiki/MapReduce) pattern, then you'll feel right at home here.\n", + "In this notebook we're going to go over how to run parallel \"actions\", which could be as simple as a single \"action\", or even \"whole burr sub-applications themselves\" (a.k.a. \"sub-agents\"). For full documentation on Parallelism see [this page](https://burr.apache.org/concepts/parallelism/); if you're familliar with the [`map-reduce`](https://en.wikipedia.org/wiki/MapReduce) pattern, then you'll feel right at home here.\n", "\n", "We will start simple and show how to write a simple Burr application that compares different LLMs for the same prompt & context. We'll then extend what we parallelize to be a whole burr sub-application/agent. \n", "\n", "To start:\n", "1. we will not use Burr's parallelism or recursion constructs to help build your mental model.\n", - "2. we will then show Burr's [\"recursion/hierarchy\" capabilities](https://burr.dagworks.io/concepts/recursion/).\n", + "2. we will then show Burr's [\"recursion/hierarchy\" capabilities](https://burr.apache.org/concepts/recursion/).\n", "3. we will then show how Burr's parallelism constructs simplify things.\n", "4. we will then show how Burr's parallelism constructs enable you to more easily model more complex behavior.\n", "\n", @@ -426,7 +426,7 @@ "\n", "Burr allows you to create Burr applications within Burr applications and wire through tracking to the UI so you can visualize sub-applications. For this, we will be representing the LLM calls with different models as their own (single-node) application. While this is built for more complex sub-application shapes, and is a bit of overkill for our toy example, it still works quite well with the simplicity of a single action (node) application. My point here is that you could add more actions to the application very easily and do more complex operations and model hierarchy than what we're doing here. The Burr sub-applications/graphs can be used independently elsewhere.\n", "\n", - "For more on the code constructs in this section see Burr's [recursive/hierarchy tracking capabilities](https://burr.dagworks.io/concepts/recursion/)." + "For more on the code constructs in this section see Burr's [recursive/hierarchy tracking capabilities](https://burr.apache.org/concepts/recursion/)." ] }, { @@ -619,9 +619,9 @@ "source": [ "# Approach #3 -- using Burr's Parallel constructs\n", "\n", - "We can use Burr's parallel construct to make running the differnet LLMs in parallel even simpler. To do so we need to bring in a Class that extends from `MapStates` (we can also map over actions with [`MapActions`](https://burr.dagworks.io/reference/parallelism/#burr.core.parallelism.MapActions) and both state & actions with [`MapStateAndActions`](https://burr.dagworks.io/reference/parallelism/#burr.core.parallelism.MapActionsAndStates)). This Class enables us to \"map\" over state -- in this case, the Class will return the same Action for each model in the `models` field, enabling you to run the models in parallel. Underneath, Burr will create the Burr Applications and run them in parallel. \n", + "We can use Burr's parallel construct to make running the differnet LLMs in parallel even simpler. To do so we need to bring in a Class that extends from `MapStates` (we can also map over actions with [`MapActions`](https://burr.apache.org/reference/parallelism/#burr.core.parallelism.MapActions) and both state & actions with [`MapStateAndActions`](https://burr.apache.org/reference/parallelism/#burr.core.parallelism.MapActionsAndStates)). This Class enables us to \"map\" over state -- in this case, the Class will return the same Action for each model in the `models` field, enabling you to run the models in parallel. Underneath, Burr will create the Burr Applications and run them in parallel. \n", "\n", - "For more on the code constructs in this section see Burr's [parallel map/reduce concepts](https://burr.dagworks.io/concepts/parallelism/)." + "For more on the code constructs in this section see Burr's [parallel map/reduce concepts](https://burr.apache.org/concepts/parallelism/)." ] }, { @@ -817,7 +817,7 @@ "source": [ "# #4 - Building more complex Burr Applications\n", "\n", - "Above we showed a progression on how you can tackle parallelism with Burr. Here we discuss and show sketches of examples that get more complex. Note: see [docs on executors](https://burr.dagworks.io/reference/application/#burr.core.application.ApplicationBuilder.with_parallel_executor) (and roadmap) as to what is supported right now.\n", + "Above we showed a progression on how you can tackle parallelism with Burr. Here we discuss and show sketches of examples that get more complex. Note: see [docs on executors](https://burr.apache.org/reference/application/#burr.core.application.ApplicationBuilder.with_parallel_executor) (and roadmap) as to what is supported right now.\n", "\n", "For example, you might want to take the same input, and map over several Burr applications/agents in parallel, e.g. for medical diagnosis.\n", "Or you might want to map over some value in state and run the same application/agent on it, e.g. web-interactions.\n", @@ -1406,7 +1406,7 @@ "metadata": {}, "source": [ "# To close\n", - "We're excited by what you can now model and importantly observe & iterate with Burr + the Burr UI (e.g. see [test-case creation](https://burr.dagworks.io/examples/guardrails/creating_tests/), [time-travel](https://blog.dagworks.io/p/travel-back-in-time-with-burr), or [annotation](https://blog.dagworks.io/p/annotating-data-in-burr?r=2cg5z1&utm_campaign=post&utm_medium=web)). \n", + "We're excited by what you can now model and importantly observe & iterate with Burr + the Burr UI (e.g. see [test-case creation](https://burr.apache.org/examples/guardrails/creating_tests/), [time-travel](https://blog.dagworks.io/p/travel-back-in-time-with-burr), or [annotation](https://blog.dagworks.io/p/annotating-data-in-burr?r=2cg5z1&utm_campaign=post&utm_medium=web)). \n", "\n", "We have an active roadmap planned (we're looking for contributors!), and if you like what you see, have thoughts / or questions, please drop by our discord community -> [![Discord](https://img.shields.io/badge/Join-Burr_Discord-7289DA?logo=discord)](https://discord.gg/6Zy2DwP4f3)" ] diff --git a/examples/pytest/README.md b/examples/pytest/README.md index 788bffc6f..2900fa882 100644 --- a/examples/pytest/README.md +++ b/examples/pytest/README.md @@ -207,7 +207,7 @@ def test_my_agent(input, expected_output, results_bag): ### 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 +or a single action. See the [Burr test case creation documentation](https://burr.apache.org/examples/guardrails/creating_tests/) for more details on how. Here we show you how you can combine this with getting results: ```python diff --git a/examples/rag-lancedb-ingestion/application.py b/examples/rag-lancedb-ingestion/application.py index d43ca4e6d..2228576c6 100644 --- a/examples/rag-lancedb-ingestion/application.py +++ b/examples/rag-lancedb-ingestion/application.py @@ -32,7 +32,7 @@ def relevant_chunk_retrieval( lancedb_con: lancedb.DBConnection, ) -> State: """Search LanceDB with the user query and return the top 4 results""" - text_chunks_table = lancedb_con.open_table("dagworks___contexts") + text_chunks_table = lancedb_con.open_table("apache_burr___contexts") search_results = ( text_chunks_table.search(user_query).select(["text", "id__"]).limit(4).to_list() ) diff --git a/examples/rag-lancedb-ingestion/ingestion.py b/examples/rag-lancedb-ingestion/ingestion.py index 3469faaae..3b334e6a5 100644 --- a/examples/rag-lancedb-ingestion/ingestion.py +++ b/examples/rag-lancedb-ingestion/ingestion.py @@ -116,7 +116,7 @@ def contexts(chunks: list[dict]) -> Generator: utils.set_environment_variables() pipeline = dlt.pipeline( - pipeline_name="substack-blog", destination="lancedb", dataset_name="dagworks" + pipeline_name="substack-blog", destination="lancedb", dataset_name="apache_burr" ) blog_url = "https://blog.dagworks.io/" diff --git a/examples/recursive/README.md b/examples/recursive/README.md index cc2532cf7..bf04f0e14 100644 --- a/examples/recursive/README.md +++ b/examples/recursive/README.md @@ -55,5 +55,5 @@ Run the example with `python application.py`. Then, ensure `burr` is running, an UI: [http://localhost:7241/project/demo:parallelism_poem_generation](http://localhost:7241/project/demo:parallelism_poem_generation). -FOr more information, read the documentation on [recursive applications](https://burr.dagworks.io/concepts/recursion). +FOr more information, read the documentation on [recursive applications](https://burr.apache.org/concepts/recursion). ``` diff --git a/examples/simple-chatbot-intro/notebook.ipynb b/examples/simple-chatbot-intro/notebook.ipynb index 93ba520a3..3e4956fa2 100644 --- a/examples/simple-chatbot-intro/notebook.ipynb +++ b/examples/simple-chatbot-intro/notebook.ipynb @@ -364,7 +364,7 @@ "\n", "To add a persistor, you have to tell it to load from a state (`.initialize(...)`) on the builder, and tell it to save to a state (`.with_state_persister`).\n", "\n", - "More about persistence [here](https://burr.dagworks.io/concepts/state-persistence/)." + "More about persistence [here](https://burr.apache.org/concepts/state-persistence/)." ] }, { diff --git a/examples/simulation/README.md b/examples/simulation/README.md index 571a21702..547afbbae 100644 --- a/examples/simulation/README.md +++ b/examples/simulation/README.md @@ -19,7 +19,7 @@ # Simulations -This example is a WIP -- we're actively looking for contributors + ideas. See [this issue](https://github.com/DAGWorks-Inc/burr/issues/136) to track. +This example is a WIP -- we're actively looking for contributors + ideas. See [this issue](https://github.com/apache/burr/issues/136) to track. At a high level, simulations generally run over a set of time steps and maintain state. The user then manages the state, which becomes the input to the next time step, as well as output data to analyze. @@ -47,7 +47,7 @@ This is a special case of time-series forecasting, in which one wants to simulat - `construct_portfolio` - uses the forecast to construct a portfolio - `evaluate_portfolio` - evaluates the portfolio -Each one of these could be a DAG using [Hamilton](https://github.com/dagworks-inc/hamilton), or running any custom code. +Each one of these could be a DAG using [Hamilton](https://github.com/apache/hamilton), or running any custom code. ### Multi-agent simulation @@ -56,4 +56,4 @@ For multiple independent "agents", Burr could help model the way they interact. actions, or an action that loops over all "users". We are still figuring out the best way to model this, so reach out if you have ideas! -Please comment at [this issue](https://github.com/DAGWorks-Inc/burr/issues/136) if you have any opinions on the above! We would love user-contributed examples. +Please comment at [this issue](https://github.com/apache/burr/issues/136) if you have any opinions on the above! We would love user-contributed examples. diff --git a/examples/streaming-fastapi/README.md b/examples/streaming-fastapi/README.md index 74c9d2b38..de47de1ee 100644 --- a/examples/streaming-fastapi/README.md +++ b/examples/streaming-fastapi/README.md @@ -35,7 +35,7 @@ or do one of the following: 3. Generate a poem 4. Prompt for more -It will use an LLM to decide which to do. It streams back text using async streaming in Burr. Read more about how that is implemented [here](https://burr.dagworks.io/concepts/streaming-actions/). +It will use an LLM to decide which to do. It streams back text using async streaming in Burr. Read more about how that is implemented [here](https://burr.apache.org/concepts/streaming-actions/). Note that, even though not every response is streaming (E.G. unsafe response, which is hardcoded), they are modeled as streaming to make interaction with the app simpler. @@ -59,7 +59,7 @@ Navigate to the [streaming example](http://localhost:7241/demos/streaming-chatbo ## Streaming in Burr -Read more [here](https://burr.dagworks.io/concepts/streaming-actions/) +Read more [here](https://burr.apache.org/concepts/streaming-actions/) To use streaming in Burr, you write your actions as a generator. If you're using the function-based API (as we do in this example), the function should yield a tuple, consisting of: 1. The result (intermediate or final) diff --git a/examples/streaming-fastapi/notebook.ipynb b/examples/streaming-fastapi/notebook.ipynb index fcb411c43..41e31eb65 100644 --- a/examples/streaming-fastapi/notebook.ipynb +++ b/examples/streaming-fastapi/notebook.ipynb @@ -29,7 +29,7 @@ "This notebook only shows the streaming side. To check out FastAPI in Burr, check out\n", "- The [Burr code](./application.py) -- imported and used here\n", "- The [backend FastAPI server](./server.py) for the streaming output using SSE\n", - "- The [frontend typescript code](https://github.com/dagworks-inc/burr/blob/main/telemetry/ui/src/examples/StreamingChatbot.tsx) that renders and interacts with the stream\n", + "- The [frontend typescript code](https://github.com/apache/burr/blob/main/telemetry/ui/src/examples/StreamingChatbot.tsx) that renders and interacts with the stream\n", "\n", "You can view this demo in your app by running Burr:\n", "\n", @@ -69,7 +69,7 @@ "3. Generate a poem\n", "4. Prompt for more\n", "\n", - "It will use an LLM to decide which to do. It streams back text using async streaming in Burr. Read more about how that is implemented [here](https://burr.dagworks.io/concepts/streaming-actions/).\n", + "It will use an LLM to decide which to do. It streams back text using async streaming in Burr. Read more about how that is implemented [here](https://burr.apache.org/concepts/streaming-actions/).\n", "\n", "Note that, even though not every response is streaming (E.G. unsafe response, which is hardcoded), they are modeled as streaming to make interaction with the app simpler." ] diff --git a/examples/test-case-creation/README.md b/examples/test-case-creation/README.md index 661578b8c..f7214e80a 100644 --- a/examples/test-case-creation/README.md +++ b/examples/test-case-creation/README.md @@ -66,7 +66,7 @@ In `test_application.py` you'll find examples tests for a simple action that is found in `application.py`. ## Notebook -The notebook also shows how things work. +The notebook also shows how things work. Open In Colab diff --git a/examples/tracing-and-spans/README.md b/examples/tracing-and-spans/README.md index 13b7aeb65..0d6ba25d3 100644 --- a/examples/tracing-and-spans/README.md +++ b/examples/tracing-and-spans/README.md @@ -20,7 +20,7 @@ # Traces and spans This demo covers the tracing/span capabilities in Burr. -For additional information, read over: [the documentation](https://burr.dagworks.io/concepts/additional-visibility/). +For additional information, read over: [the documentation](https://burr.apache.org/concepts/additional-visibility/). This does the same thing as the standard [multi-modal example](../multi-modal-chatbot), but leverages traces. Note that you'll likely be integrating tracing into whatever framework (langchain/hamilton) you're using -- we're @@ -30,6 +30,6 @@ These traces are used in the Burr UI. E.G. as follows: ![tracing](tracing_screencap.png) -The notebook also shows how things work. +The notebook also shows how things work. Open In Colab diff --git a/examples/tracing-and-spans/burr_otel_demo.ipynb b/examples/tracing-and-spans/burr_otel_demo.ipynb index 918acb857..2d4465731 100644 --- a/examples/tracing-and-spans/burr_otel_demo.ipynb +++ b/examples/tracing-and-spans/burr_otel_demo.ipynb @@ -20,7 +20,7 @@ " + \n", "\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).\n", "\n", "Take🏠:\n", "\n", @@ -80,7 +80,7 @@ "metadata": {}, "source": [ "# Solution: Burr\n", - "(Complements our other framework [Hamilton](https://github.com/dagWorks-Inc/hamilton))\n" + "(Complements our other framework [Hamilton](https://github.com/apache/hamilton))\n" ] }, { @@ -957,7 +957,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", "\n", "\n", "[Time Travel blog post & video:](https://blog.dagworks.io/p/travel-back-in-time-with-burr)\n", @@ -968,10 +968,10 @@ "\n", "More blogs @ `blog.dagworks.io` e.g. [async & streaming](https://blog.dagworks.io/p/streaming-chatbot-with-burr-fastapi)\n", "\n", - "More [examples](https://github.com/DAGWorks-Inc/burr/tree/main/examples/):\n", + "More [examples](https://github.com/apache/burr/tree/main/examples/):\n", "\n", - "- e.g. [test case creation](https://burr.dagworks.io/examples/guardrails/creating_tests/)\n", - "- e.g. [multi-agent collaboration](https://github.com/DAGWorks-Inc/burr/tree/main/examples/multi-agent-collaboration)\n", + "- e.g. [test case creation](https://burr.apache.org/examples/guardrails/creating_tests/)\n", + "- e.g. [multi-agent collaboration](https://github.com/apache/burr/tree/main/examples/multi-agent-collaboration)\n", "\n", "Follow on Twitter & LinkedIn:\n", "\n", diff --git a/examples/web-server/README.md b/examples/web-server/README.md index da8172898..20253933a 100644 --- a/examples/web-server/README.md +++ b/examples/web-server/README.md @@ -175,7 +175,7 @@ they can debug any state-related issues, ensuring a smooth user experience. Note that we never called out to databases. It all just magically worked.. This is all because we decouple the persistence layer from the web-call. The application will be persisted (to whatever database you want), -by burr's plugin capabilities -- read more [here](https://burr.dagworks.io/concepts/state-persistence/). +by burr's plugin capabilities -- read more [here](https://burr.apache.org/concepts/state-persistence/). This greatly reduces the amount you have to think about when developing. As Burr persistence is pluggable, you can write to your own database with whichever schema you prefer, customizing the schema for your project or using a generic one (state is just a JSON object -- you can easily serialize/deseriealize it). @@ -209,13 +209,13 @@ Or possibly some combination of the above. #### Async While we implemented synchronous calls, you can easily make these async by using `async def` and `await` in the appropriate places, -and using the `arun` method in Burr. Read more about async capabilities in [applications](https://burr.dagworks.io/concepts/state-machine/), -and [actions](https://burr.dagworks.io/concepts/actions/). +and using the `arun` method in Burr. Read more about async capabilities in [applications](https://burr.apache.org/concepts/state-machine/), +and [actions](https://burr.apache.org/concepts/actions/). #### Streaming You can use streaming to send back the stream of the output at any given point. You do this by creating a -[streaming action](https://burr.dagworks.io/concepts/streaming-actions/). You can then integrate with the +[streaming action](https://burr.apache.org/concepts/streaming-actions/). You can then integrate with the streaming respose in FastAPI to send back the stream of the output. You can do this with any steps (intermediate or final) in your application. diff --git a/examples/youtube-to-social-media-post/notebook.ipynb b/examples/youtube-to-social-media-post/notebook.ipynb index a7aed43b3..4f1fba52d 100644 --- a/examples/youtube-to-social-media-post/notebook.ipynb +++ b/examples/youtube-to-social-media-post/notebook.ipynb @@ -806,7 +806,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Persistence is great for iterative development such as tuning your [Instructor model with validators and constraints](https://python.useinstructor.com/concepts/reask_validation/), but it's also a powerful tool for building [test cases and guard rails](https://burr.dagworks.io/examples/guardrails/creating_tests/). The CLI command `burr-test-case` can generate a `pytest.fixture` to resume your app from a given state." + "Persistence is great for iterative development such as tuning your [Instructor model with validators and constraints](https://python.useinstructor.com/concepts/reask_validation/), but it's also a powerful tool for building [test cases and guard rails](https://burr.apache.org/examples/guardrails/creating_tests/). The CLI command `burr-test-case` can generate a `pytest.fixture` to resume your app from a given state." ] }, { diff --git a/pyproject.toml b/pyproject.toml index 3cb698ede..98f99b53c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,12 +25,12 @@ version = "0.41.0" dependencies = [] # yes, there are none requires-python = ">=3.9" authors = [ - {name = "Elijah ben Izzy", email = "elijah@dagworks.io"}, - {name = "Stefan Krawczyk", email = "stefan@dagworks.io"}, + {name = "Elijah ben Izzy", email = "elijah@apache.org"}, + {name = "Stefan Krawczyk", email = "stefan@apache.org"}, ] maintainers = [ - {name = "Elijah ben Izzy", email = "elijah@dagworks.io"}, - {name = "Stefan Krawczyk", email = "stefan@dagworks.io"}, + {name = "Elijah ben Izzy", email = "elijah@apache.org"}, + {name = "Stefan Krawczyk", email = "stefan@apache.org"}, ] description = "Apache Burr (incubating) makes it easy to develop applications that make decisions (chatbots, agents, simulations, etc...) from simple python building blocks." readme = "README.md" @@ -223,10 +223,10 @@ tortoise_orm = "burr.tracking.server.s3.settings.TORTOISE_ORM" location = "./burr/tracking/server/s3/migrations" src_folder = "./." [project.urls] -Homepage = "https://github.com/dagworks-inc/burr" -Documentation = "https://github.com/dagworks-inc/burr" -Repository = "https://github.com/dagworks-inc/burr" -"Bug Tracker" = "https://github.com/dagworks-inc/burr" +Homepage = "https://github.com/apache/burr" +Documentation = "https://github.com/apache/burr" +Repository = "https://github.com/apache/burr" +"Bug Tracker" = "https://github.com/apache/burr" [project.scripts] burr = "burr.cli.__main__:cli_run_server" diff --git a/telemetry/ui/src/components/nav/appcontainer.tsx b/telemetry/ui/src/components/nav/appcontainer.tsx index edcce3f2c..86e9614d1 100644 --- a/telemetry/ui/src/components/nav/appcontainer.tsx +++ b/telemetry/ui/src/components/nav/appcontainer.tsx @@ -102,45 +102,45 @@ export const AppContainer = (props: { children: React.ReactNode }) => { }, { name: 'Examples', - href: 'https://github.com/DAGWorks-Inc/burr/tree/main/examples', + href: 'https://github.com/apache/burr/tree/main/examples', icon: FolderIcon, linkType: 'external' }, ...(backendSpec?.supports_demos ? [ - { - name: 'Demos', - href: '/demos', - icon: ListBulletIcon, - linkType: 'internal', - children: [ - { name: 'counter', href: '/demos/counter', current: false, linkType: 'internal' }, - { name: 'chatbot', href: '/demos/chatbot', current: false, linkType: 'internal' }, - { - name: 'email-assistant', - href: '/demos/email-assistant', - current: false, - linkType: 'internal' - }, - { - name: 'streaming-chatbot', - href: '/demos/streaming-chatbot', - current: false, - linkType: 'internal' - }, - { - name: 'deep-researcher', - href: '/demos/deep-researcher', - current: false, - linkType: 'internal' - } - ] - } - ] + { + name: 'Demos', + href: '/demos', + icon: ListBulletIcon, + linkType: 'internal', + children: [ + { name: 'counter', href: '/demos/counter', current: false, linkType: 'internal' }, + { name: 'chatbot', href: '/demos/chatbot', current: false, linkType: 'internal' }, + { + name: 'email-assistant', + href: '/demos/email-assistant', + current: false, + linkType: 'internal' + }, + { + name: 'streaming-chatbot', + href: '/demos/streaming-chatbot', + current: false, + linkType: 'internal' + }, + { + name: 'deep-researcher', + href: '/demos/deep-researcher', + current: false, + linkType: 'internal' + } + ] + } + ] : []), { name: 'Develop', - href: 'https://github.com/dagworks-inc/burr', + href: 'https://github.com/apache/burr', icon: ComputerDesktopIcon, linkType: 'external' }, @@ -278,9 +278,8 @@ export const AppContainer = (props: { children: React.ReactNode }) => { {/* Static sidebar for desktop */}
{/* Sidebar component, swap this element with another sidebar if you like */}
@@ -375,11 +374,10 @@ export const AppContainer = (props: { children: React.ReactNode }) => {
diff --git a/telemetry/ui/src/components/routes/ProjectList.tsx b/telemetry/ui/src/components/routes/ProjectList.tsx index e317cdeea..8ccabc836 100644 --- a/telemetry/ui/src/components/routes/ProjectList.tsx +++ b/telemetry/ui/src/components/routes/ProjectList.tsx @@ -84,7 +84,7 @@ export const ProjectListTable = (props: { projects: Project[]; includeAnnotation {project.num_apps}