from abc import ABC, abstractmethod class WebSearchInterface(ABC): """ Interface pour les outils de recherche d'information. Cette interface définit une méthode abstraite : - recherche_internet : pour effectuer une recherche web via DuckDuckGo. Toute classe implémentant cette interface doit fournir des implémentations concrètes pour cette méthode. """ @abstractmethod def web_search(self, query: str) -> str: """ Effectue une recherche Internet via DuckDuckGo et retourne les meilleurs résultats. Args: query (str): La requête à rechercher en ligne. Returns: str: Une liste formatée de résultats (titre, lien, description), ou un message d’erreur. """ pass