Spaces:
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 inapp.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)
{
"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
{
"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.
{
"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.
{
"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.
{
"status": "error",
"step": "Workflow",
"error": "Failed to apply rule constraints."
}