File size: 3,831 Bytes
608c807 9b5b26a c19d193 6aae614 8fd5ca8 9b5b26a 8fd5ca8 9b5b26a 2d84b2a 9b5b26a 2d84b2a 9b5b26a 2d84b2a 9b5b26a 608c807 9b5b26a 2d84b2a 9b5b26a 2d84b2a 9b5b26a 2d84b2a 8c01ffb 6aae614 ae7a494 8fd5ca8 ae7a494 608c807 ae7a494 e121372 608c807 13d500a 8c01ffb 9b5b26a 8c01ffb 608c807 861422e 608c807 8c01ffb 8fe992b 608c807 2d84b2a 8fd5ca8 608c807 8c01ffb 608c807 8fe992b 9b5b26a 608c807 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel, load_tool, tool
import datetime
import requests
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
from tools.visit_webpage import VisitWebpageTool
from tools.web_search import DuckDuckGoSearchTool
from Gradio_UI import GradioUI
@tool
def get_color_palette_based_on_emotion(emotion: str) -> str:
"""A tool that creates the color palette of a given emotion.
Args:
emotion: the emotion to create the color palette of.
"""
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id="Qwen/Qwen2.5-Coder-32B-Instruct",
custom_role_conversions=None,
)
messages = [
{
"role": "system",
"content": (
"ROLE: you are a cute color palette generator. "
"TASK: take the emotion and create a color palette which will complement the emotion. Use only pastel colors. "
"OUTPUT: a list of 6 colors in hex format. "
"CONSTRAINTS: Do not add any words or explanations. Just return the list of colors."
),
},
{
"role": "user",
"content": emotion,
},
]
response = model(messages, stop_sequences=["END"])
return response.content
@tool
def get_postcard_prompt_based_on_color_palette_and_greeting(
color_palette: str, greeting: str
) -> str:
"""A tool that creates the image prompt for post card based on the color palette and greeting.
Args:
color_palette: 6 colors in hex format to create the image prompt of.
greeting: the greeting to create the image prompt of.
"""
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id="Qwen/Qwen2.5-Coder-32B-Instruct",
custom_role_conversions=None,
)
messages = [
{
"role": "system",
"content": (
"ROLE: you are a cute postcard image prompt generator. "
"TASK: take the color palette and greeting and create a postcard image prompt which simbolses the greeting. "
"Use simple vector shapes, and pastel colors from the color palette. "
"OUTPUT: a postcard image prompt. "
"CONSTRAINTS: Use only the colors from the color palette. Include the greeting into the image prompt so it would be rendered as a text. "
),
},
{
"role": "user",
"content": f"Color palette: {color_palette}, Greeting: {greeting}",
},
]
response = model(messages, stop_sequences=["END"])
return response.content
final_answer = FinalAnswerTool()
# If the agent does not answer, the model is overloaded, please use another model or the following Hugging Face Endpoint that also contains qwen2.5 coder:
# model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud'
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id="Qwen/Qwen2.5-Coder-32B-Instruct", # it is possible that this model may be overloaded
custom_role_conversions=None,
)
# Import tool from Hub
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
with open("prompts.yaml", "r") as stream:
prompt_templates = yaml.safe_load(stream)
agent = CodeAgent(
model=model,
tools=[
final_answer,
get_color_palette_based_on_emotion,
get_postcard_prompt_based_on_color_palette_and_greeting,
image_generation_tool,
], ## add your tools here (don't remove final answer)
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates,
)
GradioUI(agent).launch()
|