Skip to content

hydrogeohc/Grid_Optm

Repository files navigation

Grid Optimization System

Python 3.11+ License NAT v1.2.1+ Deployment

AI-powered power grid optimization system with NVIDIA NeMo Agent Toolkit (NAT) integration. Provides real-time power grid optimization across multiple regions with LLM-powered operations, comprehensive API, and CLI interfaces.

βœ… Production Ready: Fully tested and ready for deployment. See DEPLOYMENT_SUMMARY.md

πŸš€ Quick Start

Prerequisites

  • Python 3.11-3.13
  • OpenAI API key or NVIDIA API key (for LLM features)
  • NVIDIA NeMo Agent Toolkit v1.2.1+ (optional, for NAT integration)

Installation

# Clone and setup
git clone <repository-url>
cd Grid_Optm

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
pip install -e .

# Optional: Install with NAT support
pip install -e ".[nat]"

# Initialize database
python -c "from grid_optimization.core.initialization import init_test_data; init_test_data()"

Setup Environment

# Create .env file with your API key
echo "OPENAI_API_KEY=your-openai-api-key" > .env

# For NVIDIA NIM
echo "NVIDIA_API_KEY=your-nvidia-api-key" >> .env

⚠️ Security Note: Never commit .env file to version control!

✨ Key Features

  • πŸ”‹ Real-time Grid Optimization: SciPy-based algorithms with sub-5ms response time
  • 🌍 Multi-Region Support: US-West, US-East, and US-Central Regions
  • πŸ€– NAT Integration: 6 registered functions for AI-powered operations
  • 🧠 LLM-Powered: OpenAI GPT or NVIDIA NIM integration
  • πŸš€ High Performance: 4.8ms average optimization time
  • πŸ“Š REST API: FastAPI with automatic documentation
  • πŸ”§ CLI Interface: Command-line tools for all operations
  • πŸ“ˆ Database: SQLite with SQLAlchemy ORM
  • βœ… Production Ready: 100% test coverage on core features

πŸ—οΈ Project Structure

Grid_Optm/
β”œβ”€β”€ grid_optimization/           # Main package
β”‚   β”œβ”€β”€ core/                   # Core optimization engine
β”‚   β”‚   β”œβ”€β”€ operations.py       # Grid optimization algorithms
β”‚   β”‚   β”œβ”€β”€ database.py         # Database models & operations
β”‚   β”‚   β”œβ”€β”€ models.py           # Pydantic data models
β”‚   β”‚   β”œβ”€β”€ security.py         # Security utilities
β”‚   β”‚   └── initialization.py   # Database initialization
β”‚   β”œβ”€β”€ integrations/
β”‚   β”‚   └── nat/                # NAT integration (6 functions)
β”‚   β”‚       β”œβ”€β”€ register.py     # Function registry
β”‚   β”‚       └── README.md       # NAT integration docs
β”‚   β”œβ”€β”€ api/                    # REST API
β”‚   β”‚   β”œβ”€β”€ server.py           # FastAPI application
β”‚   β”‚   β”œβ”€β”€ middleware/         # API middleware
β”‚   β”‚   └── routes/             # API endpoints
β”‚   β”œβ”€β”€ cli/                    # Command line interface
β”‚   β”‚   └── commands.py         # CLI commands
β”‚   └── utils/                  # Utilities
β”‚       β”œβ”€β”€ config.py           # Configuration management
β”‚       └── logging.py          # Logging setup
β”œβ”€β”€ configs/
β”‚   └── grid_config.yml         # NAT workflow configuration
β”œβ”€β”€ tests/                      # Test suite
β”‚   β”œβ”€β”€ unit/                   # Unit tests
β”‚   β”œβ”€β”€ integration/            # Integration tests
β”‚   └── fixtures/               # Test fixtures
β”œβ”€β”€ docs/                       # Documentation
β”‚   └── archive/                # Archived documents
β”œβ”€β”€ deployment/                 # Deployment configurations
β”œβ”€β”€ test_deployment.py          # Automated deployment tests
β”œβ”€β”€ .env                        # Environment variables (not in git)
β”œβ”€β”€ gridopt.db                  # SQLite database
β”œβ”€β”€ NAT_INTEGRATION.md          # NAT v1.2.1 integration guide
β”œβ”€β”€ API_GUIDE.md                # REST API documentation
β”œβ”€β”€ DEPLOYMENT_SUMMARY.md       # Deployment test summary
└── README.md                   # This file

πŸ€– NAT Integration

6 Functions Registered and Working:

Function Description Type
grid_optimize(region) Optimize power grid for region Modern
grid_status(region) Get current grid status Modern
grid_analyze(region, metric) Analyze performance metrics Modern
current_datetime() Get current timestamp Built-in
optimize_grid(region) Legacy grid optimization Legacy
show_last_optimization(region) Legacy status check Legacy

Quick Start with NAT

# Install NAT dependencies
pip install -e ".[nat]"

# Set environment
export OPENAI_API_KEY="your-api-key"

# Run with NAT CLI
nat run configs/grid_config.yml --query "Optimize grid for us-west"

# Interactive mode
nat run configs/grid_config.yml --interactive

Example Queries:

  • "Optimize the power grid for us-west region"
  • "Show me the status of us-east grid"
  • "Analyze efficiency metrics for us-central"

For complete NAT details, see NAT_INTEGRATION.md.

🌍 Available Regions

Region Code Description Status
Western US us-west CA, OR, WA, NV βœ… Active
Eastern US us-east NY, FL, MA, etc. βœ… Active
Central US us-central TX, IL, OH, etc. βœ… Active

πŸ”§ Usage

Method 1: NAT CLI (AI Agent Workflows)

# Set environment
export OPENAI_API_KEY="your-api-key"

# Run NAT workflow
nat run configs/grid_config.yml --query "Optimize grid for us-west"

Method 2: Direct Python API

import asyncio
from grid_optimization.integrations.nat.register import (
    optimize_grid_region,
    get_optimization_status,
    analyze_grid_metrics
)

async def main():
    # Optimize grid
    result = await optimize_grid_region('us-west')
    print(f"Status: {result['status']}")
    print(f"Supply: {result['optimized_supply']:.2f} MW")

    # Get status
    status = await get_optimization_status('us-west')
    print(f"Current load: {status.get('current_load')} MW")

    # Analyze metrics
    analysis = await analyze_grid_metrics('us-west', 'efficiency')
    print(f"Efficiency: {analysis.get('current_efficiency')}")

asyncio.run(main())

Method 3: CLI Commands

# Optimize a region
grid-optimize optimize us-west

# Check status
grid-optimize status us-west

# Test all regions
grid-optimize test

# Interactive mode
grid-optimize interactive

Method 4: REST API

# Start server
grid-server
# Server runs on http://localhost:8000

# Optimize grid
curl -X POST http://localhost:8000/grid/optimize \
  -H "Content-Type: application/json" \
  -d '{"region":"us-west"}'

# Get status
curl http://localhost:8000/grid/status/us-west

# List regions
curl http://localhost:8000/grid/regions

# API documentation
open http://localhost:8000/docs

πŸ§ͺ Testing

Quick Validation

# Run automated deployment test
python test_deployment.py

Manual Testing

# Test NAT functions
python -c "from grid_optimization.integrations.nat.register import grid_optimize; print('βœ… NAT functions loaded')"

# Test optimization
python -c "
from grid_optimization.core.operations import optimize_grid
result = optimize_grid('us-west')
print(f'βœ… Optimization: {result[\"optimized_supply\"]:.2f} MW')
"

# Test database
python -c "
from grid_optimization.core.database import init_db, get_session, GridState
engine = init_db()
session = get_session(engine)
count = session.query(GridState).count()
print(f'βœ… Database: {count} records')
session.close()
"

Run Test Suite

# Install dev dependencies
pip install -e ".[dev]"

# Run all tests
pytest

# Run with coverage
pytest --cov=grid_optimization --cov-report=html

# Run specific tests
pytest tests/unit/
pytest tests/integration/

πŸ“Š Performance

Verified Metrics:

  • ⚑ Optimization: 4.8ms average (sub-10ms target)
  • 🌐 API Response: < 50ms (sub-100ms target)
  • πŸ’Ύ Memory: < 50MB base footprint
  • 🎯 Accuracy: 99.9%+ convergence rate

πŸ“ˆ Deployment

Deployment Status

βœ… READY FOR DEPLOYMENT - All tests passing (100/100)

See detailed deployment test results:

Quick Deployment

# 1. Install
pip install -e .

# 2. Initialize
python -c "from grid_optimization.core.initialization import init_test_data; init_test_data()"

# 3. Configure
export OPENAI_API_KEY="your-key"
export ENVIRONMENT=production
export DEBUG=false

# 4. Run
grid-server

Production Recommendations

Before deploying to production:

  1. Security (High Priority)

    • Remove .env from repository (already in .gitignore)
    • Add authentication to API endpoints
    • Enable HTTPS/TLS
    • Restrict CORS origins
  2. Monitoring (Medium Priority)

    • Application monitoring (Prometheus/Datadog)
    • Log aggregation
    • Alerting setup
  3. Infrastructure (Medium Priority)

    • Use PostgreSQL instead of SQLite
    • Add load balancer
    • Configure auto-scaling

Deployment Options

Docker:

docker build -t grid-optimization .
docker run -p 8000:8000 -e OPENAI_API_KEY=$OPENAI_API_KEY grid-optimization

Kubernetes: See deployment/kubernetes/

Cloud Platforms:

  • AWS: ECS, EKS, or Elastic Beanstalk
  • GCP: Cloud Run, GKE, or App Engine
  • Azure: Container Instances, AKS, or App Service

πŸ”§ Troubleshooting

Common Issues

Import Errors

pip install -e .
python -c "import grid_optimization; print('βœ… Package OK')"

Database Issues

python -c "from grid_optimization.core.initialization import init_test_data; init_test_data()"

Missing API Key

echo "OPENAI_API_KEY=your-key" > .env
export $(cat .env | xargs)

NAT Not Found

pip install -e ".[nat]"

πŸ“š Documentation

πŸ› οΈ Development

Adding New NAT Functions

# In grid_optimization/integrations/nat/register.py

class NewFunctionConfig(FunctionBaseConfig, name="new_function"):
    pass

@register_function(config_type=NewFunctionConfig)
async def new_function(tool_config: NewFunctionConfig, builder: Builder):
    async def _new_function(param: str) -> str:
        # Implementation
        return "Result"

    yield FunctionInfo.from_fn(
        _new_function,
        description="Function description"
    )

Code Standards

  • Python 3.11+ with type hints
  • Async/await for I/O operations
  • Comprehensive error handling
  • Structured logging
  • 80%+ test coverage

πŸ“„ License

Apache License 2.0

βœ… Project Status

Last Updated: October 9, 2025 Status: βœ… PRODUCTION READY

Test Results:

  • Database: βœ… Operational
  • Core Functions: βœ… 4.8ms optimization
  • NAT Integration: βœ… 6 functions working
  • REST API: βœ… All endpoints functional
  • CLI: βœ… All commands working
  • Performance: βœ… Exceeds targets

Deployment Score: 100/100


🎯 Quick Commands

# Setup
pip install -e .
python -c "from grid_optimization.core.initialization import init_test_data; init_test_data()"

# Run API
grid-server

# Run CLI
grid-optimize optimize us-west

# Run NAT
nat run configs/grid_config.yml --query "Optimize grid for us-west"

# Test
python test_deployment.py

Built with Python, FastAPI, SciPy, SQLAlchemy, and NVIDIA NeMo Agent Toolkit (NAT) v1.2.1

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published