https://github.com/jkl404/pmagent
PMAgent is a Python package that helps developers, data scientist, devops 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 project with any programming languages.
https://github.com/jkl404/pmagent
Last synced: 6 months ago
JSON representation
PMAgent is a Python package that helps developers, data scientist, devops 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 project with any programming languages.
- Host: GitHub
- URL: https://github.com/jkl404/pmagent
- Owner: JKL404
- License: other
- Created: 2024-10-23T04:25:26.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-10-23T10:07:06.000Z (12 months ago)
- Last Synced: 2025-03-25T11:16:55.609Z (6 months ago)
- Language: Python
- Size: 49.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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
```### 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 LLMInteractionManagerdef 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.