Spaces:
Sleeping
Sleeping
File size: 2,772 Bytes
6b14cc6 c82482f 6b14cc6 c82482f 6b14cc6 c82482f 6b14cc6 c82482f 6b14cc6 c82482f 6b14cc6 c82482f 6b14cc6 c82482f 6b14cc6 c82482f 6b14cc6 c82482f 6b14cc6 c82482f 6b14cc6 c82482f 6b14cc6 c82482f 6b14cc6 9b5b26a 6b14cc6 c82482f 9b5b26a 6b14cc6 9b5b26a 6b14cc6 9b5b26a 6b14cc6 8c01ffb 6b14cc6 ae7a494 6b14cc6 ae7a494 6b14cc6 c82482f 6b14cc6 |
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 |
from smolagents import CodeAgent, tool
import datetime
import pytz
import yaml
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
# Define a simple tool that doesn't rely on any external libraries
@tool
def text_analyzer(text: str) -> str:
"""Analyzes text and returns statistics about it.
Args:
text: The text to analyze.
"""
try:
# Simple word count
words = text.split()
word_count = len(words)
# Character count
char_count = len(text)
# Unique words
unique_words = len(set(word.lower() for word in words))
# Average word length
avg_word_length = sum(len(word) for word in words) / max(1, word_count)
# Most common words (top 5)
word_freq = {}
for word in words:
word_lower = word.lower()
word_freq[word_lower] = word_freq.get(word_lower, 0) + 1
common_words = sorted(word_freq.items(), key=lambda x: x[1], reverse=True)[:5]
common_words_str = ", ".join(f"{word} ({count})" for word, count in common_words)
return f"""Text Analysis Results:
- Word count: {word_count}
- Character count: {char_count}
- Unique words: {unique_words}
- Average word length: {avg_word_length:.2f}
- Most common words: {common_words_str}
"""
except Exception as e:
return f"Error analyzing text: {str(e)}"
@tool
def get_current_time_in_timezone(timezone: str) -> str:
"""A tool that fetches the current local time in a specified timezone.
Args:
timezone: A string representing a valid timezone (e.g., 'America/New_York').
"""
try:
# Create timezone object
tz = pytz.timezone(timezone)
# Get current time in that timezone
local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
return f"The current local time in {timezone} is: {local_time}"
except Exception as e:
return f"Error fetching time for timezone '{timezone}': {str(e)}"
# Set up the agent with minimal tools
final_answer = FinalAnswerTool()
with open("prompts.yaml", 'r') as stream:
prompt_templates = yaml.safe_load(stream)
from smolagents import HfApiModel
model = HfApiModel(
max_tokens=2096,
temperature=0.5,
model_id='Qwen/Qwen2.5-Coder-32B-Instruct',
custom_role_conversions=None,
)
# Create agent with minimal tools
agent = CodeAgent(
model=model,
tools=[text_analyzer, get_current_time_in_timezone, final_answer],
max_steps=6,
verbosity_level=1,
grammar=None,
planning_interval=None,
name=None,
description=None,
prompt_templates=prompt_templates
)
# Launch the Gradio UI
GradioUI(agent).launch() |