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&current_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()