Download core/agent_runtime.py from autonomous-media-system/ams-core-api: direct link, hf CLI and curl.
- Browser
- Download file 3.5 kB
-
https://huggingface.co/spaces/autonomous-media-system/ams-core-api/resolve/main/core/agent_runtime.py
- Command line
-
hf download hf://spaces/autonomous-media-system/ams-core-api/core/agent_runtime.py
-
curl -L -o agent_runtime.py https://huggingface.co/spaces/autonomous-media-system/ams-core-api/resolve/main/core/agent_runtime.py
3.5 kB
| import logging | |
| from datetime import datetime | |
| from core.context import PipelineContext | |
| logger = logging.getLogger("ONYX") | |
| class AgentRuntime: | |
| def __init__( | |
| self, | |
| planner, | |
| strategy_engine, | |
| message_parser, | |
| trend_engine, | |
| executor, | |
| memory, | |
| knowledge_engine | |
| ): | |
| self.planner = planner | |
| self.strategy_engine = strategy_engine | |
| self.message_parser = message_parser | |
| self.trend_engine = trend_engine | |
| self.executor = executor | |
| self.memory = memory | |
| self.knowledge_engine = knowledge_engine | |
| # ========================= | |
| # PROCESS REQUEST | |
| # ========================= | |
| def process(self, message): | |
| try: | |
| clean_message = message.strip() | |
| if not clean_message: | |
| return {"script": None, "image": None} | |
| # ========================= | |
| # PLANNER | |
| # ========================= | |
| plan = self.planner.plan(clean_message) | |
| logger.info(f"Runtime plan: {plan}") | |
| # ========================= | |
| # STRATEGY | |
| # ========================= | |
| try: | |
| strategy = self.strategy_engine.build_strategy(clean_message) | |
| logger.info(f"Runtime strategy: {strategy}") | |
| except Exception: | |
| strategy = None | |
| # ========================= | |
| # THEME | |
| # ========================= | |
| theme = clean_message | |
| # ========================= | |
| # KNOWLEDGE SEARCH | |
| # ========================= | |
| try: | |
| previous_knowledge = self.knowledge_engine.search(theme) | |
| except Exception: | |
| previous_knowledge = [] | |
| # ========================= | |
| # TREND (désactivé pour les images) | |
| # ========================= | |
| # On garde le thème original pour éviter | |
| # des phrases comme : | |
| # "Ce que la psychologie révèle sur ..." | |
| trend_theme = theme | |
| # ========================= | |
| # CONTEXT | |
| # ========================= | |
| context = PipelineContext(trend_theme) | |
| context.metadata["knowledge"] = previous_knowledge | |
| # ========================= | |
| # EXECUTION | |
| # ========================= | |
| result = self.executor.execute(plan, context) | |
| if not result: | |
| return {"script": None, "image": None} | |
| script = result.get("script") | |
| image = result.get("image") | |
| # ========================= | |
| # SAVE MEMORY | |
| # ========================= | |
| if script: | |
| try: | |
| self.memory.add_exchange(clean_message, script) | |
| self.knowledge_engine.store({ | |
| "timestamp": datetime.utcnow().isoformat(), | |
| "theme": theme, | |
| "request": clean_message, | |
| "result": script | |
| }) | |
| except Exception: | |
| pass | |
| return { | |
| "script": script, | |
| "image": image | |
| } | |
| except Exception as e: | |
| logger.error(f"Runtime error: {e}") | |
| return { | |
| "script": None, | |
| "image": None | |
| } |