import sys import time import yaml import os import pytz # Had to give it permission in Code agent from ui.contentagentui import ContentAgentUI from smolagents import CodeAgent, InferenceClientModel from checks.status_check import resolve_endpoint, is_endpoint_healthy from tools.tools import load_tools from prompts.prompts import load_prompts def initialize_agent(endpoint_uri: str): combined_tools = load_tools() ## from the tools folder (don't remove final answer) """Initialize and configure the CodeAgent""" model = InferenceClientModel ( max_tokens=2096, temperature=0.5, model_id=endpoint_uri, custom_role_conversions=None, ) agent = CodeAgent( model=model, tools=combined_tools, name="content_agent", description="Evaluates whether text is polite or impolite.", verbosity_level=5, # max log level for built-in logs max_steps=8, planning_interval=1, # force a plan every step (shows plan/update) max_print_outputs_length=None, additional_authorized_imports=["pytz"], stream_outputs=True , prompt_templates=load_prompts(), ) return agent def main(): uri = resolve_endpoint() if not uri: print("❌ Endpoint not ready: no URI configured. Ensure that the HF_ENDPOINT_URI secret has been defined in the current Space.") sys.exit(1) # exit with non-zero status for clarity ok, msg = is_endpoint_healthy(uri) if not ok: print(f"Endpoint not ready: {msg}") print(f"uri: {uri}") # We want to create a basic GUI calling the ContentAgentUI.. # The default flow should be to show the "Wake Endpoint" button # If the end point is ready, don't show it. agent_type = 'deepseek-ai/DeepSeek-R1-Distill-Qwen-32B' agent_type = 'https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct' compute = "GCP: GPU · Nvidia L4 · 4x GPUs · 96 GB" ui = ContentAgentUI( endpoint_uri=uri, is_healthy=ok, health_message=msg, agent_initializer=initialize_agent, agent_type = agent_type, compute = compute ) ui.launch() if __name__ == "__main__": main()