amkyawdev-coder-backend / src /api /agents /skill /orchestrator.py
amkyawdev's picture
HARDFIX: Force llama-3.1-8b-instant model everywhere - 70B deprecated
8b37747 verified
Raw
History Blame Contribute Delete
1.48 kB
"""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