Hub Python Library documentation
Cliente MCP
Cliente MCP
A biblioteca huggingface_hub agora inclui um MCPClient, projetado para capacitar Modelos de Linguagem de Grande Escala (LLMs) com a capacidade de interagir com Ferramentas externas por meio do Model Context Protocol (MCP). Este cliente estende um AsyncInferenceClient para integrar o uso de Ferramentas de forma transparente.
O MCPClient se conecta a servidores MCP (scripts locais stdio ou serviços remotos http/sse) que expõem ferramentas. Ele fornece essas ferramentas a um LLM (via AsyncInferenceClient). Se o LLM decidir usar uma ferramenta, o MCPClient gerencia a solicitação de execução ao servidor MCP e repassa a saída da ferramenta de volta ao LLM, frequentemente transmitindo os resultados em tempo real.
Também fornecemos uma classe de nível superior Agent. Este ‘Tiny Agent’ simplifica a criação de Agentes conversacionais ao gerenciar o loop de chat e o estado, atuando como um wrapper ao redor de MCPClient.
Cliente 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 )
Parâmetros
- model (
str,optional) — O modelo para executar a inferência. Pode ser um id de modelo hospedado no Hugging Face Hub, por exemplometa-llama/Meta-Llama-3-8B-Instructou uma URL para um Inference Endpoint implantado ou outro endpoint local ou remoto. - provider (
str, opcional) — Nome do provedor a ser usado para inferência. O padrão é “auto”, ou seja, o primeiro dos provedores disponíveis para o modelo, ordenados pela ordem do usuário em https://hf.co/settings/inference-providers. Se o modelo for uma URL oubase_urlfor passado, entãoprovidernão é usado. - base_url (
str, opcional) — A URL base para executar a inferência. O padrão é None. - api_key (
str,optional) — Token a ser usado para autenticação. Se não for fornecido, será usado o token do Hugging Face salvo localmente por padrão. Você também pode usar a chave de API do seu próprio provedor para interagir diretamente com o serviço do provedor.
Cliente para conectar a um ou mais servidores MCP e processar conclusões de chat com ferramentas.
Esta classe é experimental e pode estar sujeita a alterações que quebrem a compatibilidade no futuro, sem aviso prévio.
add_mcp_server
< source >( type: typing.Literal['stdio', 'sse', 'http']**params: typing.Any )
Parâmetros
- type (
str) — Tipo do servidor para o qual se deseja conectar. Pode ser um dos seguintes:- “stdio”: servidor de entrada/saída padrão (local)
- “sse”: servidor de eventos enviados pelo servidor (SSE)
- “http”: servidor StreamableHTTP
- **params (
dict[str, Any]) — Parâmetros do servidor que podem ser:- Para servidores stdio:
- command (str): O comando para executar o servidor MCP
- args (list[str], opcional): Argumentos para o comando
- env (dict[str, str], opcional): Variáveis de ambiente para o comando
- cwd (Union[str, Path, None], opcional): Diretório de trabalho para o comando
- allowed_tools (list[str], opcional): Lista de nomes de ferramentas a serem permitidas a partir deste servidor
- Para servidores SSE:
- url (str): A URL do servidor SSE
- headers (dict[str, Any], opcional): Cabeçalhos para a conexão SSE
- timeout (float, opcional): Tempo limite de conexão
- sse_read_timeout (float, opcional): tempo limite de leitura SSE
- allowed_tools (list[str], opcional): Lista de nomes de ferramentas a serem permitidas a partir deste servidor
- Para servidores StreamableHTTP:
- url (str): A URL do servidor StreamableHTTP
- headers (dict[str, Any], opcional): Cabeçalhos para a conexão StreamableHTTP
- timeout (timedelta, opcional): Tempo limite de conexão
- sse_read_timeout (timedelta, opcional): tempo limite de leitura SSE
- terminate_on_close (bool, opcional): Se deve encerrar ao fechar
- allowed_tools (list[str], opcional): Lista de nomes de ferramentas a serem permitidas a partir deste servidor
- Para servidores stdio:
Conectar a um servidor MCP
Limpar recursos
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 )
Parâmetros
- messages (
list[dict]) — Lista de objetos de mensagem representando o histórico da conversa - exit_loop_tools (
list[ChatCompletionInputTool], opcional) — Lista de ferramentas que devem encerrar o gerador quando chamadas - exit_if_first_chunk_no_tool (
bool, opcional) — Encerra se não houver nenhuma ferramenta nos primeiros chunks. O valor padrão é False.
Processa uma consulta usando self.model e as ferramentas disponíveis, gerando blocos e saídas de ferramentas.
Agente
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 )
Parâmetros
- model (
str, opcional) — O modelo para executar inferência. Pode ser um id de modelo hospedado no Hugging Face Hub, por exemplometa-llama/Meta-Llama-3-8B-Instructou uma URL para um Inference Endpoint implantado ou outro endpoint local ou remoto. - servers (
Iterable[dict]) — Servidores MCP para conectar. Cada servidor é um dicionário contendo uma chavetypee uma chaveconfig. A chavetypepode ser"stdio"ou"sse", e a chaveconfigé um dicionário de argumentos para o servidor. - provider (
str, opcional) — Nome do provedor a ser usado para inferência. O padrão é “auto”, ou seja, o primeiro dos provedores disponíveis para o modelo, ordenados pela ordem do usuário em https://hf.co/settings/inference-providers. Se o modelo for uma URL oubase_urlfor passado, entãoprovidernão é usado. - base_url (
str, opcional) — A URL base para executar a inferência. O padrão é None. - api_key (
str, opcional) — Token a ser usado para autenticação. Se não for fornecido, será usado o token do Hugging Face salvo localmente por padrão. Você também pode usar a chave de API do seu próprio provedor para interagir diretamente com o serviço do provedor. - prompt (
str, opcional) — O prompt de sistema a ser usado para o agente. O padrão é o prompt de sistema padrão emconstants.py.
Implementação de um Agente Simples, que é um simples laço while construído diretamente sobre um MCPClient.
Esta classe é experimental e pode estar sujeita a alterações que quebrem a compatibilidade no futuro, sem aviso prévio.
executar
< source >( user_input: strabort_event: Optional[asyncio.Event] = None )
Execute o agente com a entrada do usuário fornecida.