ContentAgent / app.py
yetessam's picture
Update app.py
1be066d verified
raw
history blame
2.34 kB
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()