Hub Python Library documentation
Klien MCP
Klien MCP
Perpustakaan huggingface_hub kini mencakup MCPClient, yang dirancang untuk memberdayakan Large Language Models (LLM) dengan kemampuan berinteraksi dengan Tools eksternal melalui Model Context Protocol (MCP). Klien ini memperluas AsyncInferenceClient untuk mengintegrasikan penggunaan Tools secara mulus.
MCPClient terhubung ke server MCP (skrip stdio lokal atau layanan http/sse jarak jauh) yang mengekspos tool. Komponen ini memberikan tool tersebut ke LLM (melalui AsyncInferenceClient). Jika LLM memutuskan untuk menggunakan sebuah tool, MCPClient mengelola permintaan eksekusi ke server MCP dan meneruskan output Tool kembali ke LLM, sering kali dengan streaming hasil secara real-time.
Kami juga menyediakan kelas Agent yang lebih tinggi. ‘Tiny Agent’ ini menyederhanakan pembuatan Agent percakapan dengan mengelola loop chat dan state, bertindak sebagai pembungkus di sekitar MCPClient.
Klien MCP
kelas 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 )
Parameter
- model (
str,optional) — Model yang akan dijalankan untuk inferensi. Bisa berupa model id yang dihosting di Hugging Face Hub, misalnyameta-llama/Meta-Llama-3-8B-Instructatau URL ke Inference Endpoint yang sudah di-deploy atau endpoint lokal/remote lainnya. - provider (
str, opsional) — Nama provider yang akan digunakan untuk inferensi. Nilainya secara default adalah “auto”, yaitu provider pertama yang tersedia untuk model tersebut, diurutkan berdasarkan urutan pengguna di https://hf.co/settings/inference-providers. Jika model berupa URL ataubase_urldiberikan, makaprovidertidak digunakan. - base_url (
str, opsional) — URL dasar untuk menjalankan inferensi. Bawaan adalah None. - api_key (
str,optional) — Token yang digunakan untuk autentikasi. Jika tidak disediakan, akan secara default menggunakan token Hugging Face yang disimpan secara lokal. Anda juga dapat menggunakan API key provider Anda sendiri untuk berinteraksi langsung dengan layanan provider tersebut.
Klien untuk terhubung ke satu atau lebih server MCP dan memproses pelengkapan chat dengan alat.
Kelas ini bersifat eksperimental dan mungkin mengalami perubahan yang merusak di masa depan tanpa pemberitahuan sebelumnya.
add_mcp_server
< source >( type: typing.Literal['stdio', 'sse', 'http']**params: typing.Any )
Parameter
- type (
str) — Jenis server yang akan dihubungkan. Bisa berupa salah satu dari:- “stdio”: Server input/output standar (lokal)
- “sse”: Server-sent events (SSE) server
- “http”: Server StreamableHTTP
- **params (
dict[str, Any]) — Parameter server yang dapat berupa:- Untuk server stdio:
- command (str): Perintah untuk menjalankan server MCP
- args (list[str], opsional): Argumen untuk perintah
- env (dict[str, str], opsional): Variabel lingkungan untuk perintah
- cwd (Union[str, Path, None], opsional): Direktori kerja untuk perintah
- allowed_tools (list[str], opsional): Daftar nama tool yang diizinkan dari server ini
- Untuk server SSE:
- url (str): URL dari server SSE
- headers (dict[str, Any], opsional): Header untuk koneksi SSE
- timeout (float, opsional): Timeout koneksi
- sse_read_timeout (float, opsional): timeout baca SSE
- allowed_tools (list[str], opsional): Daftar nama tool yang diizinkan dari server ini
- Untuk server StreamableHTTP:
- url (str): URL dari server StreamableHTTP
- headers (dict[str, Any], opsional): Header untuk koneksi StreamableHTTP
- timeout (timedelta, opsional): Timeout koneksi
- sse_read_timeout (timedelta, opsional): timeout baca SSE
- terminate_on_close (bool, opsional): Apakah akan mengakhiri saat ditutup
- allowed_tools (list[str], opsional): Daftar nama tool yang diizinkan dari server ini
- Untuk server stdio:
Hubungkan ke server MCP
Bersihkan sumber daya
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 )
Parameter
- messages (
list[dict]) — Daftar objek pesan yang mewakili riwayat percakapan - exit_loop_tools (
list[ChatCompletionInputTool], opsional) — Daftar alat yang harus mengakhiri generator saat dipanggil - exit_if_first_chunk_no_tool (
bool, opsional) — Keluar jika tidak ada tool di chunk pertama. Default ke False.
Proses kueri menggunakan self.model dan alat yang tersedia, menghasilkan chunk dan keluaran alat.
Agen
kelas 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 )
Parameter
- model (
str, opsional) — Model yang akan digunakan untuk menjalankan inferensi. Bisa berupa id model yang dihosting di Hugging Face Hub, misalnyameta-llama/Meta-Llama-3-8B-Instructatau URL ke Inference Endpoint yang telah di-deploy atau endpoint lokal/remote lainnya. - servers (
Iterable[dict]) — Server MCP yang akan dihubungkan. Setiap server adalah kamus yang berisi kuncitypedan kunciconfig. Kuncitypedapat berupa"stdio"atau"sse", dan kunciconfigadalah kamus berisi argumen untuk server tersebut. - provider (
str, opsional) — Nama provider yang akan digunakan untuk inferensi. Nilainya secara default adalah “auto”, yaitu provider pertama yang tersedia untuk model tersebut, diurutkan berdasarkan urutan pengguna di https://hf.co/settings/inference-providers. Jika model berupa URL ataubase_urldiberikan, makaprovidertidak digunakan. - base_url (
str, opsional) — URL dasar untuk menjalankan inferensi. Bawaan adalah None. - api_key (
str, opsional) — Token yang digunakan untuk autentikasi. Jika tidak disediakan, akan secara default menggunakan token Hugging Face yang disimpan secara lokal. Anda juga dapat menggunakan API key provider Anda sendiri untuk berinteraksi langsung dengan layanan provider tersebut. - prompt (
str, opsional) — Prompt sistem yang akan digunakan untuk agen. Secara default menggunakan prompt sistem default diconstants.py.
Implementasi Agen Sederhana, yaitu loop while sederhana yang dibangun langsung di atas MCPClient.
Kelas ini bersifat eksperimental dan mungkin mengalami perubahan yang merusak di masa depan tanpa pemberitahuan sebelumnya.
jalankan
< source >( user_input: strabort_event: Optional[asyncio.Event] = None )
Jalankan agen dengan input pengguna yang diberikan.