| """Skill Agent Orchestrator""" |
| from typing import Dict, Any, List, Optional |
| from src.services.groq_service import generate_response |
| from src.api.core.logger import logger |
|
|
|
|
| class SkillOrchestrator: |
| def __init__(self): |
| self.available_skills = { |
| "code_review": "Review code for bugs, security issues, and best practices", |
| "bug_detection": "Find and analyze bugs in code", |
| "documentation": "Generate documentation for code", |
| "refactoring": "Suggest code improvements and refactoring", |
| } |
| |
| async def execute( |
| self, |
| prompt: str, |
| skill_type: str, |
| context: Optional[Dict[str, Any]] = None, |
| tools: Optional[List[str]] = None, |
| ) -> Dict[str, Any]: |
| if skill_type not in self.available_skills: |
| raise ValueError(f"Unknown skill type: {skill_type}") |
| |
| messages = [ |
| { |
| "role": "system", |
| "content": f"You are a skilled {skill_type} expert. {self.available_skills[skill_type]}" |
| }, |
| {"role": "user", "content": prompt} |
| ] |
| |
| try: |
| result = await generate_response(messages) |
| return {"skill_type": skill_type, "result": result, "status": "success"} |
| except Exception as e: |
| logger.error(f"Skill execution failed: {e}") |
| raise |
|
|