import os def load_prompt(name: str) -> str: """ Load a prompt file from the prompts directory. """ base_path = os.path.join(os.path.dirname(__file__), "prompts") file_path = os.path.join(base_path, f"{name}.txt") with open(file_path, "r", encoding="utf-8") as f: return f.read().strip() class MarketingAgent: """ Core AI agent responsible for generating marketing content. """ def __init__(self, model_client): # Store the model client (LLM) self.model = model_client # Load prompts self.system_prompt = load_prompt("system") self.campaign_template = load_prompt("campaign") self.audio_template = load_prompt("audio") def generate_text(self, briefing: str) -> str: """ Generate marketing text based on the campaign template. """ full_prompt = f"{self.campaign_template}\n\n{briefing}" response = self.model( system=self.system_prompt, prompt=full_prompt, ) return response def generate_campaign(self, briefing: str) -> str: """ High-level method: generate a full campaign. Currently returns only the text output. """ text_output = self.generate_text(briefing) return text_output def generate_image(self, text: str): """ Stub for future image generation. """ return "[Image generation not implemented yet]" def generate_audio(self, text: str): """ Stub for future audio generation. """ return "[Audio generation not implemented yet]" return "Audio generation tool not implemented yet."