Maison > Périphériques technologiques > IA > Smolagents du visage étreint: un guide avec des exemples

Smolagents du visage étreint: un guide avec des exemples

Jennifer Aniston
Libérer: 2025-03-01 09:51:11
original
333 Les gens l'ont consulté

Smolagents de l'étreinte Face: une bibliothèque Python rationalisée pour construire des agents AI

Cet article de blog présente Smolagents, une nouvelle bibliothèque Python de Hugging Face qui simplifie le développement d'agents AI. Nous allons explorer ses avantages et parcourir un projet de démonstration.

Qu'est-ce que Smolagents?

Le visage étreint décrit les smolagents comme une bibliothèque simple permettant aux agents du modèle de langue. Mais pourquoi les bibliothèques spécialisées sont-elles nécessaires à la création d'agents?

Les agents tirent parti de LLMS pour résoudre dynamiquement les tâches en interagissant avec leur environnement, leur planification et leur exécution des actions à l'aide d'une boîte à outils définie. Bien que la construction de ces agents ne soit pas impossible à partir de zéro, il nécessite de développer de nombreux composants pour assurer une utilisation efficace des ressources (éviter les appels API excessifs et le temps d'exécution). Les cadres agentiques rationalisent ce processus.

Les critiques courantes des cadres d'agent d'agent d'IA comprennent des couches d'abstraction excessives (conduisant à des difficultés de rigidité et de débogage) et une concentration sur les flux de travail rigides plutôt que sur une collaboration dynamique. Smolagents répond à ces préoccupations:

  • couches d'abstraction minimales.
  • Actions basées sur le code: les agents définissent des actions en utilisant des extraits de code Python (distincts des agents qui générer code).
  • Intégration du visage étreint sans couture: fonctionne bien avec la bibliothèque Hub and Transformers, en prenant en charge divers modèles (y compris certains nécessitant un abonnement pro) et des modèles d'Openai, anthropic, etc.
  • Création d'outils personnalisés faciles: définir des outils personnalisés est aussi simple que d'écrire une fonction Python.

Voyons si Smolagents est à la hauteur de sa promesse de développement d'agent d'aiguilles plug-and-play.

Projet de démonstration: Récupération du papier quotidien en haut voté à haut voté

Cette démo utilise des smolagents pour récupérer le papier le plus voté à partir de la page Daily Papers de l'étreinte. Nous allons construire des outils personnalisés et observer leur interaction.

Hugging Face's Smolagents: A Guide With Examples

Daily Papers: une ressource précieuse pour suivre les recherches récentes.

Configuration des smolagents

L'installation est simple:

pip install smolagents
Copier après la connexion
Copier après la connexion

Un jeton de visage étreint est requis.

Construire des outils personnalisés

Bien que Smolagents propose des outils intégrés (par exemple, DuckDuckGosearchTool), la création d'outils personnalisés est tout aussi simple. Notre démo utilise quatre outils:

  1. get_hugging_face_top_daily_paper: récupère le titre du meilleur papier quotidien.
  2. get_paper_id_by_title: Obtient l'ID de papier en utilisant son titre.
  3. download_paper_by_id: Télécharge le papier d'ArXiv en utilisant son id.
  4. read_pdf_file: lit le fichier PDF téléchargé.

La conception efficace des outils est cruciale pour le succès des agents. Pour assurer la clarté:

  • utiliser des noms de fonction descriptifs.
  • Utiliser des astuces de type pour les entrées et les sorties.
  • Inclure les docstrings détaillés expliquant l'objectif de l'outil.

Voici l'exemple d'outil get_hugging_face_top_daily_paper:

pip install smolagents
Copier après la connexion
Copier après la connexion

Les autres outils (get_paper_id_by_title, download_paper_by_id, read_pdf_file) sont définis de manière similaire (en utilisant huggingface_hub, arxiv et pypdf respectivement), suivant les mêmes meilleures pratiques.

exécuter l'agent

Nous utiliserons le modèle QWEN2.5-CODER-32B-INSTRUCT (gratuit à utiliser):

from smolagents import tool
import requests
from bs4 import BeautifulSoup
import json

@tool
def get_hugging_face_top_daily_paper() -> str:
    """
    Retrieves the most upvoted paper from Hugging Face daily papers.
    Returns the paper's title.
    """
    try:
      url = "<https:>"  # URL to Hugging Face Daily Papers
      response = requests.get(url)
      response.raise_for_status()
      soup = BeautifulSoup(response.content, "html.parser")
      containers = soup.find_all('div', class_='SVELTE_HYDRATER contents')
      top_paper = ""
      for container in containers:
          data_props = container.get('data-props', '')
          if data_props:
              try:
                  json_data = json.loads(data_props.replace('"', '"'))
                  if 'dailyPapers' in json_data:
                      top_paper = json_data['dailyPapers'][0]['title']
              except json.JSONDecodeError:
                  continue
      return top_paper
    except requests.exceptions.RequestException as e:
      print(f"Error fetching HTML: {e}")
      return None</https:>
Copier après la connexion

La sortie étape par étape de l'agent démontre son utilisation de l'outil. (Les captures d'écran de la sortie de l'agent dans les étapes 0, 1, 2 et 3 seraient incluses ici, montrant le processus de l'agent et le résumé final).

Conclusion

Smolagents propose un cadre léger et contrôlable pour le développement des agents d'IA. Son intégration de visage étreinte donne accès à une large gamme de modèles et d'outils. Bien que des outils intégrés supplémentaires soient bénéfiques, Smolagents tient efficacement sa promesse de base. Pour les développeurs à la recherche d'un cadre d'agent simple et épuré, Smolagents mérite d'être exploré.

(Liens vers l'introduction aux agents de l'IA, la compréhension des agents de l'IA, la documentation Smolagents et le référentiel Smolagents seraient inclus ici.)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal