Hub Python Library documentation
عميل MCP
عميل MCP
تتضمن مكتبة huggingface_hub الآن MCPClient، صُمم لتمكين نماذج اللغة الكبيرة (LLMs) من التفاعل مع الأدوات الخارجية عبر Model Context Protocol (MCP). يوسّع هذا العميل AsyncInferenceClient لدمج استخدام الأدوات بسلاسة.
يتصل MCPClient بخوادم MCP (سكربتات stdio محلية أو خدمات http/sse عن بُعد) التي تعرض أدوات. ويغذي هذه الأدوات إلى نموذج LLM (عبر AsyncInferenceClient). إذا قرر نموذج LLM استخدام أداة، يتولى MCPClient إدارة طلب التنفيذ إلى خادم MCP ويعيد إخراج الأداة إلى نموذج LLM، وغالبًا ما يتم بث النتائج في الوقت الفعلي.
نوفر أيضًا فئة Agent بمستوى أعلى. تُبسّط هذه الفئة، المسماة “Tiny Agent”، إنشاء وكلاء محادثة من خلال إدارة حلقة الدردشة والحالة، وتعمل كغلاف حول MCPClient.
عميل 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، مثلmeta-llama/Meta-Llama-3-8B-Instructأو عنوان 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 الخاص بمزودك للتفاعل مباشرةً مع خدمة المزود.
عميل للاتصال بخادم أو أكثر من خوادم 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], اختياري): المجلد العامل للأمر
- allowed_tools (list[str], اختياري): قائمة بأسماء الأدوات المسموح بها من هذا الخادم
- لخوادم SSE:
- url (str): عنوان URL لخادم SSE
- headers (dict[str, Any], اختياري): رؤوس لاتصال SSE
- timeout (float, اختياري): مهلة الاتصال
- sse_read_timeout (float, اختياري): مهلة قراءة SSE
- allowed_tools (list[str], اختياري): قائمة بأسماء الأدوات المسموح بها من هذا الخادم
- لخوادم StreamableHTTP:
- url (str): عنوان خادم StreamableHTTP
- headers (dict[str, Any], اختياري): رؤوس لاتصال StreamableHTTP
- timeout (timedelta، اختياري): مهلة الاتصال
- sse_read_timeout (timedelta, اختياري): مهلة قراءة SSE
- terminate_on_close (bool, اختياري): ما إذا كان يجب إنهاء العملية عند الإغلاق
- allowed_tools (list[str], اختياري): قائمة بأسماء الأدوات المسموح بها من هذا الخادم
- لخوادم 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 )
المعاملات
- messages (
list[dict]) — قائمة من كائنات الرسائل تمثل سجل المحادثة - exit_loop_tools (
list[ChatCompletionInputTool]، اختياري) — قائمة بالأدوات التي يجب أن تُخرج المُولِّد عند استدعائها - exit_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، مثلmeta-llama/Meta-Llama-3-8B-Instructأو عنوان 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، اختياري) — موجّه النظام (system prompt) الذي سيُستخدم للوكيل. القيمة الافتراضية هي موجّه النظام الافتراضي الموجود فيconstants.py.
تنفيذ وكيل بسيط، وهو حلقة while بسيطة مبنية مباشرة فوق MCPClient.
هذه الفئة تجريبية وقد تخضع لتغييرات كاسرة في المستقبل دون إشعار مسبق.
تشغيل
< source >( user_input: strabort_event: Optional[asyncio.Event] = None )
شغّل الوكيل باستخدام مدخلات المستخدم المحددة.