Spaces:
Sleeping
Sleeping
File size: 2,390 Bytes
9b5b26a c19d193 6aae614 8fe992b 9b5b26a f2c74f5 9b5b26a f2c74f5 9b5b26a f2c74f5 8c01ffb 6aae614 ae7a494 e121372 bf6d34c 012c0e2 fe328e0 13d500a 8c01ffb 861422e 9b5b26a 8c01ffb 8fe992b f2c74f5 8c01ffb 861422e 8fe992b 9b5b26a 8c01ffb |
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 |
from smolagents import CodeAgent,DuckDuckGoSearchTool, HfApiModel,load_tool,tool
import datetime
import requests
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
@tool
def recommend_pet(personality: str) -> str:
"""A tool that recommends a pet based on your personality description.
Args:
personality: A description of your personality traits.
Returns:
A string with a pet recommendation.
"""
# Normalize input to lowercase for matching.
personality_lower = personality.lower()
# Map personality traits to pet suggestions.
traits_to_pets = {
"shy": "cat",
"curious": "cat",
"energetic": "dog",
"active": "dog",
"calm": "fish",
"peaceful": "fish",
"adventurous": "ferret",
"creative": "parrot",
"imaginative": "parrot"
}
# Count matching traits for each pet.
scores = {}
for trait, pet in traits_to_pets.items():
if trait in personality_lower:
scores[pet] = scores.get(pet, 0) + 1
# If any traits matched, select the pet with the highest score.
# Otherwise, default to "cat".
if scores:
recommended_pet = max(scores, key=scores.get)
else:
recommended_pet = "cat"
return f"Based on your personality ('{personality}'), I recommend a {recommended_pet} as your companion!"
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
model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud',
custom_role_conversions=None,
)
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
agent = CodeAgent(
model=model,
tools=[final_answer,recommend_pet], ## 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() |