Metadata-Version: 2.1
Name: PMAgent
Version: 0.2.10
Summary: A PMAgent is an Expert Technical Professional with comprehensive knowledge across multiple domains including Full Stack Development, Data Science, Data Analysis, DevOps, and Machine Learning.
Home-page: https://github.com/JKL404/PMAgent
Author: Laxman Khatri
Author-email: khatrilaxman1997@gmail.com
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Healthcare Industry
Classifier: Development Status :: 4 - Beta
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Natural Language :: English
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: openai (==1.50.2)
Requires-Dist: groq (==0.6.0)
Requires-Dist: mistune (==3.0.2)
Requires-Dist: requests

# PMAgent

PMAgent is a Python package that helps developers, data scientists, and DevOps professionals to refactor and modify code using OpenAI/Groq. It reads code from files, interacts with an LLM to generate modifications, and saves changes back to the files. It can create new projects in any programming language with just a prompt.

## Installation

```bash
pip install PMAgent
```

## Environment Setup

```bash
# API Keys (at least one is required)
export OPENAI_API_KEY="sk-..."
export GROQ_API_KEY="gsk_..."

# Optional Configuration
export MODEL=""        # Specific model to use
export TEMPERATURE=""  # Temperature for response generation
export TOP_P=""       # Top-p sampling parameter
export MAX_TOKENS=""  # Maximum tokens in response
```

## Basic Usage

```bash
pmagent <UserPrompt> <directorytoexecute>
```

### Parameters:
- `UserPrompt`: Your instruction or request in quotes
- `directorytoexecute`: Path to the target directory (optional)
- `--llm-type` or `-l`: Choose LLM provider (`openai` or `groq`) (optional)

## Examples

### 1. Web Development Projects

```bash
# Create a new React e-commerce project
pmagent "Create a React e-commerce website with product listing, cart functionality, and checkout process" ecommerce-app

# Build a portfolio website
pmagent "Create a modern portfolio website with dark/light mode, project showcase, and contact form" portfolio-site

# Create a dashboard
pmagent "Build a responsive admin dashboard with charts, tables, and user management" admin-dashboard
```

### 2. Data Science & Analysis

```bash
# Create data analysis notebook
pmagent "Create a comprehensive EDA notebook for customer churn analysis including visualizations" churn-analysis

# Build ML pipeline
pmagent "Create a machine learning pipeline for house price prediction with data preprocessing and model evaluation" ml-pipeline

# Time series analysis
pmagent "Set up a time series analysis project for stock price prediction with LSTM" stock-analysis
```

### 3. Backend Development

```bash
# Create API server
pmagent "Create a FastAPI backend with user authentication, database models, and CRUD operations" backend-api

# Setup microservices
pmagent "Set up a microservices architecture with user service and product service using Docker" microservices

# Create CLI tool
pmagent "Create a Python CLI tool for automated file organization with logging" file-organizer
```

### 4. DevOps & Infrastructure

```bash
# Setup CI/CD pipeline
pmagent "Create GitHub Actions workflow for testing and deploying a Python package" cicd-setup

# Infrastructure as Code
pmagent "Create Terraform configuration for AWS ECS cluster with auto-scaling" terraform-aws

# Docker setup
pmagent "Create Docker configuration for a MERN stack application" docker-config
```

### 5. Code Refactoring

```bash
# Refactor existing code
pmagent "Refactor the Python code in utils/ to follow SOLID principles" utils

# Add tests
pmagent "Add unit tests for all functions in the services/ directory" services

# Optimize performance
pmagent "Optimize the database queries in the repositories/ folder" repositories
```

## Python API Usage

```python
import os
from pmagent import LLMInteractionManager

def main():
    # Initialize with configuration
    llm_interaction_manager = LLMInteractionManager(
        openai_api_key=os.getenv("OPENAI_API_KEY"), 
        groq_api_key=os.getenv("GROQ_API_KEY"),
        config={   # OPTIONAL 
            "model": "llama-3.1-70b-versatile",
            "temperature": 0.5,
            "top_p": 0.9,
            "max_tokens": 4000,
        },
        llm_type='groq',  # OPTIONAL 
    )

    # Example: Create a new project
    llm_interaction_manager.interact_with_llm(
        user_message="Create a FastAPI backend with SQLAlchemy ORM and JWT authentication",
        path="backend-project"
    )

    # Example: Refactor existing code
    llm_interaction_manager.interact_with_llm(
        user_message="Refactor this code to use dependency injection and add proper error handling",
        path="src/services"
    )

if __name__ == "__main__":
    main()
```

## Best Practices

1. **Clear Instructions**: Be specific in your prompts about what you want to create or modify
2. **Directory Structure**: Create the target directory before running the command if needed
3. **Version Control**: Always commit your changes before using PMAgent for code modifications
4. **API Keys**: Use environment variables for API keys instead of hardcoding them
5. **Model Selection**: Choose the appropriate model based on your task complexity

## Support

For issues, feature requests, or contributions, please visit our GitHub repository.

