diff --git a/industries/predictive_maintenance_agent/.cursor.rules.md b/industries/asset_lifecycle_management_agent/.cursor.rules.md similarity index 100% rename from industries/predictive_maintenance_agent/.cursor.rules.md rename to industries/asset_lifecycle_management_agent/.cursor.rules.md diff --git a/industries/predictive_maintenance_agent/.gitignore b/industries/asset_lifecycle_management_agent/.gitignore similarity index 100% rename from industries/predictive_maintenance_agent/.gitignore rename to industries/asset_lifecycle_management_agent/.gitignore diff --git a/industries/predictive_maintenance_agent/README.md b/industries/asset_lifecycle_management_agent/README.md similarity index 78% rename from industries/predictive_maintenance_agent/README.md rename to industries/asset_lifecycle_management_agent/README.md index 262a69372..6cce9fc85 100644 --- a/industries/predictive_maintenance_agent/README.md +++ b/industries/asset_lifecycle_management_agent/README.md @@ -1,19 +1,12 @@ -# Predictive Maintenance Agent +# Asset Lifecycle Management Agent -A comprehensive AI-powered predictive maintenance system built with NeMo Agent Toolkit for turbofan engine health monitoring and failure prediction. +An AI-powered system for managing industrial assets throughout their lifecycle, built with NeMo Agent Toolkit. Currently focused on predictive maintenance for turbofan engines with plans to expand to full lifecycle management. Work done by: Vineeth Kalluru, Janaki Vamaraju, Sugandha Sharma, Ze Yang, and Viraj Modak ## Overview -Predictive maintenance prevents costly downtime by identifying potential failures before they occur. This agent leverages AI to analyze sensor data from turbofan engines, predict remaining useful life (RUL), and provide actionable insights for maintenance teams. - -### Key Benefits -- **Prevent Costly Downtime**: Identify failures before they occur -- **Optimize Maintenance**: Perform maintenance only when needed -- **Extend Equipment Life**: Monitor health to maximize efficiency -- **Improve Safety**: Prevent catastrophic failures -- **Reduce Costs**: Minimize emergency repairs and disruptions +Asset Lifecycle Management (ALM) spans acquisition, operation, upgrades, and retirement of industrial assets. This project delivers an agentic workflow that applies ALM ideas to real data. Today it focuses on the operation and maintenance slice: using time‑series sensor data to predict remaining useful life (RUL), detect anomalies, and recommend next steps. We use the NASA C‑MAPSS turbofan dataset as a practical, well‑studied benchmark with realistic signals and run‑to‑failure trajectories. The system is modular and backed by SQL (SQLite by default, PostgreSQL/MySQL supported), so extending into planning, commissioning, optimization, and decommissioning is straightforward as additional tools and integrations are added. ## Dataset @@ -25,13 +18,15 @@ Uses the **NASA Turbofan Engine Degradation Simulation Dataset (C-MAPSS)** with: ## Architecture -Multi-agent architecture with: -- **ReAct Agent Workflow**: Main orchestration using ReAct pattern -- **SQL Retriever Tool**: Generates SQL queries using NIM LLM -- **RUL Prediction Tool**: XGBoost model for remaining useful life prediction -- **Anomaly Detection Tool**: Detects anomalies in sensor data using time series foundational model -- **Plotting Agents**: Multi-tool agent for data visualization -- **Vector Database**: ChromaDB for storing table schema, Vanna training queries, and documentation +Multi-agent architecture designed for Asset Lifecycle Management with specialized tools for the Operation & Maintenance phase: +- **ReAct Agent Workflow**: Main orchestration using ReAct pattern for intelligent decision-making +- **SQL Retriever Tool**: Generates SQL queries using NIM LLM for asset data retrieval +- **RUL Prediction Tool**: XGBoost model for remaining useful life prediction to optimize maintenance scheduling +- **Anomaly Detection Tool**: Detects anomalies in sensor data using time series foundational model for early failure detection +- **Plotting Agents**: Multi-tool agent for data visualization and asset performance reporting +- **Vector Database**: ChromaDB for storing table schema, Vanna training queries, and asset documentation + +This architecture provides the foundation for comprehensive asset health monitoring, enabling data-driven maintenance decisions and extending asset operational life. #### Agentic workflow architecture diagram w/ reasoning ![Agentic workflow w/ reasoning](imgs/pdm_agentic_worklow_light.png) @@ -84,8 +79,8 @@ Multi-agent architecture with: ### 1. Create Conda Environment ```bash -conda create -n pdm python=3.11 -conda activate pdm +conda create -n alm python=3.11 +conda activate alm ``` ### 2. Install NVIDIA NeMo Agent Toolkit @@ -118,17 +113,17 @@ conda activate pdm uv pip install -e '.[telemetry]' ``` -### 3. Install Predictive Maintenance Agent +### 3. Install Asset Lifecycle Management Agent -First, clone the GenerativeAIExamples repository inside the parent folder of NeMo-Agent-Toolkit and navigate to the Predictive Maintenance Agent folder: +First, clone the GenerativeAIExamples repository inside the parent folder of NeMo-Agent-Toolkit and navigate to the Asset Lifecycle Management Agent folder: ```bash git clone https://github.com/NVIDIA/GenerativeAIExamples.git -cd GenerativeAIExamples/industries/manufacturing/predictive_maintenance_agent +cd GenerativeAIExamples/industries/manufacturing/asset_lifecycle_management_agent ``` -Clone the MOMENT library from GitHub inside this predictive maintenance agent folder. -This library is required to perform inference with MOMENT-1 time series foundational models for anomaly detection tasks. More about it [here](https://huggingface.co/AutonLab/MOMENT-1-small). +Clone the MOMENT library from GitHub inside this Asset Lifecycle Management Agent folder. +This library is required to perform inference with MOMENT-1 time series foundational models for anomaly detection tasks during the Operation & Maintenance phase. More about it [here](https://huggingface.co/AutonLab/MOMENT-1-small). ```bash git clone https://github.com/moment-timeseries-foundation-model/moment.git @@ -154,27 +149,27 @@ dependencies = [ ... ``` -Go back to the predictive maintenance agent folder: +Go back to the Asset Lifecycle Management Agent folder: ```bash cd .. ``` -Change the path to the cloned MOMENT library in `/path/to/predictive_maintenance_agent/pyproject.toml` if necessary. +Change the path to the cloned MOMENT library in `/path/to/asset_lifecycle_management_agent/pyproject.toml` if necessary. Change it from: ```bash [tool.uv.sources] -momentfm = { path = "/Users/vikalluru/Documents/GenerativeAIExamples/industries/manufacturing/predictive_maintenance_agent/moment", editable = true } +momentfm = { path = "/Users/vikalluru/Documents/GenerativeAIExamples/industries/manufacturing/asset_lifecycle_management_agent/moment", editable = true } ``` to: ```bash [tool.uv.sources] -momentfm = { path = "/your/path/to/predictive_maintenance_agent/moment", editable = true } +momentfm = { path = "/your/path/to/asset_lifecycle_management_agent/moment", editable = true } ``` This ensures that the MOMENT library will be installed from our cloned version instead of the PyPI release. -Now install the PDM workflow: +Now install the ALM workflow: ```bash uv pip install -e . @@ -196,13 +191,13 @@ python setup_database.py ### 5. Configure Paths -**Important**: You need to replace the absolute path `/Users/vikalluru/Documents/GenerativeAIExamples/industries/manufacturing/predictive_maintenance_agent/` with your preferred workspace path in the following files: +**Important**: You need to replace the absolute path `/Users/vikalluru/Documents/GenerativeAIExamples/industries/manufacturing/asset_lifecycle_management_agent/` with your preferred workspace path in the following files: 1. **`configs/config-reasoning.yml`** - Update the `db_path` and `output_folder` paths 2. **`pyproject.toml`** - Update the MOMENT library path (if you changed it in step 3) For example, if your workspace is at `/home/user/my_workspace/`, you would replace: -- `/Users/vikalluru/Documents/GenerativeAIExamples/industries/manufacturing/predictive_maintenance_agent/` +- `/Users/vikalluru/Documents/GenerativeAIExamples/industries/manufacturing/asset_lifecycle_management_agent/` - with `/home/user/my_workspace/` **Note**: All other paths in the config file can be provided as relative paths from your workspace directory. Only the MOMENT library path in `pyproject.toml` needs to be an absolute path. @@ -221,7 +216,7 @@ Create an empty folder for the output data and configure the `output_folder` pat output_folder: "output_data" ``` - Path is relative to where you run the workflow -- **Recommended**: Always run the workflow from the `predictive_maintenance_agent/` directory +- **Recommended**: Always run the workflow from the `asset_lifecycle_management_agent/` directory - Creates `output_data/` folder in your project directory **Option 2: Absolute Path** @@ -231,10 +226,10 @@ output_folder: "/absolute/path/to/your/output_data" - Works regardless of where you run the workflow from - Provides consistent output location -**Best Practice**: We recommend using relative paths and always running the workflow from the `predictive_maintenance_agent/` directory: +**Best Practice**: We recommend using relative paths and always running the workflow from the `asset_lifecycle_management_agent/` directory: ```bash -cd /path/to/GenerativeAIExamples/industries/manufacturing/predictive_maintenance_agent/ +cd /path/to/GenerativeAIExamples/industries/manufacturing/asset_lifecycle_management_agent/ # Run all workflow commands from here nat serve --config_file=configs/config-reasoning.yml ``` @@ -320,6 +315,31 @@ INFO: Uvicorn running on http://localhost:8000 (Press CTRL+C to quit) During startup, you'll see Vanna training logs as the SQL agent automatically loads the domain knowledge from `vanna_training_data.yaml` (as described in Section 6). +### Start Modern Web UI (Recommended) + +We now provide a **custom modern web interface** inspired by the NVIDIA AIQ Research Assistant design! This UI offers a superior experience for Asset Lifecycle Management workflows compared to the generic NeMo-Agent-Toolkit-UI. + +**In a new terminal**, navigate to the frontend directory and start the UI: + +```bash +cd frontend +npm install # First time only +npm start +``` + +The UI will be available at `http://localhost:3000` + +**Features of the Modern UI:** +- 🎨 Clean, professional NVIDIA-branded design +- 📊 Embedded visualization display for plots and charts +- 🎯 Quick-start example prompts for common queries +- ⚙️ Configurable settings panel +- 🌓 Dark/Light theme support +- 📱 Fully responsive mobile design +- 🔄 Real-time streaming responses + +See `frontend/README.md` for detailed documentation. + ### Start Code Execution Sandbox The code generation assistant requires a standalone Python sandbox that can execute the generated code. This step starts that sandbox. @@ -341,7 +361,7 @@ Start the sandbox by running the script with your output folder path: For example: ```bash -./local_sandbox/start_local_sandbox.sh local-sandbox /path-to/GenerativeAIExamples/industries/manufacturing/predictive_maintenance_agent/output_data/ +./local_sandbox/start_local_sandbox.sh local-sandbox /path-to/GenerativeAIExamples/industries/manufacturing/asset_lifecycle_management_agent/output_data/ ``` [Optional] Verify the sandbox is running correctly: @@ -361,7 +381,7 @@ docker stop local-sandbox ## Workspace Utilities -The predictive maintenance agent includes a powerful **workspace utilities system** that provides pre-built, reliable functions for common data processing tasks. This eliminates the need for the code generation assistant to implement complex algorithms from scratch, resulting in more reliable and consistent results. +The Asset Lifecycle Management Agent includes a powerful **workspace utilities system** that provides pre-built, reliable functions for common data processing tasks. This eliminates the need for the code generation assistant to implement complex algorithms from scratch, resulting in more reliable and consistent results. ### How Workspace Utilities Work @@ -459,6 +479,8 @@ The UI is available at `http://localhost:3000` - Configure theme and WebSocket URL as needed - Check "Enable intermediate results" and "Enable intermediate results by default" if you prefer to see all agent calls while the workflow runs +**Note:** The custom modern UI (described above) provides better visualization embedding, domain-specific examples, and a more polished experience tailored for Asset Lifecycle Management workflows. + ## Example Prompts Test the system with these prompts: @@ -511,7 +533,7 @@ Perform the following steps: Ensure that Phoenix tracing-related information is present in the config file. -Uncomment this portion of `prediction_maintenance_agent/configs/config-reasoning.yml` file: +Uncomment this portion of `asset_lifecycle_management_agent/configs/config-reasoning.yml` file: ```yaml ... @@ -520,7 +542,7 @@ Uncomment this portion of `prediction_maintenance_agent/configs/config-reasoning # phoenix: # _type: phoenix # endpoint: http://localhost:6006/v1/traces - # project: pdm-test # You can replace this with your preferred project name + # project: alm-test # You can replace this with your preferred project name ... ``` @@ -546,7 +568,7 @@ CATALYST_SECRET_KEY="xxxxxxxxxxxxxxxxxxxxxxxx" # Change this to your RAGA AI Sec CATALYST_ENDPOINT=https://catalyst.raga.ai/api # Don't change this ``` -Uncomment this portion of `prediction_maintenance_agent/configs/config-reasoning.yml` file to enable Catalyst tracing: +Uncomment this portion of `asset_lifecycle_management_agent/configs/config-reasoning.yml` file to enable Catalyst tracing: ```yaml ... @@ -554,8 +576,8 @@ Uncomment this portion of `prediction_maintenance_agent/configs/config-reasoning # tracing: # catalyst: # _type: catalyst - # project: "pdm-test" # You can replace this with your preferred project name - # dataset: "pdm-dataset" # You can replace this with your preferred dataset name + # project: "alm-test" # You can replace this with your preferred project name + # dataset: "alm-dataset" # You can replace this with your preferred dataset name ... ``` @@ -565,18 +587,18 @@ You should see Catalyst initialization-related information in the terminal when NeMo Agent Toolkit provides the flexibility to run workflows not just through terminal commands (`nat serve`) but also programmatically in Python which helps in seamless CI/CD pipeline integration. -You can test the workflow by running the `test_pdm_workflow.py` file using pytest instead of starting the server, which provides a Pythonic way of building and running the workflow programmatically. This approach is particularly valuable for continuous integration and deployment systems, allowing automated validation of workflow components and streamlined deployment processes. +You can test the workflow by running the `test_alm_workflow.py` file using pytest instead of starting the server, which provides a Pythonic way of building and running the workflow programmatically. This approach is particularly valuable for continuous integration and deployment systems, allowing automated validation of workflow components and streamlined deployment processes. Ensure that you have set the `$NVIDIA_API_KEY` environment variable before running: ```bash -pytest test_pdm_workflow.py -m e2e -v +pytest test_alm_workflow.py -m e2e -v ``` To run individual tests in the file: ```bash -pytest test_pdm_workflow.py -k "" -v +pytest test_alm_workflow.py -k "" -v ``` ## Evaluation @@ -585,7 +607,7 @@ This example comes with 25 curated queries and reference answers that form our e ### Multimodal Evaluation with Vision-Language Models -We have implemented an innovative **Multimodal LLM Judge Evaluator** for agentic workflow evaluation, specifically designed for predictive maintenance tasks that generate both text and visual outputs. +We have implemented an innovative **Multimodal LLM Judge Evaluator** for agentic workflow evaluation, specifically designed for Asset Lifecycle Management tasks that generate both text and visual outputs. **Why Custom Multimodal Evaluation?** @@ -593,7 +615,7 @@ The built-in evaluators in NeMo Agent Toolkit have significant limitations: - **Text-Only Evaluation**: Cannot assess visual outputs like plots and charts - **Rigid String Matching**: Uses LangChain's `TrajectoryEvalChain` which only looks for exact patterns - **No Visual Understanding**: Cannot evaluate whether generated plots match expected visualizations -- **Generic Prompts**: Not tailored for predictive maintenance domain +- **Generic Prompts**: Not tailored for asset management and maintenance domain **Our Innovative Multimodal Approach:** @@ -609,7 +631,7 @@ The built-in evaluators in NeMo Agent Toolkit have significant limitations: - ✅ **Intelligent Mode Switching**: Automatically detects whether to evaluate text or plots - ✅ **Visual Understanding**: Can assess if generated plots show correct data patterns, axis labels, trends - ✅ **Simple Scoring**: Supports only three scores from 0.0 (fully incorrect), 0.5 (partially correct) to 1.0 (fully correct) -- ✅ **Domain-Specific**: Tailored prompts for predictive maintenance visualization patterns +- ✅ **Domain-Specific**: Tailored prompts for Asset Lifecycle Management and maintenance visualization patterns We have created a smaller version of this dataset in `eval_data/eval_set_test.json` to help with quick checks before running the larger evaluation workflow. @@ -617,7 +639,7 @@ We have created a smaller version of this dataset in `eval_data/eval_set_test.js Update the config file with the path to the evaluation set. -In `predictive_maintenance_agent/configs/config-reasoning.yml`: +In `asset_lifecycle_management_agent/configs/config-reasoning.yml`: ```yaml eval: general: @@ -665,14 +687,25 @@ analyst_llm: ## Next Steps -The agent provides a foundation for industrial AI applications. Planned enhancements include: -- Memory layer for context retention +The Asset Lifecycle Management Agent provides a foundation for comprehensive industrial asset management. Planned enhancements include: + +**Operation & Maintenance Phase:** +- Memory layer for context retention across maintenance sessions - Parallel tool execution for faster responses -- Action recommendation agent +- Action recommendation agent for maintenance prioritization - Real-time fault detection agent -- Integration with NVIDIA's NV-Tesseract foundation models for improved accuracy -- Integration with NeMo Retriever for data source context -- Expansion of evaluation dataset with complex queries that involve creating advanced SQL queries like CTEs, etc. +- Integration with NVIDIA's NV-Tesseract foundation models for improved time-series accuracy +- Integration with NeMo Retriever for enhanced data source context + +**Expanded ALM Capabilities:** +- **Planning & Acquisition**: Tools for asset specification analysis, vendor comparison, and TCO (Total Cost of Ownership) calculation +- **Deployment & Commissioning**: Integration with commissioning checklists, validation protocols, and asset registration systems +- **Upgrades & Optimization**: Performance benchmarking tools, upgrade recommendation engines, and ROI analysis +- **Decommissioning & Disposal**: End-of-life planning tools, environmental compliance tracking, and asset value recovery optimization + +**Evaluation & Quality:** +- Expansion of evaluation dataset with complex queries involving advanced SQL queries like CTEs +- Additional evaluation metrics for ALM-specific tasks --- **Resources:** diff --git a/industries/predictive_maintenance_agent/configs/config-reasoning.yml b/industries/asset_lifecycle_management_agent/configs/config-reasoning.yml similarity index 90% rename from industries/predictive_maintenance_agent/configs/config-reasoning.yml rename to industries/asset_lifecycle_management_agent/configs/config-reasoning.yml index cd7b144e6..88bfd34c1 100644 --- a/industries/predictive_maintenance_agent/configs/config-reasoning.yml +++ b/industries/asset_lifecycle_management_agent/configs/config-reasoning.yml @@ -15,24 +15,25 @@ general: use_uvloop: true - # telemetry: - # logging: - # console: - # _type: console - # level: INFO - # file: - # _type: file - # path: "pdm.log" - # level: DEBUG - # tracing: - # phoenix: - # _type: phoenix - # endpoint: http://localhost:6006/v1/traces - # project: pdm-test - # catalyst: - # _type: catalyst - # project: "pdm-test" - # dataset: "pdm-dataset" + telemetry: + logging: + console: + _type: console + level: DEBUG + # level: INFO + # file: + # _type: file + # path: "alm.log" + # level: DEBUG + tracing: + phoenix: + _type: phoenix + endpoint: http://localhost:6006/v1/traces + project: alm-agent + # catalyst: + # _type: catalyst + # project: "alm-agent" + # dataset: "alm-agent" llms: # SQL query generation model @@ -134,7 +135,7 @@ functions: parse_agent_response_max_retries: 2 system_prompt: | ### TASK DESCRIPTION #### - You are a helpful data analysis assistant that can help with predictive maintenance tasks for a turbofan engine. + You are a helpful data analysis assistant specializing in Asset Lifecycle Management tasks, currently focused on predictive maintenance for turbofan engines. **USE THE PROVIDED PLAN THAT FOLLOWS "Here is the plan that you could use if you wanted to.."** ### TOOLS ### @@ -154,7 +155,7 @@ functions: Executing step: the step you are currently executing from the plan along with any instructions provided Thought: describe how you are going to execute the step Final Answer: the final answer to the original input question including the absolute file paths of the generated files with - `/Users/vikalluru/Documents/GenerativeAIExamples/industries/manufacturing/predictive_maintenance_agent/output_data/` prepended to the filename. + `/Users/vikalluru/Documents/GenerativeAIExamples/industries/asset_lifecycle_management_agent/output_data/` prepended to the filename. **FORMAT 3 (when using a tool)** Input plan: Summarize all the steps in the plan. @@ -216,11 +217,11 @@ workflow: verbose: true reasoning_prompt_template: | ### DESCRIPTION ### - You are a Data Analysis Reasoning and Planning Expert specialized in analyzing turbofan engine sensor data and predictive maintenance tasks. + You are a Data Analysis Reasoning and Planning Expert specialized in Asset Lifecycle Management, with expertise in analyzing turbofan engine sensor data and predictive maintenance tasks. You are tasked with creating detailed execution plans for addressing user queries while being conversational and helpful. Your Role and Capabilities:** - - Expert in turbofan engine data analysis, predictive maintenance, and anomaly detection + - Expert in Asset Lifecycle Management, turbofan engine data analysis, predictive maintenance, and anomaly detection - Provide conversational responses while maintaining technical accuracy - Create step-by-step execution plans using available tools which will be invoked by a data analysis assistant @@ -239,13 +240,13 @@ workflow: four datasets (FD001, FD002, FD003, FD004), each dataset is further divided into training and test subsets. - **26 data columns**: unit number, time in cycles, 3 operational settings, and 21 sensor measurements - **Engine lifecycle**: Engines start operating normally, then develop faults that grow until system failure - - **Predictive maintenance goal**: Predict Remaining Useful Life (RUL) - how many operational cycles before failure + - **Asset Lifecycle Management - Operation & Maintenance Phase**: Predict Remaining Useful Life (RUL) - how many operational cycles before failure - **Data characteristics**: Contains normal operational variation, sensor noise, and progressive fault development This context helps you understand user queries about engine health, sensor patterns, failure prediction, and maintenance planning. REMEMBER TO RELY ON DATA ANALYSIS ASSITANT TO RETRIEVE DATA FROM THE DATABASE. ### SPECIAL CONSTRAINTS ### - Create execution plans for specialized predictive maintenance tasks. For other queries, use standard reasoning. + Create execution plans for Asset Lifecycle Management tasks (currently focused on predictive maintenance and sensor data analysis). For other queries, use standard reasoning. Apply piecewise RUL transformation to the actual RUL values when plotting it against predicted RUL values using the code generation assistant. ### GUIDELINES ### @@ -274,7 +275,7 @@ eval: _type: multimodal_llm_judge_evaluator llm_name: multimodal_judging_llm judge_prompt: | - You are an expert evaluator for predictive maintenance agentic workflows. + You are an expert evaluator for Asset Lifecycle Management agentic workflows, with expertise in predictive maintenance tasks. Your task is to evaluate how well a generated response (which may include both text and visualizations) matches the reference answer for a given question. diff --git a/industries/predictive_maintenance_agent/env_template.txt b/industries/asset_lifecycle_management_agent/env_template.txt similarity index 90% rename from industries/predictive_maintenance_agent/env_template.txt rename to industries/asset_lifecycle_management_agent/env_template.txt index 72f2676e1..7c2d52b1b 100644 --- a/industries/predictive_maintenance_agent/env_template.txt +++ b/industries/asset_lifecycle_management_agent/env_template.txt @@ -1,4 +1,4 @@ -# Environment Variables for Predictive Maintenance Agent +# Environment Variables for Asset Lifecycle Management Agent # # Copy this file to .env and replace the placeholder values with your actual API keys # To use: cp env_template.txt .env && source .env diff --git a/industries/predictive_maintenance_agent/eval_data/eval_set_master.json b/industries/asset_lifecycle_management_agent/eval_data/eval_set_master.json similarity index 100% rename from industries/predictive_maintenance_agent/eval_data/eval_set_master.json rename to industries/asset_lifecycle_management_agent/eval_data/eval_set_master.json diff --git a/industries/predictive_maintenance_agent/eval_data/eval_set_test.json b/industries/asset_lifecycle_management_agent/eval_data/eval_set_test.json similarity index 100% rename from industries/predictive_maintenance_agent/eval_data/eval_set_test.json rename to industries/asset_lifecycle_management_agent/eval_data/eval_set_test.json diff --git a/industries/predictive_maintenance_agent/eval_output/multimodal_eval_output.json b/industries/asset_lifecycle_management_agent/eval_output/multimodal_eval_output.json similarity index 100% rename from industries/predictive_maintenance_agent/eval_output/multimodal_eval_output.json rename to industries/asset_lifecycle_management_agent/eval_output/multimodal_eval_output.json diff --git a/industries/predictive_maintenance_agent/eval_output/workflow_output.json b/industries/asset_lifecycle_management_agent/eval_output/workflow_output.json similarity index 100% rename from industries/predictive_maintenance_agent/eval_output/workflow_output.json rename to industries/asset_lifecycle_management_agent/eval_output/workflow_output.json diff --git a/industries/predictive_maintenance_agent/imgs/intermediate_steps.png b/industries/asset_lifecycle_management_agent/imgs/intermediate_steps.png similarity index 100% rename from industries/predictive_maintenance_agent/imgs/intermediate_steps.png rename to industries/asset_lifecycle_management_agent/imgs/intermediate_steps.png diff --git a/industries/predictive_maintenance_agent/imgs/pdm_agentic_worklow_light.png b/industries/asset_lifecycle_management_agent/imgs/pdm_agentic_worklow_light.png similarity index 100% rename from industries/predictive_maintenance_agent/imgs/pdm_agentic_worklow_light.png rename to industries/asset_lifecycle_management_agent/imgs/pdm_agentic_worklow_light.png diff --git a/industries/predictive_maintenance_agent/imgs/pdm_architecture_updated.drawio b/industries/asset_lifecycle_management_agent/imgs/pdm_architecture_updated.drawio similarity index 100% rename from industries/predictive_maintenance_agent/imgs/pdm_architecture_updated.drawio rename to industries/asset_lifecycle_management_agent/imgs/pdm_architecture_updated.drawio diff --git a/industries/predictive_maintenance_agent/imgs/pred_maint_arch_diagram_img1.png b/industries/asset_lifecycle_management_agent/imgs/pred_maint_arch_diagram_img1.png similarity index 100% rename from industries/predictive_maintenance_agent/imgs/pred_maint_arch_diagram_img1.png rename to industries/asset_lifecycle_management_agent/imgs/pred_maint_arch_diagram_img1.png diff --git a/industries/predictive_maintenance_agent/imgs/pred_maint_arch_diagram_img2.png b/industries/asset_lifecycle_management_agent/imgs/pred_maint_arch_diagram_img2.png similarity index 100% rename from industries/predictive_maintenance_agent/imgs/pred_maint_arch_diagram_img2.png rename to industries/asset_lifecycle_management_agent/imgs/pred_maint_arch_diagram_img2.png diff --git a/industries/predictive_maintenance_agent/imgs/test_prompt_1.png b/industries/asset_lifecycle_management_agent/imgs/test_prompt_1.png similarity index 100% rename from industries/predictive_maintenance_agent/imgs/test_prompt_1.png rename to industries/asset_lifecycle_management_agent/imgs/test_prompt_1.png diff --git a/industries/predictive_maintenance_agent/imgs/test_prompt_2.png b/industries/asset_lifecycle_management_agent/imgs/test_prompt_2.png similarity index 100% rename from industries/predictive_maintenance_agent/imgs/test_prompt_2.png rename to industries/asset_lifecycle_management_agent/imgs/test_prompt_2.png diff --git a/industries/predictive_maintenance_agent/imgs/test_prompt_3.png b/industries/asset_lifecycle_management_agent/imgs/test_prompt_3.png similarity index 100% rename from industries/predictive_maintenance_agent/imgs/test_prompt_3.png rename to industries/asset_lifecycle_management_agent/imgs/test_prompt_3.png diff --git a/industries/predictive_maintenance_agent/imgs/test_prompt_4.png b/industries/asset_lifecycle_management_agent/imgs/test_prompt_4.png similarity index 100% rename from industries/predictive_maintenance_agent/imgs/test_prompt_4.png rename to industries/asset_lifecycle_management_agent/imgs/test_prompt_4.png diff --git a/industries/predictive_maintenance_agent/imgs/updated_pdm_arch.png b/industries/asset_lifecycle_management_agent/imgs/updated_pdm_arch.png similarity index 100% rename from industries/predictive_maintenance_agent/imgs/updated_pdm_arch.png rename to industries/asset_lifecycle_management_agent/imgs/updated_pdm_arch.png diff --git a/industries/predictive_maintenance_agent/pyproject.toml b/industries/asset_lifecycle_management_agent/pyproject.toml similarity index 70% rename from industries/predictive_maintenance_agent/pyproject.toml rename to industries/asset_lifecycle_management_agent/pyproject.toml index 5b08d7e00..5e7c4677f 100644 --- a/industries/predictive_maintenance_agent/pyproject.toml +++ b/industries/asset_lifecycle_management_agent/pyproject.toml @@ -3,7 +3,7 @@ build-backend = "setuptools.build_meta" requires = ["setuptools >= 64"] [project] -name = "predictive_maintenance_agent" +name = "asset_lifecycle_management_agent" dynamic = ["version"] dependencies = [ "nvidia-nat[profiling, langchain, telemetry]==1.2.1", @@ -18,23 +18,23 @@ dependencies = [ "pytest-asyncio" ] requires-python = ">=3.11,<3.13" -description = "Predictive maintenance workflow using NeMo Agent Toolkit" +description = "Asset Lifecycle Management workflow using NeMo Agent Toolkit for comprehensive industrial asset management from acquisition through retirement" classifiers = ["Programming Language :: Python"] authors = [{ name = "Vineeth Kalluru" }] maintainers = [{ name = "NVIDIA Corporation" }] [project.entry-points.'nat.components'] -predictive_maintenance_agent = "predictive_maintenance_agent.register" +asset_lifecycle_management_agent = "asset_lifecycle_management_agent.register" [tool.uv.sources] momentfm = { path = "./moment", editable = true } [tool.setuptools] -packages = ["predictive_maintenance_agent"] +packages = ["asset_lifecycle_management_agent"] package-dir = {"" = "src"} [tool.setuptools.dynamic] -version = {attr = "predictive_maintenance_agent.__version__"} +version = {attr = "asset_lifecycle_management_agent.__version__"} [tool.pytest.ini_options] asyncio_mode = "auto" diff --git a/industries/predictive_maintenance_agent/setup_database.py b/industries/asset_lifecycle_management_agent/setup_database.py similarity index 99% rename from industries/predictive_maintenance_agent/setup_database.py rename to industries/asset_lifecycle_management_agent/setup_database.py index d52d30755..595a542f0 100644 --- a/industries/predictive_maintenance_agent/setup_database.py +++ b/industries/asset_lifecycle_management_agent/setup_database.py @@ -18,7 +18,7 @@ NASA Turbofan Engine Dataset to SQLite Database Converter This script converts the NASA Turbofan Engine Degradation Simulation Dataset (C-MAPSS) -from text files into a structured SQLite database for use with the predictive maintenance agent. +from text files into a structured SQLite database for use with the Asset Lifecycle Management agent. The NASA dataset contains: - Training data: Engine run-to-failure trajectories diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/__init__.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/__init__.py similarity index 100% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/__init__.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/__init__.py diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/evaluators/__init__.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/evaluators/__init__.py similarity index 88% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/evaluators/__init__.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/evaluators/__init__.py index e24781fc9..81d7ca035 100644 --- a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/evaluators/__init__.py +++ b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/evaluators/__init__.py @@ -14,10 +14,10 @@ # limitations under the License. """ -Evaluators package for predictive maintenance agent. +Evaluators package for Asset Lifecycle Management agent. This package contains evaluator implementations for assessing the quality -of responses from the predictive maintenance agent workflow. +of responses from the Asset Lifecycle Management agent workflow. """ from .llm_judge_evaluator import LLMJudgeEvaluator diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/evaluators/llm_judge_evaluator.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/evaluators/llm_judge_evaluator.py similarity index 100% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/evaluators/llm_judge_evaluator.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/evaluators/llm_judge_evaluator.py diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/evaluators/llm_judge_evaluator_register.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/evaluators/llm_judge_evaluator_register.py similarity index 89% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/evaluators/llm_judge_evaluator_register.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/evaluators/llm_judge_evaluator_register.py index 8077fab1b..3263fdc38 100644 --- a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/evaluators/llm_judge_evaluator_register.py +++ b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/evaluators/llm_judge_evaluator_register.py @@ -27,7 +27,7 @@ class LLMJudgeEvaluatorConfig(EvaluatorBaseConfig, name="llm_judge"): llm_name: str = Field(description="Name of the LLM to use as judge") judge_prompt: str = Field( description="Prompt template for the judge LLM. Should include {question}, {reference_answer}, and {generated_answer} placeholders", - default="""You are an expert evaluator for predictive maintenance systems. Your task is to evaluate how well a generated answer matches the reference answer for a given question. + default="""You are an expert evaluator for Asset Lifecycle Management systems. Your task is to evaluate how well a generated answer matches the reference answer for a given question. Question: {question} @@ -38,7 +38,7 @@ class LLMJudgeEvaluatorConfig(EvaluatorBaseConfig, name="llm_judge"): Please evaluate the generated answer against the reference answer considering: 1. Factual accuracy and correctness 2. Completeness of the response -3. Technical accuracy for predictive maintenance context +3. Technical accuracy for Asset Lifecycle Management context 4. Relevance to the question asked Provide your evaluation as a JSON object with the following format: @@ -77,5 +77,5 @@ async def register_llm_judge_evaluator(config: LLMJudgeEvaluatorConfig, builder: yield EvaluatorInfo( config=config, evaluate_fn=evaluator.evaluate, - description="LLM-as-a-Judge Evaluator for Predictive Maintenance" + description="LLM-as-a-Judge Evaluator for Asset Lifecycle Management" ) \ No newline at end of file diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/evaluators/multimodal_llm_judge_evaluator.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/evaluators/multimodal_llm_judge_evaluator.py similarity index 99% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/evaluators/multimodal_llm_judge_evaluator.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/evaluators/multimodal_llm_judge_evaluator.py index 9177a4848..e95ac4d27 100644 --- a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/evaluators/multimodal_llm_judge_evaluator.py +++ b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/evaluators/multimodal_llm_judge_evaluator.py @@ -17,7 +17,7 @@ Multimodal LLM Judge Evaluator An enhanced evaluator that uses llama-3.2-90b-instruct to evaluate both text and visual outputs -from agentic workflows. This evaluator is specifically designed for predictive maintenance +from agentic workflows. This evaluator is specifically designed for Asset Lifecycle Management responses that may include plots and visualizations. """ @@ -162,7 +162,7 @@ def _extract_plot_paths(self, response: str) -> list[str]: # If we detect plot generation language but no existing files, # try to find PNG files in the output_data directory that might be related if has_plot_indicator and not plot_paths: - output_dir = "/Users/vikalluru/Documents/GenerativeAIExamples/industries/manufacturing/predictive_maintenance_agent/output_data" + output_dir = "/Users/vikalluru/Documents/GenerativeAIExamples/industries/manufacturing/asset_lifecycle_management_agent/output_data" if os.path.exists(output_dir): png_files = [f for f in os.listdir(output_dir) if f.endswith('.png')] # Add the most recently modified PNG files diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/evaluators/multimodal_llm_judge_evaluator_register.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/evaluators/multimodal_llm_judge_evaluator_register.py similarity index 85% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/evaluators/multimodal_llm_judge_evaluator_register.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/evaluators/multimodal_llm_judge_evaluator_register.py index f06fe1ea6..b2c3f6054 100644 --- a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/evaluators/multimodal_llm_judge_evaluator_register.py +++ b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/evaluators/multimodal_llm_judge_evaluator_register.py @@ -27,7 +27,7 @@ class MultimodalLLMJudgeEvaluatorConfig(EvaluatorBaseConfig, name="multimodal_ll llm_name: str = Field(description="Name of the LLM to use as judge (should support vision for multimodal evaluation)") judge_prompt: str = Field( description="Prompt template for the judge LLM. Should include {question}, {reference_answer}, and {generated_answer} placeholders. This prompt works for both text-only and multimodal evaluation.", - default="""You are an expert evaluator for predictive maintenance agentic workflows. Your task is to evaluate how well a generated response (which may include both text and visualizations) matches the reference answer for a given question. + default="""You are an expert evaluator for Asset Lifecycle Management agentic workflows. Your task is to evaluate how well a generated response (which may include both text and visualizations) matches the reference answer for a given question. Question: {question} @@ -40,15 +40,15 @@ class MultimodalLLMJudgeEvaluatorConfig(EvaluatorBaseConfig, name="multimodal_ll TEXT EVALUATION: 1. Factual accuracy and correctness of technical information 2. Completeness of the response (does it answer all parts of the question?) -3. Technical accuracy for predictive maintenance context (RUL predictions, sensor data analysis, etc.) -4. Appropriate use of predictive maintenance terminology and concepts +3. Technical accuracy for Asset Lifecycle Management context (RUL predictions, sensor data analysis, etc.) +4. Appropriate use of Asset Lifecycle Management and predictive maintenance terminology and concepts VISUAL EVALUATION (if plots/charts are present): 1. Does the visualization show the correct data/variables as specified in the reference? 2. Are the axes labeled correctly and with appropriate ranges? 3. Does the plot type (line chart, bar chart, distribution, etc.) match what was requested? 4. Are the data values, trends, and patterns approximately correct? -5. Is the visualization clear and appropriate for predictive maintenance analysis? +5. Is the visualization clear and appropriate for Asset Lifecycle Management analysis? 6. Does the plot help answer the original question effectively? COMBINED EVALUATION: @@ -56,7 +56,7 @@ class MultimodalLLMJudgeEvaluatorConfig(EvaluatorBaseConfig, name="multimodal_ll 2. Does the overall response provide a complete answer? 3. Is the combination more helpful than text or visuals alone would be? -For predictive maintenance context, pay special attention to: +For Asset Lifecycle Management context, pay special attention to: - RUL (Remaining Useful Life) predictions and trends - Sensor data patterns and operational settings - Time-series data representation @@ -96,5 +96,5 @@ async def register_multimodal_llm_judge_evaluator(config: MultimodalLLMJudgeEval yield EvaluatorInfo( config=config, evaluate_fn=evaluator.evaluate, - description="Multimodal LLM Judge Evaluator with Text and Visual Evaluation Capabilities for Predictive Maintenance" + description="Multimodal LLM Judge Evaluator with Text and Visual Evaluation Capabilities for Asset Lifecycle Management" ) \ No newline at end of file diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/__init__.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/__init__.py similarity index 89% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/__init__.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/__init__.py index 99cbf664d..a15e19b23 100644 --- a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/__init__.py +++ b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/__init__.py @@ -14,10 +14,10 @@ # limitations under the License. """ -Plotting package for predictive maintenance agent. +Plotting package for Asset Lifecycle Management agent. This package contains components for data visualization, plotting tools, -and code generation assistance for predictive maintenance workflows. +and code generation assistance for Asset Lifecycle Management workflows. """ from . import plot_comparison_tool diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/code_generation_assistant.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/code_generation_assistant.py similarity index 98% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/code_generation_assistant.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/code_generation_assistant.py index 6088df200..46677f366 100644 --- a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/code_generation_assistant.py +++ b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/code_generation_assistant.py @@ -71,7 +71,7 @@ async def _generate_and_execute_code( Generate only the code needed. Your response must contain ONLY executable Python code which will be DIRECTLY EXECUTED IN A SANDBOX. **UTILITIES AVAILABLE:** -A 'utils' folder contains a pre-built function for predictive maintenance tasks: +A 'utils' folder contains pre-built functions for Asset Lifecycle Management tasks (especially predictive maintenance): - utils.apply_piecewise_rul_transformation INPUTS: - file_path: Path to JSON file with time series data @@ -255,7 +255,8 @@ def is_code_incomplete(code): # All retries failed response = f"Code generation failed after {max_retries + 1} attempts." if error_info: - response += f" Last error: {error_info.strip().replace('\n', ' ')}" + error_text = error_info.strip().replace('\n', ' ') + response += f" Last error: {error_text}" response += " Consider using alternative approaches." logger.error(response) diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/plot_anomaly_tool.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/plot_anomaly_tool.py similarity index 100% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/plot_anomaly_tool.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/plot_anomaly_tool.py diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/plot_comparison_tool.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/plot_comparison_tool.py similarity index 100% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/plot_comparison_tool.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/plot_comparison_tool.py diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/plot_distribution_tool.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/plot_distribution_tool.py similarity index 100% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/plot_distribution_tool.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/plot_distribution_tool.py diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/plot_line_chart_tool.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/plot_line_chart_tool.py similarity index 100% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/plot_line_chart_tool.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/plot_line_chart_tool.py diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/plot_utils.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/plot_utils.py similarity index 100% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/plotting/plot_utils.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/plotting/plot_utils.py diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/predictors/__init__.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/predictors/__init__.py similarity index 87% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/predictors/__init__.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/predictors/__init__.py index ca0977648..3294670f2 100644 --- a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/predictors/__init__.py +++ b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/predictors/__init__.py @@ -14,10 +14,10 @@ # limitations under the License. """ -Predictors package for predictive maintenance agent. +Predictors package for Asset Lifecycle Management agent. This package contains components for prediction and anomaly detection -in predictive maintenance workflows. +in Asset Lifecycle Management workflows (Operation & Maintenance phase). """ from . import moment_anomaly_detection_tool diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/predictors/moment_anomaly_detection_tool.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/predictors/moment_anomaly_detection_tool.py similarity index 100% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/predictors/moment_anomaly_detection_tool.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/predictors/moment_anomaly_detection_tool.py diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/predictors/moment_predict_rul_tool.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/predictors/moment_predict_rul_tool.py similarity index 100% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/predictors/moment_predict_rul_tool.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/predictors/moment_predict_rul_tool.py diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/predictors/predict_rul_tool.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/predictors/predict_rul_tool.py similarity index 100% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/predictors/predict_rul_tool.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/predictors/predict_rul_tool.py diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/register.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/register.py similarity index 100% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/register.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/register.py diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/retrievers/__init__.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/retrievers/__init__.py similarity index 86% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/retrievers/__init__.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/retrievers/__init__.py index 92790c9d7..dbf4b8d78 100644 --- a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/retrievers/__init__.py +++ b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/retrievers/__init__.py @@ -14,10 +14,10 @@ # limitations under the License. """ -Retrievers package for predictive maintenance agent. +Retrievers package for Asset Lifecycle Management agent. This package contains components for data retrieval and SQL query generation -for predictive maintenance workflows. +for Asset Lifecycle Management workflows (currently focused on predictive maintenance). """ from .vanna_manager import VannaManager diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/retrievers/generate_sql_query_and_retrieve_tool.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/retrievers/generate_sql_query_and_retrieve_tool.py similarity index 100% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/retrievers/generate_sql_query_and_retrieve_tool.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/retrievers/generate_sql_query_and_retrieve_tool.py diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/retrievers/vanna_manager.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/retrievers/vanna_manager.py similarity index 100% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/retrievers/vanna_manager.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/retrievers/vanna_manager.py diff --git a/industries/predictive_maintenance_agent/src/predictive_maintenance_agent/retrievers/vanna_util.py b/industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/retrievers/vanna_util.py similarity index 100% rename from industries/predictive_maintenance_agent/src/predictive_maintenance_agent/retrievers/vanna_util.py rename to industries/asset_lifecycle_management_agent/src/asset_lifecycle_management_agent/retrievers/vanna_util.py diff --git a/industries/predictive_maintenance_agent/test_pdm_workflow.py b/industries/asset_lifecycle_management_agent/test_alm_workflow.py similarity index 98% rename from industries/predictive_maintenance_agent/test_pdm_workflow.py rename to industries/asset_lifecycle_management_agent/test_alm_workflow.py index bac1a99af..cebc2f8e3 100644 --- a/industries/predictive_maintenance_agent/test_pdm_workflow.py +++ b/industries/asset_lifecycle_management_agent/test_alm_workflow.py @@ -21,7 +21,7 @@ from pathlib import Path import pytest -from predictive_maintenance_agent import register +from asset_lifecycle_management_agent import register from nat.runtime.loader import load_workflow diff --git a/industries/predictive_maintenance_agent/vanna_training_data.yaml b/industries/asset_lifecycle_management_agent/vanna_training_data.yaml similarity index 99% rename from industries/predictive_maintenance_agent/vanna_training_data.yaml rename to industries/asset_lifecycle_management_agent/vanna_training_data.yaml index 16c9479b7..95f6ebcd5 100644 --- a/industries/predictive_maintenance_agent/vanna_training_data.yaml +++ b/industries/asset_lifecycle_management_agent/vanna_training_data.yaml @@ -21,7 +21,7 @@ training_config: # Basic metadata about this training configuration - description: "Training data for NASA Turbofan Engine predictive maintenance SQL generation" + description: "Training data for NASA Turbofan Engine Asset Lifecycle Management (predictive maintenance) SQL generation" version: "1.0" # You should update these fields to describe your specific domain and use case