Skip to main content

Lurawi Agents

Project description

Lurawi - An Agent Workflow Orchestration Engine

Lurawi Logo

Table of Contents

Introduction

Lurawi is a NoCode/LowCode development environment designed for building sophisticated agent-based workflows. It empowers Machine Learning (ML) and Generative AI (GenAI) engineers to interactively design, experiment with, and implement complex workflows with minimal effort. The output of this process is an XML/JSON-based data file, ready for deployment and execution on the Lurawi runtime engine within a container image. This containerized solution can be seamlessly deployed in cloud environments such as AWS.

Key Features

  • Visual Workflow Design: Compose workflows intuitively using a drag-and-drop interface on a canvas.
  • Minimal Coding: Leverage visual construction to build workflows, significantly reducing the need for traditional programming.
  • Modular and Extensible Architecture: Extend system capabilities by encapsulating functionalities within modular custom function classes.
  • Unified REST API Specification: Access a comprehensive, out-of-the-box REST API. Refer to the API Specifications for details.
  • Cloud-Ready Deployment: Easily deploy workflows as Docker containers in environments like AWS.
  • Lurawi-in-a-Box: A self-contained Docker image providing a fully functional Lurawi system for local execution, requiring only Docker Desktop.
  • Lurawi Agent: Run Lurawi as an agent that can run either independently or integrate with popular agent ecosystems.

The following sections provide detailed instructions on how to experiment with Lurawi using the prebuilt Docker image.

Quick Start

Use Local Code Repository

git clone https://github.com/kunle12/lurawi.git

cd lurawi
source .env.example
bin/lurawi dev

Use Prebuilt Docker Image

docker pull kunle12/lurawi:latest

docker run -d \
  -p 3031:3031 \
  -p 8081:8081 \
  -e PROJECT_NAME={YOUR_PROJECT_NAME} \
  -e PROJECT_ACCESS_KEY={YOUR_ACCESS_KEY} \
  kunle12/lurawi:latest

Replace {YOUR_PROJECT_NAME} and {YOUR_ACCESS_KEY} with your registered project details.

Fast forward to use visual editor to build workflow section.

Installation

NOTE: For advanced setup, including a VS Code Development Container configuration, please refer to Lurawi setup as VS Code Dev Container.

Prerequisites

Ensure your workstation supports virtualization and has Docker Desktop installed.

Pulling the Lurawi Docker Image

To obtain the latest Lurawi Docker image, execute the following command:

docker pull kunle12/lurawi:latest

Upon successful download, the kunle12/lurawi:latest image will be available in your Docker Desktop environment.

Lurawi image in docker
Fig. 1 Downloaded Lurawi Docker image under Docker Desktop.

Launching the Lurawi Docker Container

To launch the Lurawi container, you can use the Docker Desktop UI by clicking the "Play" button under "Actions" for the kunle12/lurawi:latest image.

Important:

  • Bind your local machine ports 3031 and 8081 to the container's respective ports.
  • Set the PROJECT_NAME and PROJECT_ACCESS_KEY environment variables to your registered project name and access key.

After launching, you should observe container logs in Docker Desktop similar to the example below, indicating a successful startup:

Launched Lurawi container in docker
Fig. 2 Launch of Lurawi Docker container.

Working with the Lurawi Agent Workflow Visual Editor

Open your preferred web browser and navigate to http://localhost:3031 to access the Lurawi Agent Workflow Visual Editor:

Lurawi Visual Editor
Fig. 3 Lurawi agent workflow visual editor.

Loading an Example Workflow

Download the example workflow file: lurawi_example.xml.

In the visual editor, click the button to load this file. The editor will then display the example workflow. Remember to update the model name (highlighted in red in Fig. 4) to a model assigned to your project.

Workflow in Lurawi Visual Editor
Fig. 4 Loaded example workflow.

Dispatching the Workflow

To dispatch the current workflow to the Lurawi runtime server (running in the Docker container) for testing, click the button.

Dispatch Workflow to runtime engine
Fig. 5 Successfully uploaded the workflow to the Lurawi runtime engine.

Viewing Generated Code

Navigate to the Code tab (Fig. 6) to view the JSON-based code dynamically generated from the visual blocks in the Blocks tab. The visual blocks serve as the source code, while the JSON code represents the compiled, executable program. If the visual block program contains errors, the Code tab will display error messages instead of valid JSON. In such cases, switch back to the Blocks tab to rectify the errors, then return to the Code tab for validation.

Code tab showing JSON output
Fig. 6 Code tab (circled in red) showing the JSON code generated from the visual program blocks.

Testing the Workflow

Click the button to open a new tab to the Lurawi test console (Fig. 7) and begin interacting with your workflow by typing questions or messages.

Lurawi Test Console
Fig. 7 Lurawi Test Console.

Note on Test Console Payload: This test console is specifically designed for the following input payload structure:

{
  "uid": "client/user id",
  "name": "client name",
  "session_id": "optional client provided session id",
  "data" : {
    "message": "a text prompt message"
  }
}

If you modify the data payload structure within your workflow, the test console may no longer function as expected. For workflows with custom data structures, use curl or other REST API testing tools to call the endpoint at http://localhost:8081/projects/{your_project_name}/message.

Saving the Workflow

Click the button to download the finalized workflow from the visual editor. You can download two files: an XML file from the Blocks tab (containing the visual block code) and a JSON program code file from the Code tab (used by Lurawi for execution).

Saving Workflow
Fig. 8 Saving visual block code in Blocks tab.

It is recommended to save both files in a version-controlled repository, such as GitHub. With a properly configured CI/CD pipeline (e.g., GitHub Actions), a custom Docker image can be automatically built and deployed to production environments.

Next Steps

The Lurawi agent workflow visual editor is built upon Google Blockly. If you are new to block-based coding, it is highly recommended to familiarize yourself with its mechanics through tutorials, such as those provided by Scratch.

Once comfortable with block-based programming, delve into:

Lurawi's capabilities are extensible via a plug-in mechanism, allowing integration with third-party systems. Explore Advanced: How to Create Lurawi Custom Action Primitives to learn more.

Finally, review the Advanced: End-to-end Lurawi Development example for a comprehensive development cycle overview.

Notes

  1. Lurawi Code Repository: https://github.com/kunle12/lurawi
  2. Luwari Examples Repository: https://github.com/kunle12/lurawi-code-examples for more examples.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lurawi_agent-0.0.1.tar.gz (79.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lurawi_agent-0.0.1-py3-none-any.whl (93.6 kB view details)

Uploaded Python 3

File details

Details for the file lurawi_agent-0.0.1.tar.gz.

File metadata

  • Download URL: lurawi_agent-0.0.1.tar.gz
  • Upload date:
  • Size: 79.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for lurawi_agent-0.0.1.tar.gz
Algorithm Hash digest
SHA256 ac0c9727e322c377288cdb97d040e8ef3563ecbb96e4221490644e6909242be8
MD5 96d792eba32a8fdd146960e8dd8e88ef
BLAKE2b-256 abd27a52f315ec35f72eb22dabbc6a2114aa33686ee43e2b9fb6d1c49a41742a

See more details on using hashes here.

File details

Details for the file lurawi_agent-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: lurawi_agent-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 93.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for lurawi_agent-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 da2e356265babcf4f2c3e693101a2ef4022c9540c27dba53694b3f6395cdad99
MD5 f1bf43a0df457da254aa8c2a2cab19ae
BLAKE2b-256 a051b228c88b5aa606b847613ee43f959556ddaf16d8f95ae796caacb83e09ae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page