Hub Python Library documentation
Client MCP
Client MCP
La bibliothèque huggingface_hub intègre désormais un MCPClient, conçu pour doter les grands modèles de langage (LLM) de la capacité d’interagir avec des outils externes via le Model Context Protocol (MCP). Ce client étend un AsyncInferenceClient afin d’intégrer l’utilisation d’outils de manière transparente.
Le MCPClient se connecte aux serveurs MCP (scripts locaux stdio ou services distants http/sse) qui exposent des outils. Il transmet ces outils à un LLM (via AsyncInferenceClient). Si le LLM décide d'utiliser un outil, MCPClient gère la requête d'exécution auprès du serveur MCP et renvoie la sortie de l'outil au LLM, en diffusant souvent les résultats en temps réel.
Nous fournissons également une classe Agent de plus haut niveau. Cet « Agent Tiny » simplifie la création d’Agents conversationnels en gérant la boucle de discussion et l’état, en agissant comme un wrapper autour de MCPClient.
Client MCP
classe huggingface_hub.MCPClient
< source >( model: typing.Optional[str] = Noneprovider: typing.Union[typing.Literal['baseten', 'cerebras', 'cohere', 'deepinfra', 'fal-ai', 'featherless-ai', 'fireworks-ai', 'groq', 'hf-inference', 'novita', 'nscale', 'openai', 'ovhcloud', 'publicai', 'replicate', 'scaleway', 'together', 'wavespeed', 'zai-org'], typing.Literal['auto'], NoneType] = Nonebase_url: typing.Optional[str] = Noneapi_key: typing.Optional[str] = None )
Paramètres
- model (
str,optional) — Le modèle à utiliser pour l’inférence. Peut être un identifiant de modèle hébergé sur le Hugging Face Hub, par exemplemeta-llama/Meta-Llama-3-8B-Instructou une URL vers un Inference Endpoint déployé ou tout autre point de terminaison local ou distant. - provider (
str, facultatif) — Nom du fournisseur à utiliser pour l’inférence. Par défaut, « auto », c’est-à-dire le premier des fournisseurs disponibles pour le modèle, triés selon l’ordre défini par l’utilisateur dans https://hf.co/settings/inference-providers. Si le modèle est une URL ou sibase_urlest transmis, alorsprovidern’est pas utilisé. - base_url (
str, facultatif) — L'URL de base pour exécuter l'inférence. La valeur par défaut est None. - api_key (
str,optional) — Jeton à utiliser pour l’authentification. Par défaut, le jeton Hugging Face enregistré localement est utilisé s’il n’est pas fourni. Vous pouvez également utiliser votre propre clé API de fournisseur pour interagir directement avec le service du fournisseur.
Client pour se connecter à un ou plusieurs serveurs MCP et traiter des complétions de chat avec des outils.
Cette classe est expérimentale et pourrait faire l'objet de modifications cassant la rétrocompatibilité à l'avenir, sans préavis.
add_mcp_server
< source >( type: typing.Literal['stdio', 'sse', 'http']**params: typing.Any )
Paramètres
- type (
str) — Type de serveur auquel se connecter. Peut être l'un des éléments suivants :- “stdio” : serveur d’entrée/sortie standard (local)
- “sse” : serveur d'événements envoyés par le serveur (SSE)
- “http” : serveur StreamableHTTP
- **params (
dict[str, Any]) — Paramètres du serveur, qui peuvent être :- Pour les serveurs stdio :
- command (str) : la commande pour exécuter le serveur MCP
- args (list[str], facultatif) : Arguments de la commande
- env (dict[str, str], optionnel) : Variables d'environnement pour la commande
- cwd (Union[str, Path, None], optionnel) : répertoire de travail pour la commande
- allowed_tools (list[str], optionnel) : Liste des noms d'outils à autoriser depuis ce serveur
- Pour les serveurs SSE :
- url (str) : l’URL du serveur SSE
- headers (dict[str, Any], optionnel) : En-têtes pour la connexion SSE
- timeout (float, facultatif) : délai d'attente de la connexion
- sse_read_timeout (float, facultatif) : délai d'attente de lecture SSE
- allowed_tools (list[str], optionnel) : Liste des noms d'outils à autoriser depuis ce serveur
- Pour les serveurs StreamableHTTP :
- url (str) : l'URL du serveur StreamableHTTP
- headers (dict[str, Any], optionnel) : En-têtes pour la connexion StreamableHTTP
- timeout (timedelta, facultatif) : délai d'expiration de la connexion
- sse_read_timeout (timedelta, optionnel) : délai d'attente de lecture SSE
- terminate_on_close (bool, optionnel) : Indique s'il faut terminer lors de la fermeture
- allowed_tools (list[str], optionnel) : Liste des noms d'outils à autoriser depuis ce serveur
- Pour les serveurs stdio :
Se connecter à un serveur MCP
Nettoyer les ressources
process_single_turn_with_tools
< source >( messages: listexit_loop_tools: typing.Optional[list[huggingface_hub.inference._generated.types.chat_completion.ChatCompletionInputTool]] = Noneexit_if_first_chunk_no_tool: bool = False )
Paramètres
- messages (
list[dict]) — List of message objects representing the conversation history - exit_loop_tools (
list[ChatCompletionInputTool], facultatif) — Liste d'outils qui doivent faire sortir le générateur lorsqu'ils sont appelés - exit_if_first_chunk_no_tool (
bool, facultatif) — Quitte si aucun outil n'est présent dans les premiers blocs. Valeur par défaut : False.
Traiter une requête à l'aide de self.model et des outils disponibles, en produisant des fragments et des sorties d'outils.
Agent
classe huggingface_hub.Agent
< source >( model: Optional[str] = Noneservers: Iterable[ServerConfig]provider: Optional[PROVIDER_OR_POLICY_T] = Nonebase_url: Optional[str] = Noneapi_key: Optional[str] = Noneprompt: Optional[str] = None )
Paramètres
- model (
str, facultatif) — Le modèle à utiliser pour l’inférence. Peut être un identifiant de modèle hébergé sur le Hugging Face Hub, par exemplemeta-llama/Meta-Llama-3-8B-Instructou une URL vers un Inference Endpoint déployé ou tout autre point de terminaison local ou distant. - servers (
Iterable[dict]) — Serveurs MCP à connecter. Chaque serveur est un dictionnaire contenant une clétypeet une cléconfig. La clétypepeut être"stdio"ou"sse", et la cléconfigest un dictionnaire d’arguments pour le serveur. - provider (
str, facultatif) — Nom du fournisseur à utiliser pour l’inférence. Par défaut, « auto », c’est-à-dire le premier des fournisseurs disponibles pour le modèle, triés selon l’ordre défini par l’utilisateur dans https://hf.co/settings/inference-providers. Si le modèle est une URL ou sibase_urlest transmis, alorsprovidern’est pas utilisé. - base_url (
str, facultatif) — L'URL de base pour exécuter l'inférence. La valeur par défaut est None. - api_key (
str, facultatif) — Jeton à utiliser pour l’authentification. Par défaut, le jeton Hugging Face enregistré localement est utilisé s’aucun n’est fourni. Vous pouvez également utiliser votre propre clé API de fournisseur pour interagir directement avec le service du fournisseur. - prompt (
str, facultatif) — Le prompt système à utiliser pour l'agent. Par défaut, le prompt système par défaut deconstants.pyest utilisé.
Implémentation d'un agent simple, qui est une simple boucle while construite directement sur un MCPClient.
Cette classe est expérimentale et pourrait faire l'objet de modifications cassant la rétrocompatibilité à l'avenir, sans préavis.
run
< source >( user_input: strabort_event: Optional[asyncio.Event] = None )
Exécutez l'agent avec l'entrée utilisateur donnée.