Spaces:
Runtime error
Runtime error
| # Mixed Workflow Demo API Documentation | |
| This document outlines the APIs available for the interactive Mixed Workflow Demo. These endpoints allow a web frontend to fetch the available workflow components and execute an end-to-end demo pipeline (UDF → Rule → ML) without requiring a live database or actual machine learning models. | |
| ## Location | |
| The demo APIs are defined in the backend codebase at: | |
| `c:\Users\swastik\prediqai\RULE\workflow\demo\demo_api.py` | |
| ## Base URL | |
| Depending on how the backend server is started, the base URL for these endpoints will be: | |
| - **Standalone Demo Server:** `http://localhost:8001` | |
| - **Integrated within Main App:** `http://localhost:7860/workflow` (if optionally integrated in `app.py`) | |
| --- | |
| ## 1. Fetch Demo Catalog | |
| Retrieves all available demo features that the user can select on the frontend to build their workflow. | |
| - **Endpoint:** `GET /demo/catalog` | |
| - **Method:** `GET` | |
| - **Description:** Returns the available dummy UDFs, Rules, and ML Models configurations. Use this endpoint to populate dropdowns or selection cards in the UI. | |
| ### Success Response (200 OK) | |
| ```json | |
| { | |
| "udfs": { | |
| "clean_names": "Removes special characters and lowercases names", | |
| "extract_domain": "Extracts the email domain into a new column" | |
| }, | |
| "rules": { | |
| "high_value_tx": "Flags transactions over $10k", | |
| "suspicious_country": "Flags transactions from restricted countries" | |
| }, | |
| "ml_models": { | |
| "fraud_detection_v1": "Predicts fraud probability for financial transactions", | |
| "churn_prediction": "Predicts customer churn probability" | |
| } | |
| } | |
| ``` | |
| --- | |
| ## 2. Run Demo Workflow | |
| Executes a sequenced three-step mock workflow: exactly one **UDF** -> one **Rule** -> one **ML Model**. | |
| - **Endpoint:** `POST /demo/run` | |
| - **Method:** `POST` | |
| - **Headers:** `Content-Type: application/json` | |
| - **Description:** Runs the selected steps sequentially on a dummy dataset and returns a sample output dataframe showing added columns, and logging of execution steps. | |
| ### Request Body | |
| ```json | |
| { | |
| "udf": "clean_names", | |
| "rule": "high_value_tx", | |
| "ml_model": "fraud_detection_v1", | |
| "dummy_ml_port": 18765 | |
| } | |
| ``` | |
| *Note: `dummy_ml_port` is optional and defaults to 18765. It's the port where the backend spins up the dummy ML predicting API locally.* | |
| ### Success Response (200 OK) | |
| Returns execution statistics, columns added during processing, and a sample array of the enriched final dataset records. | |
| ```json | |
| { | |
| "status": "success", | |
| "steps": [ | |
| { "type": "udf", "name": "clean_names" }, | |
| { "type": "rule", "name": "high_value_tx" }, | |
| { "type": "ml", "name": "fraud_detection_v1" } | |
| ], | |
| "rows_processed": 1000, | |
| "final_rows": 1000, | |
| "columns_added": ["cleaned_name", "flag_high_value", "fraud_prob", "fraud_prediction"], | |
| "sample": [ | |
| { | |
| "name": "john_doe", | |
| "amount": 15000, | |
| "country": "US", | |
| "transaction_type": "transfer", | |
| "cleaned_name": "john doe", | |
| "flag_high_value": true, | |
| "fraud_prob": 0.85, | |
| "fraud_prediction": 1 | |
| } | |
| ] | |
| } | |
| ``` | |
| ### Error Responses | |
| #### Validation Error (400 Bad Request) | |
| Triggered if an unknown component is provided. | |
| ```json | |
| { | |
| "status": "error", | |
| "step": "validation", | |
| "error": "Unknown UDF 'invalid_udf_name'. Available: ['clean_names', 'extract_domain']" | |
| } | |
| ``` | |
| #### Execution Error (400 or 500 Internal Server Error) | |
| Triggered if any of the workflow engine steps fails internally. | |
| ```json | |
| { | |
| "status": "error", | |
| "step": "Workflow", | |
| "error": "Failed to apply rule constraints." | |
| } | |
| ``` | |