Hub Python Library documentation
MCPクライアント
MCPクライアント
huggingface_hub ライブラリには現在、Model Context Protocol (MCP) を介して外部のツールと対話する機能を大規模言語モデル (LLM) に付与するために設計された MCPClient が含まれています。このクライアントは AsyncInferenceClient を拡張し、ツールの利用をシームレスに統合します。
MCPClientは、ツールを公開するMCPサーバー(ローカルのstdioスクリプトまたはリモートのhttp/sseサービス)に接続します。これらのツールをLLMに提供します(AsyncInferenceClient経由で)。LLMがツールの使用を決定した場合、MCPClientはMCPサーバーへの実行リクエストを管理し、ツールの出力をLLMに中継します。多くの場合、結果はリアルタイムでストリーミングされます。
より高レベルのAgentクラスも提供しています。この「Tiny Agent」は、MCPClientをラップする形で、チャットループと状態を管理することで、会話型Agentの作成を簡素化します。
MCPクライアント
クラス 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 )
パラメータ
- model (
str,optional) — 推論を実行するモデル。Hugging Face Hub にホストされているモデル ID(例:meta-llama/Meta-Llama-3-8B-Instruct)または、デプロイされた Inference Endpoint への URL、その他のローカルまたはリモートエンドポイントの URL を指定できます。 - provider (
str, 任意) — 推論に使用するプロバイダーの名前。デフォルトは “auto” で、https://hf.co/settings/inference-providers でユーザーが指定した順序で並べられた、そのモデルで利用可能なプロバイダーの最初のものが選択されます。 モデルが URL の場合、またはbase_urlが渡された場合、providerは使用されません。 - base_url (
str, 任意) — 推論を実行するためのベース URL。デフォルトは None です。 - api_key (
str,optional) — 認証に使用するトークンです。指定しない場合、ローカルに保存されている Hugging Face のトークンがデフォルトで使用されます。プロバイダーのサービスに直接アクセスするために、ご自身のプロバイダー API キーを使用することもできます。
1つ以上のMCPサーバーに接続し、ツールを使用してチャット補完を処理するためのクライアント。
このクラスは実験的なものであり、事前の通知なしに将来、破壊的な変更が加えられる可能性があります。
add_mcp_server
< source >( 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], optional): コマンドの作業ディレクトリ
- allowed_tools (list[str], optional): このサーバーから許可するツールの名前の一覧
- SSE サーバーの場合:
- url (str): SSEサーバーのURL
- headers (dict[str, Any], 任意): SSE接続用のヘッダー
- timeout (float, 任意): 接続のタイムアウト
- sse_read_timeout (float, 任意): SSE の読み取りタイムアウト
- allowed_tools (list[str], optional): このサーバーから許可するツールの名前の一覧
- StreamableHTTP サーバーの場合:
- url (str): StreamableHTTP サーバーの URL
- headers (dict[str, Any], 任意): StreamableHTTP接続用のヘッダー
- timeout (timedelta, 任意): 接続のタイムアウト
- sse_read_timeout (timedelta, 任意): SSEの読み取りタイムアウト
- terminate_on_close (bool, optional): クローズ時に終了するかどうか
- allowed_tools (list[str], optional): このサーバーから許可するツールの名前の一覧
- stdio サーバーの場合:
MCPサーバーに接続する
リソースのクリーンアップ
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 )
self.model と利用可能なツールを使用してクエリを処理し、チャンクとツールの出力を生成します。
エージェント
クラス 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 )
パラメータ
- model (
str, 任意) — 推論を実行するモデル。Hugging Face Hub にホストされているモデル ID(例:meta-llama/Meta-Llama-3-8B-Instruct)または、デプロイされた Inference Endpoint への URL、その他のローカルまたはリモートエンドポイントの URL を指定できます。 - servers (
Iterable[dict]) — 接続する MCP サーバーです。各サーバーは、typeキーとconfigキーを含む辞書です。typeキーには"stdio"または"sse"を指定でき、configキーはサーバーの引数を表す辞書です。 - provider (
str, 任意) — 推論に使用するプロバイダーの名前。デフォルトは “auto” で、https://hf.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ループである、Simple Agentの実装です。
このクラスは実験的なものであり、事前の通知なしに将来、破壊的な変更が加えられる可能性があります。
run
< source >( user_input: strabort_event: Optional[asyncio.Event] = None )
指定されたユーザー入力を使用してエージェントを実行します。