CoolFace
Apppublic

whiran/First_agent_template

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
app.py87 linesDownload Raw Back to root
1from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool2import datetime3import requests4import pytz5import yaml6import torch7from diffusers import StableDiffusionPipeline8from pathlib import Path9from typing import Optional10from tools.final_answer import FinalAnswerTool11from Gradio_UI import GradioUI12 13@tool14def generate_image_tool(15    prompt: str,16    model_name: str = "stabilityai/stable-diffusion-2-1",17    num_inference_steps: int = 50,18    output_path: str = "generated_image.png"19) -> str:20    """A tool for generating images from text prompts using Stable Diffusion.21    Args:22        prompt: Text description of the image (must be SFW)23        model_name: AI model to use (default: stabilityai/stable-diffusion-2-1)24        num_inference_steps: Quality steps (20-100)25        output_path: Where to save the image26    """27    # Safety check28    unsafe_keywords = ["nude", "porn", "explicit", "adult", "nsfw"]29    if any(kw in prompt.lower() for kw in unsafe_keywords):30        return "Error: Content policy violation detected in prompt"31 32    try:33        pipe = StableDiffusionPipeline.from_pretrained(34            model_name,35            torch_dtype=torch.float1636        ).to("cuda")37        38        image = pipe(39            prompt=prompt,40            num_inference_steps=num_inference_steps41        ).images[0]42        43        Path(output_path).parent.mkdir(parents=True, exist_ok=True)44        image.save(output_path)45        return f"Image generated successfully at: {output_path}"46        47    except Exception as e:48        return f"Image generation failed: {str(e)}"49 50@tool51def get_current_time_in_timezone(timezone: str) -> str:52    """A tool that fetches the current local time in a specified timezone.53    Args:54        timezone: A valid timezone (e.g., 'America/New_York')55    """56    try:57        tz = pytz.timezone(timezone)58        local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")59        return f"Current time in {timezone}: {local_time}"60    except Exception as e:61        return f"Error: {str(e)}"62 63final_answer = FinalAnswerTool()64 65model = HfApiModel(66    max_tokens=2096,67    temperature=0.5,68    model_id='Qwen/Qwen2.5-Coder-32B-Instruct',69    custom_role_conversions=None,70)71 72with open("prompts.yaml", 'r') as stream:73    prompt_templates = yaml.safe_load(stream)74    75agent = CodeAgent(76    model=model,77    tools=[generate_image_tool, get_current_time_in_timezone, final_answer],78    max_steps=6,79    verbosity_level=1,80    prompt_templates=prompt_templates,81    grammar=None,82    planning_interval=None,83    name="Creative Assistant",84    description="AI assistant capable of generating images and providing time information"85)86 87GradioUI(agent).launch()