aubm / backend /agents /openai_agent.py
cesjavi's picture
Update Hugging Face Space
0cb1aa7
from .base import BaseAgent
from typing import Dict, Any, List
import openai
from services.config import settings, config_service
from tools.registry import tool_registry
class OpenAIAgent(BaseAgent):
def __init__(self, name: str, role: str, model: str = "gpt-4o", system_prompt: str = None):
super().__init__(name, role, model, system_prompt)
# Load dynamic config
self.provider_config = config_service.get_provider_config("openai")
api_key = self.provider_config.get("api_key") or settings.OPENAI_API_KEY
self.client = openai.AsyncOpenAI(api_key=api_key)
self.temperature = self.provider_config.get("temperature", 0.7)
self.max_tokens = self.provider_config.get("max_tokens", 4096)
async def run(self, task_description: str, context: List[Dict[str, Any]], use_tools: bool = False, extra_context: str = "") -> Dict[str, Any]:
return await self._run_openai_compatible(
provider="openai",
create_fn=self.client.chat.completions.create,
task_description=task_description,
context=context,
use_tools=use_tools,
extra_context=extra_context,
response_format={"type": "json_object"}
)