Hub Python 庫文件
MCP 客戶端
並獲得增強的文件體驗
開始使用
MCP 客戶端
huggingface_hub 庫現在包含一個MCPClient,旨在透過模型上下文協議(MCP)使大型語言模型(LLMs)能夠與外部工具進行互動。此客戶端擴充套件了AsyncInferenceClient以無縫整合工具使用。
MCPClient連線到暴露工具的 MCP 伺服器(本地 `stdio` 指令碼或遠端 `http`/`sse` 服務)。它將這些工具提供給 LLM(透過AsyncInferenceClient)。如果 LLM 決定使用工具,MCPClient會管理對 MCP 伺服器的執行請求,並將工具的輸出中繼回 LLM,通常以即時流的形式傳輸結果。
我們還提供了一個更高級別的Agent類。這個“微型代理”透過管理聊天迴圈和狀態來簡化對話代理的建立,充當MCPClient的包裝器。
MCP 客戶端
class huggingface_hub.MCPClient
< 來源 >( model: typing.Optional[str] = None provider: typing.Union[typing.Literal['black-forest-labs', 'cerebras', 'cohere', 'fal-ai', 'featherless-ai', 'fireworks-ai', 'groq', 'hf-inference', 'hyperbolic', 'nebius', 'novita', 'nscale', 'openai', 'replicate', 'sambanova', 'together'], typing.Literal['auto'], NoneType] = None base_url: typing.Optional[str] = None api_key: typing.Optional[str] = None )
引數
- model (
str
,可選
) — 用於執行推理的模型。可以是託管在 Hugging Face Hub 上的模型 ID,例如meta-llama/Meta-Llama-3-8B-Instruct
,或者是已部署的推理端點或其他本地或遠端端點的 URL。 - provider (
str
, 可選) — 用於推理的提供商名稱。預設為“auto”,即模型可用提供商中的第一個,按使用者在https://huggingface.co/settings/inference-providers中的順序排序。如果模型是 URL 或傳遞了base_url
,則不使用provider
。 - base_url (
str
, 可選) — 用於執行推理的基礎 URL。預設為 None。 - api_key (
str
,可選
) — 用於身份驗證的令牌。如果未提供,將預設為本地 Hugging Face 儲存的令牌。您也可以使用您自己的提供商 API 金鑰直接與提供商的服務互動。
用於連線到一個或多個 MCP 伺服器並處理帶工具的聊天完成的客戶端。
此類別為實驗性質,未來可能會在不另行通知的情況下進行重大更改。
add_mcp_server
< 來源 >( type: typing.Literal['stdio', 'sse', 'http'] **params: typing.Any )
引數
- type (
str
) — 要連線的伺服器型別。可以是以下之一:- “stdio”:標準輸入/輸出伺服器(本地)
- “sse”:伺服器傳送事件 (SSE) 伺服器
- “http”:StreamableHTTP 伺服器
- **params (
Dict[str, Any]
) — 伺服器引數,可以是:- 對於 stdio 伺服器:
- command (str):執行 MCP 伺服器的命令
- args (List[str], 可選):命令的引數
- env (Dict[str, str], 可選):命令的環境變數
- cwd (Union[str, Path, None], 可選):命令的工作目錄
- 對於 SSE 伺服器:
- url (str):SSE 伺服器的 URL
- headers (Dict[str, Any], 可選):SSE 連線的請求頭
- timeout (float, 可選):連線超時時間
- sse_read_timeout (float, 可選):SSE 讀取超時時間
- 對於 StreamableHTTP 伺服器:
- url (str):StreamableHTTP 伺服器的 URL
- headers (Dict[str, Any], 可選):StreamableHTTP 連線的請求頭
- timeout (timedelta, 可選):連線超時時間
- sse_read_timeout (timedelta, 可選):SSE 讀取超時時間
- terminate_on_close (bool, 可選):是否在關閉時終止
- 對於 stdio 伺服器:
連線到 MCP 伺服器
清理資源
process_single_turn_with_tools
< 來源 >( messages: typing.List[typing.Union[typing.Dict, huggingface_hub.inference._generated.types.chat_completion.ChatCompletionInputMessage]] exit_loop_tools: typing.Optional[typing.List[huggingface_hub.inference._generated.types.chat_completion.ChatCompletionInputTool]] = None exit_if_first_chunk_no_tool: bool = False )
使用 `self.model` 和可用工具處理查詢,生成塊和工具輸出。
代理
class huggingface_hub.Agent
< 來源 >( model: Optional[str] = None servers: Iterable[ServerConfig] provider: Optional[PROVIDER_OR_POLICY_T] = None base_url: Optional[str] = None api_key: Optional[str] = None prompt: Optional[str] = None )
引數
- model (
str
, 可選) — 用於執行推理的模型。可以是託管在 Hugging Face Hub 上的模型 ID,例如meta-llama/Meta-Llama-3-8B-Instruct
,或者是已部署的推理端點或其他本地或遠端端點的 URL。 - servers (
Iterable[Dict]
) — 要連線的 MCP 伺服器。每個伺服器都是一個字典,包含一個type
鍵和一個config
鍵。type
鍵可以是"stdio"
或"sse"
,config
鍵是伺服器引數的字典。 - provider (
str
, 可選) — 用於推理的提供商名稱。預設為“auto”,即模型可用提供商中的第一個,按使用者在https://huggingface.co/settings/inference-providers中的順序排序。如果模型是 URL 或傳遞了base_url
,則不使用provider
。 - base_url (
str
, 可選) — 用於執行推理的基礎 URL。預設為 None。 - api_key (
str
, 可選) — 用於身份驗證的令牌。如果未提供,將預設為本地 Hugging Face 儲存的令牌。您也可以使用您自己的提供商 API 金鑰直接與提供商的服務互動。 - prompt (
str
, 可選) — 用於代理的系統提示。預設為constants.py
中的預設系統提示。
一個簡單代理的實現,它是一個構建在MCPClient之上的簡單 while 迴圈。
此類別為實驗性質,未來可能會在不另行通知的情況下進行重大更改。
執行
< 來源 >( user_input: str abort_event: Optional[asyncio.Event] = None )
使用給定的使用者輸入執行代理。