File size: 2,523 Bytes
f74a591 6aae614 9b5b26a f74a591 9b5b26a f74a591 9b5b26a f74a591 9b5b26a f74a591 9b5b26a f74a591 8c01ffb f74a591 ae7a494 f74a591 e121372 f74a591 13d500a 8c01ffb f74a591 8c01ffb 8fe992b f74a591 8c01ffb 861422e 8fe992b 9b5b26a f74a591 |
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 |
from smolagents import CodeAgent, HfApiModel, load_tool, tool
from tools.final_answer import FinalAnswerTool
from Gradio_UI import GradioUI
import requests
import yaml
# ----------------------------
# 1️⃣ OUTIL : MÉTÉO À PARIS
# ----------------------------
@tool
def get_weather_paris() -> str:
"""Renvoie la météo actuelle à Paris (température + description)."""
try:
url = "https://api.open-meteo.com/v1/forecast?latitude=48.8566&longitude=2.3522¤t_weather=true"
response = requests.get(url).json()
weather = response["current_weather"]
temperature = weather["temperature"]
weather_code = weather["weathercode"]
descriptions = {
0: "ciel clair",
1: "principalement clair",
2: "partiellement nuageux",
3: "couvert",
45: "brouillard",
48: "brouillard givrant",
51: "bruine légère",
53: "bruine",
55: "bruine forte",
61: "pluie légère",
63: "pluie",
65: "pluie forte",
71: "neige légère",
73: "neige",
75: "neige forte",
}
description = descriptions.get(weather_code, "conditions météo inconnues")
return f"À Paris, il fait {temperature}°C avec un {description}."
except Exception as e:
return f"Erreur lors de la récupération de la météo : {str(e)}"
# ---------------------------------------------------
# 2️⃣ OUTIL : GÉNÉRATION D’IMAGE
# ---------------------------------------------------
image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
# ---------------------------------
# 3️⃣ CHARGEMENT DU PROMPT SYSTÈME
# ---------------------------------
with open("prompts.yaml", "r") as stream:
prompt_templates = yaml.safe_load(stream)
# -------------------------
# 4️⃣ MODÈLE UTILISÉ
# -------------------------
model = HfApiModel(
model_id="Qwen/Qwen2.5-Coder-32B-Instruct",
max_tokens=2048,
temperature=0.5,
)
# -------------------------
# 5️⃣ CRÉATION DE L’AGENT
# -------------------------
final_answer = FinalAnswerTool()
agent = CodeAgent(
model=model,
tools=[final_answer, get_weather_paris, image_generation_tool],
max_steps=6,
verbosity_level=1,
prompt_templates=prompt_templates
)
# -------------------------
# 6️⃣ LANCEMENT DE GRADIO
# -------------------------
GradioUI(agent).launch()
|