<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Convergent Analytics</title>
    <description>The latest articles on Forem by Convergent Analytics (@c-nltx).</description>
    <link>https://forem.com/c-nltx</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2868335%2Fdff1f090-c7bb-4411-8d02-9e6fbfcff3cc.png</url>
      <title>Forem: Convergent Analytics</title>
      <link>https://forem.com/c-nltx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/c-nltx"/>
    <language>en</language>
    <item>
      <title>jBPM as AI Orchestration Platform</title>
      <dc:creator>Convergent Analytics</dc:creator>
      <pubDate>Sun, 13 Apr 2025 15:27:19 +0000</pubDate>
      <link>https://forem.com/c-nltx/jbpm-as-ai-orchestration-platform-2f1m</link>
      <guid>https://forem.com/c-nltx/jbpm-as-ai-orchestration-platform-2f1m</guid>
      <description>&lt;p&gt;Author: Sergey Lukyanchikov, &lt;a href="https://github.com/C-NLTX/Open-Source" rel="noopener noreferrer"&gt;C-NLTX/Open-Source&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; The views expressed in this document reflect the author's subjective perspective on the current and potential capabilities of jBPM.&lt;/p&gt;

&lt;p&gt;This text presents jBPM as a platform for orchestrating external AI-centric environments, such as Python, used for designing and running AI solutions. We will provide an overview of jBPM’s most relevant functionalities for AI orchestration and walk you through a practical example that demonstrates its effectiveness as an AI orchestration platform:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs1lrhept3rlsmwzi55hi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs1lrhept3rlsmwzi55hi.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 1 Stroke Prediction solution deployed in jBPM is run by the users of OpenEMR&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In Brief: About jBPM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.jbpm.org/" rel="noopener noreferrer"&gt;jBPM&lt;/a&gt; (Java Business Process Management) is an open-source integration platform with a workflow engine at its core. Although the jBPM project defines itself as a BPM (Business Process Management) or workflow engine, toolkit, or suite, we argue that describing it as an integration platform is more precise.&lt;/p&gt;

&lt;p&gt;The features that support this characterization include:&lt;/p&gt;

&lt;p&gt;·        Exposing business logic implemented in jBPM for external access – e.g., via REST API:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7h3zfkr1lxvfwq7btgc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7h3zfkr1lxvfwq7btgc.png" alt="Image description" width="800" height="416"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 2 A REST API call to jBPM resulting in a response (ID: 976) with status 201 (“success”)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;·        Providing an engine for business process automation:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkpsouybtrsc4us1l8fq8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkpsouybtrsc4us1l8fq8.png" alt="Image description" width="800" height="372"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 3 Web-based workflow editor, part of jBPM’s business process automation engine&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;·        Embedding components for interaction with external providers – e.g., with Python:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm7cbl09ojx5ayxc1pepa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm7cbl09ojx5ayxc1pepa.png" alt="Image description" width="800" height="273"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 4 jBPM’s project-level dependency configurator displaying a dependency record for the Jep extension&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;These capabilities enable jBPM to interact with external systems, make automation decisions, and manage callouts to external providers efficiently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How jBPM Orchestrates Python&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;jBPM’s Python integration can be implemented in various ways. Our current approach utilizes &lt;a href="https://ninia.github.io/jep/" rel="noopener noreferrer"&gt;Jep&lt;/a&gt; (Java Embedded Python), a Java extension that allows interaction with Python interpreters. When combined with jBPM’s business process automation (e.g., script task activity), this enables a solid, foundational level of Python orchestration:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcksm1ggonxcsiaouugnp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcksm1ggonxcsiaouugnp.png" alt="Image description" width="800" height="211"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 5 A script task executing Python code wrapped in Java via Jep within a jBPM business process&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Although Jep enables Python integration, it has usability barrier that may require workarounds during initial implementation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Practical Example: Stroke Prediction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A comprehensive illustrative example of jBPM orchestrating Python is our solution for training AI models and estimating stroke risk in a &lt;a href="https://www.kaggle.com/datasets/fedesoriano/stroke-prediction-dataset" rel="noopener noreferrer"&gt;set of patients&lt;/a&gt;. In a hospital or clinical setting, physicians use an EMR (Electronic Medical Record) system like open-source &lt;a href="https://www.open-emr.org/" rel="noopener noreferrer"&gt;OpenEMR&lt;/a&gt; (or any other software allowing customization of user screens). Stroke prediction requests may originate from various sections of the EMR, typically within a patient’s file:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fda4wg9rb6qqtoijeoefs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fda4wg9rb6qqtoijeoefs.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 6 A standard patient file screen in jBPM with a Health AI Solution Catalog&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The physician selects the Stroke Prediction AI solution and submits a prediction request to jBPM, where the AI logic is deployed:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyg62pjy984roga1i2abr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyg62pjy984roga1i2abr.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 7 The patient file screen displaying stroke risk prediction results&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;jBPM processes the request, orchestrating the AI logic and Python computations, and returns the estimated stroke risk to OpenEMR:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftkx0z843a3hn357dzq4h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftkx0z843a3hn357dzq4h.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 8 Process instance logging screen in jBPM displaying a prediction request (ID: 977) from a physician&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The stroke risk is initially calculated in jBPM before being returned to OpenEMR for the physician:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftsddj08ya3cctyu9ngqn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftsddj08ya3cctyu9ngqn.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 9 The process instance record (ID: 977) in jBPM displays the computed stroke risk to be returned to OpenEMR&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This prediction workflow, when visualized end-to-end, appears as follows:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flqqp5ghbk206vumi2ck8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flqqp5ghbk206vumi2ck8.png" alt="Image description" width="800" height="451"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 10 End-to-end flow of stroke prediction across OpenEMR and jBPM&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Meanwhile, an analyst monitoring the AI models’ performance can retrain and publish updated models:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs2vo4b6wg74o1ed0oqc9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs2vo4b6wg74o1ed0oqc9.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 11 Custom Health AI screen in OpenEMR for training AI models via jBPM&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Similar to the physician’s workflow, the analyst selects the AI solution and submits a train/validate/test request to jBPM:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3o2uxwa1o84czwb6769p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3o2uxwa1o84czwb6769p.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 12 Custom Health AI screen displaying outcomes of train/validate/test requests&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;jBPM logs and executes the training process:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fstgskotewe7huydvznzu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fstgskotewe7huydvznzu.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 13 Process instance logging screen in jBPM displaying a train/validate/test request (ID: 978) from an analyst&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Results are computed and returned to OpenEMR:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffi2srturruj0b342b866.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffi2srturruj0b342b866.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 14 Process instance record in jBPM displaying computed accuracy metrics to be returned to OpenEMR&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Load testing confirms that jBPM efficiently handles simultaneous user requests for both prediction and model training without bottlenecks or data leaks:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy4zf0dxcngv94258be8h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy4zf0dxcngv94258be8h.png" alt="Image description" width="800" height="454"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 15 OpenEMR screens displaying stroke prediction and model training results from load testing&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Makes jBPM an AI Orchestration Platform?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Given its ability to orchestrate AI workflows, one may ask: Does jBPM have sufficient surrounding functionality to be considered a full-fledged AI orchestration platform?&lt;/p&gt;

&lt;p&gt;Let’s examine the ecosystem around jBPM. Its “nearest neighbor” is likely &lt;a href="https://eclipseide.org/" rel="noopener noreferrer"&gt;Eclipse&lt;/a&gt;, the preferred IDE (Integrated Development Environment) for jBPM, particularly due to plugins like Eclipse BPMN2 Modeler:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g6605tjclx7xmpsc61b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g6605tjclx7xmpsc61b.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 16 A jBPM business process edited in Eclipse (offline)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Eclipse enhances jBPM by enabling offline development. The aforementioned plugins allow developers to perform most tasks locally that jBPM’s web-based client supports. Moreover, as a highly extensible modular IDE, Eclipse provides tools to meet virtually any requirement faced by development teams.&lt;/p&gt;

&lt;p&gt;Another key “neighbor” is &lt;a href="https://www.postgresql.org/" rel="noopener noreferrer"&gt;PostgreSQL&lt;/a&gt;, one of several database engines that can be configured to support jBPM’s underlying data structures:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkz85mpbjtrtcig3rw7l2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkz85mpbjtrtcig3rw7l2.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 17 Internal jBPM tables deployed in PostrgreSQL&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;PostgreSQL’s ability to store jBPM’s technical data unlocks vast opportunities for data mining and optimizing AI solutions deployed within jBPM.&lt;/p&gt;

&lt;p&gt;In this context, it is logical to mention another key “neighbor” – &lt;a href="https://eclipse-birt.github.io/birt-website/" rel="noopener noreferrer"&gt;BIRT&lt;/a&gt; (Business Intelligence Reporting Tool) – BIRT is one of open-source BI engines capable of extracting, transforming, and reporting on both technical and business data managed by jBPM:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fblrv4z9gb8pl3gywy49i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fblrv4z9gb8pl3gywy49i.png" alt="Image description" width="800" height="449"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Figure 18 BIRT maintaining reporting structures and visualizing jBPM data&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Together, Eclipse, PostgreSQL, and BIRT, along with jBPM’s core capabilities, form a robust AI orchestration platform that facilitates AI model deployment, execution, and optimization.&lt;/p&gt;

&lt;p&gt;For more: &lt;a href="https://github.com/C-NLTX/Open-Source" rel="noopener noreferrer"&gt;C-NLTX/Open-Source&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>lowcode</category>
      <category>ai</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
