AiWicked's picture
Update app.py
e571d7e verified
from smolagents import CodeAgent,DuckDuckGoSearchTool, HfApiModel,load_tool,tool
import datetime
import requests
import pytz
import yaml
import random
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
# Below is an example of a tool that does nothing. Amaze us with your creativity !
@tool
def belief_transformer(negative_belief: str, intensity_level: int) -> str:
"""A tool that transforms negative beliefs into positive ones and generates motivational quotes
Args:
negative_belief: The negative belief that needs to be transformed
intensity_level: Level of emotional intensity (1-5) to adjust response tone
Returns:
str: A formatted string containing the transformed belief and a motivational quote
"""
import re
from typing import Dict, List
# Define transformation patterns
belief_patterns: Dict[str, str] = {
r"я не могу": "я учусь и развиваюсь, чтобы",
r"я недостаточно": "я становлюсь более",
r"я никогда не": "я на пути к тому, чтобы",
r"это слишком сложно": "это вызов, который помогает мне расти",
r"я боюсь": "я смело встречаю",
r"я плохой": "я совершенствуюсь в",
r"у меня не получится": "я делаю шаги к успеху в",
}
# Motivational quotes based on intensity
quotes: Dict[int, List[str]] = {
1: [
"Каждый шаг - это движение вперёд.",
"Прогресс начинается с принятия себя.",
"Малые изменения приводят к большим результатам."
],
2: [
"Ты сильнее, чем думаешь.",
"В тебе есть всё необходимое для успеха.",
"Каждая трудность - это возможность для роста."
],
3: [
"Твоё стремление к улучшению уже делает тебя особенным!",
"Вера в себя - твой главный союзник.",
"Ты создаёшь свою реальность своими мыслями."
],
4: [
"Твой потенциал безграничен! Действуй!",
"Ты способен на невероятные достижения!",
"Каждый день - новая возможность стать лучше!"
],
5: [
"ТВОЯ СИЛА ДУХА НЕПОБЕДИМА!",
"ТЫ СОЗДАН ДЛЯ ВЕЛИКИХ СВЕРШЕНИЙ!",
"ТВОЁ ВРЕМЯ ПРИШЛО! ДЕЙСТВУЙ СЕЙЧАС!"
]
}
def transform_belief(text: str) -> str:
transformed = text.lower()
for pattern, replacement in belief_patterns.items():
transformed = re.sub(pattern, replacement, transformed)
return transformed.capitalize()
def get_quote(level: int) -> str:
import random
level = max(1, min(5, level)) # Ensure level is between 1 and 5
return random.choice(quotes[level])
# Transform the belief and get a quote
positive_belief = transform_belief(negative_belief)
motivation = get_quote(intensity_level)
# Format the response
response = f"""Трансформация убеждения:
Было: {negative_belief}
Стало: {positive_belief}
Мотивация: {motivation}"""
return response
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], ## 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()