{"id":21047183,"url":"https://github.com/jsv4/botsonrails","last_synced_at":"2025-04-30T05:05:38.869Z","repository":{"id":230952334,"uuid":"761777499","full_name":"JSv4/BotsOnRails","owner":"JSv4","description":"BotsOnRails makes it easy to write LLM-controlled workflows that leave you in control of the execution flow with clear decision-gates and resumable workflows.","archived":false,"fork":false,"pushed_at":"2024-04-06T04:23:10.000Z","size":3341,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-30T05:05:30.884Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://jsv4.github.io/BotsOnRails/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JSv4.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-22T13:26:50.000Z","updated_at":"2025-01-01T06:25:42.000Z","dependencies_parsed_at":"2024-11-26T00:02:08.763Z","dependency_job_id":null,"html_url":"https://github.com/JSv4/BotsOnRails","commit_stats":null,"previous_names":["jsv4/botsonrails"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JSv4%2FBotsOnRails","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JSv4%2FBotsOnRails/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JSv4%2FBotsOnRails/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JSv4%2FBotsOnRails/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JSv4","download_url":"https://codeload.github.com/JSv4/BotsOnRails/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251644840,"owners_count":21620633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T14:35:51.963Z","updated_at":"2025-04-30T05:05:38.850Z","avatar_url":"https://github.com/JSv4.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BotsOnRails\n\nBotsOnRails was born out of a frustration with the challenges of building complex workflows involving large language \nmodels (LLMs), human interaction, and custom logic. As LLMs like GPT-3 and GPT-4 have become more powerful and \naccessible, there's been an explosion of interest in building applications that leverage their capabilities. However, \nbuilding these applications often requires orchestrating a complex dance between AI-generated content, human review \nand approval, and custom processing logic.\n\nExisting workflow orchestration tools, while powerful, often feel overly complex and rigid for these kinds of \nAI-driven workflows. They require a lot of upfront design and don't easily accommodate the kinds of dynamic, \nhuman-in-the-loop workflows that are common when working with LLMs.\n\nAt the same time, building these workflows from scratch using raw Python code quickly becomes unmanageable. The flow of \ndata and control between different parts of the system becomes hard to follow, and it's easy for subtle bugs and \ninconsistencies to creep in.\n\nBotsOnRails was created to provide a sweet spot between these two extremes. It offers a simple, flexible, and \nexpressive way to define workflows as trees of nodes, where each node represents a single step or decision point. \nCrucially, it has first-class support for human interaction, allowing you to easily designate any node as a pause \npoint for human review or approval.\n\n# Key Features:\n\n1. **Tree-based orchestration**: Define complex workflows as execution trees with nodes representing tasks or decisions.\n2. **Human-in-the-loop**: Seamlessly integrate human input and approvals into automated workflows.\n3. **Dynamic routing**: Route execution flow based on runtime data or conditions using functions or static mappings.\n4. **Type checking**: Ensure type safety and compatibility between nodes for robust execution.\n5. **Visualization**: Generate visual representations of your execution trees for analysis and debugging.\n6. **Resumable execution**: Restart or continue execution from specific nodes for iterative review and modification.\n7. **Lightweight and flexible**: Easy to integrate into existing projects and adapt to various use cases.\n\n# Installation:\n\n## Prerequisites \n\nYou need to install graphviz, which has different installation methods depending on your system.\n\n### Windows\n\nWe'd suggest using the .exe installer from the \n[official graphviz website](https://graphviz.org/doc/winbuild.html).\n\n### Linux\n\nIf you're using Ubuntu or another Debian derivative, try using apt like so:\n\n```requirements\nsudo apt install graphviz \n```\n\n### MacOS\n\nThere are a number of ways to install graphviz on Mac. For example, you can use homebrew:\n\n```requirements\nbrew install graphviz\n```\n\n## Install BotsOnRails\n\nYou can install the package directly from PyPi using pip:\n\n```commandline\npip install BotsOnRails\n```\n\n# Docs \u0026 Quickstart:\n\nCheck out our [extensive documentation](https://jsv4.github.io/BotsOnRails/) (still a work in progress).\n\n# Examples\n\nWe have a number of examples that illustrate how to build some common LLM-powered applications using BotsOnRails:\n1. [Document Processing Pipeline](docs/examples/llamaindex)\n2. [Human-in-the-loop Content Moderation](docs/examples/content_moderation)\n3. [LLM-Powered Interface](docs/examples/marvin)\n\n# Contributing:\n\nContributions are welcome! Please see the contributing guidelines in the GitHub repository.\n\n# License:\n\nBotsOnRails is licensed under the MIT License.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsv4%2Fbotsonrails","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsv4%2Fbotsonrails","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsv4%2Fbotsonrails/lists"}