File size: 1,477 Bytes
14aad8e 8b37747 14aad8e 8b37747 14aad8e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | """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
|