Spaces:
Sleeping
Sleeping
| """Skill Agent Orchestrator""" | |
| from typing import Dict, Any, List, Optional | |
| from src.services.groq_service import generate_response, DEFAULT_MODEL | |
| 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: | |
| # Use DEFAULT_MODEL directly | |
| result = await generate_response(messages, model=DEFAULT_MODEL) | |
| return {"skill_type": skill_type, "result": result, "status": "success"} | |
| except Exception as e: | |
| logger.error(f"Skill execution failed: {e}") | |
| raise | |