UNPKG

@juspay/neurolink

Version:

The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002

407 lines (406 loc) • 19.3 kB
{ "$schema": "./provider-catalog.schema.json", "id": "huggingface", "displayName": "HuggingFace", "enumTypeName": "HuggingFaceModels", "aliases": ["hf"], "credentialsKey": "huggingFace", "tier": 2, "wire": { "baseURL": "https://router.huggingface.co/v1", "apiKeyFallbackEnvVars": ["HF_TOKEN"] }, "models": { "default": "Qwen/Qwen2.5-72B-Instruct", "fallbackModelName": "meta-llama/Llama-3.1-8B-Instruct", "fallbacks": ["meta-llama/Llama-3.1-8B-Instruct"], "testModel": "meta-llama/Llama-3.1-8B-Instruct", "topModels": [ "meta-llama/Llama-3.3-70B-Instruct", "zai-org/GLM-5", "deepseek-ai/DeepSeek-R1", "Qwen/Qwen2.5-72B-Instruct", "microsoft/phi-4", "google/gemma-3-27b-it" ], "defaultContextWindow": 32000, "defaultMaxOutputTokens": 32000, "catalog": { "meta-llama/Llama-3.3-70B-Instruct": { "vision": false, "status": "production", "description": "Recommended - Latest Llama", "enumMember": "LLAMA_3_3_70B_INSTRUCT" }, "meta-llama/Llama-3.2-1B": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "LLAMA_3_2_1B" }, "meta-llama/Llama-3.2-3B-Instruct": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "LLAMA_3_2_3B_INSTRUCT" }, "meta-llama/Llama-3.1-8B": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "LLAMA_3_1_8B" }, "meta-llama/Llama-3.1-8B-Instruct": { "vision": false, "status": "production", "description": "Llama 3.1 8B, tool-calling capable", "enumMember": "LLAMA_3_1_8B_INSTRUCT" }, "meta-llama/Llama-3.1-70B-Instruct": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "LLAMA_3_1_70B_INSTRUCT" }, "meta-llama/Llama-3.1-405B-Instruct": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "LLAMA_3_1_405B_INSTRUCT" }, "meta-llama/Meta-Llama-3-8B-Instruct": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "LLAMA_3_8B_INSTRUCT" }, "meta-llama/Meta-Llama-3-70B-Instruct": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "LLAMA_3_70B_INSTRUCT" }, "mistralai/Mistral-Large-3-675B-Instruct-2512": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "MISTRAL_LARGE_3_675B" }, "mistralai/Mistral-Small-3.1-24B-Instruct-2503": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "MISTRAL_SMALL_3_1_24B" }, "mistralai/Mistral-Small-24B-Instruct-2501": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "MISTRAL_SMALL_24B" }, "mistralai/Mistral-7B-Instruct-v0.2": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "MISTRAL_7B_INSTRUCT" }, "mistralai/Mixtral-8x7B-Instruct-v0.1": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "MIXTRAL_8X7B_INSTRUCT" }, "mistralai/Devstral-2": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "DEVSTRAL_2" }, "Qwen/Qwen2.5-7B": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "QWEN_2_5_7B" }, "Qwen/Qwen2.5-32B": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "QWEN_2_5_32B" }, "Qwen/Qwen2.5-72B-Instruct": { "vision": false, "status": "production", "description": "Qwen flagship", "enumMember": "QWEN_2_5_72B_INSTRUCT" }, "Qwen/Qwen2.5-Coder-7B": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "QWEN_2_5_CODER_7B" }, "Qwen/Qwen2.5-Coder-32B-Instruct": { "vision": false, "status": "production", "description": "Qwen 2.5 Coder — Qwen2.5-Coder-32B-Instruct", "enumMember": "QWEN_2_5_CODER_32B_INSTRUCT" }, "Qwen/QwQ-32B": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "QWQ_32B" }, "Qwen/Qwen2.5-VL-32B-Instruct": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "QWEN_2_5_VL_32B" }, "deepseek-ai/DeepSeek-R1": { "vision": false, "status": "production", "description": "Advanced reasoning", "enumMember": "DEEPSEEK_R1" }, "deepseek-ai/DeepSeek-V3": { "vision": false, "status": "production", "description": "DeepSeek — DeepSeek-V3", "enumMember": "DEEPSEEK_V3" }, "deepseek-ai/DeepSeek-V3.1": { "vision": false, "status": "production", "description": "DeepSeek — DeepSeek-V3.1", "enumMember": "DEEPSEEK_V3_1" }, "deepseek-ai/DeepSeek-V3.2-Exp": { "vision": false, "status": "production", "description": "DeepSeek — DeepSeek-V3.2-Exp", "enumMember": "DEEPSEEK_V3_2_EXP" }, "microsoft/phi-4": { "vision": false, "status": "production", "description": "Microsoft Phi-4", "enumMember": "PHI_4" }, "microsoft/Phi-4-reasoning": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "PHI_4_REASONING" }, "microsoft/Phi-4-mini-instruct": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "PHI_4_MINI_INSTRUCT" }, "microsoft/Phi-4-mini-reasoning": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "PHI_4_MINI_REASONING" }, "microsoft/Phi-3-mini-128k-instruct": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "PHI_3_MINI_128K_INSTRUCT" }, "microsoft/Phi-3-vision-128k-instruct": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "PHI_3_VISION_128K_INSTRUCT" }, "google/gemma-3-270m": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "GEMMA_3_270M" }, "google/gemma-3-1b-it": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "GEMMA_3_1B_IT" }, "google/gemma-3-4b-it": { "vision": false, "status": "production", "description": "Google Gemma 3 — gemma-3-4b-it", "enumMember": "GEMMA_3_4B_IT" }, "google/gemma-3-12b-it": { "vision": false, "status": "production", "description": "Google Gemma 3 — gemma-3-12b-it", "enumMember": "GEMMA_3_12B_IT" }, "google/gemma-3-27b-it": { "vision": false, "status": "production", "description": "Google Gemma 3", "enumMember": "GEMMA_3_27B_IT" }, "google/gemma-2-9b": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "GEMMA_2_9B" }, "google/gemma-2-27b": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "GEMMA_2_27B" }, "google/gemma-2b": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "GEMMA_2B" }, "google/gemma-7b": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "GEMMA_7B" }, "tiiuae/falcon-40b-instruct": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "FALCON_40B_INSTRUCT" }, "tiiuae/falcon-180B-chat": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "FALCON_180B_CHAT" }, "bigcode/starcoder2-15b": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "STARCODER2_15B" }, "codellama/CodeLlama-34b-Instruct-hf": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "CODELLAMA_34B_INSTRUCT" }, "bigscience/bloom-7b1": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "BLOOM_7B1" }, "bigscience/bloom-1b3": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "BLOOM_1B3" }, "zai-org/GLM-5": { "vision": false, "status": "production", "description": "Z.AI GLM-5 (February 2026) — GLM-5", "enumMember": "GLM_5" }, "Qwen/Qwen3.5-397B-A17B": { "vision": false, "status": "production", "description": "Qwen 3.5 Multimodal (February 2026) — Qwen3.5-397B-A17B", "enumMember": "QWEN_3_5_397B_A17B" }, "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "NEMOTRON_3_NANO_30B" }, "HuggingFaceTB/SmolLM3-3B": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "SMOLLM3_3B" }, "tiiuae/Falcon3-7B-Instruct": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "FALCON_3_7B_INSTRUCT" }, "tiiuae/Falcon3-10B-Instruct": { "vision": false, "status": "retired", "description": "Retired 2026-09 — absent from the router's roster and rejected by a live call", "enumMember": "FALCON_3_10B_INSTRUCT" } } }, "capabilities": { "text": true, "streaming": true, "tools": "model-dependent", "toolsWithStreaming": false, "structuredOutput": false, "structuredOutputWithTools": false, "embeddings": false, "thinking": false }, "errorRules": [ { "pattern": "API_TOKEN_INVALID|Invalid token", "class": "authentication", "message": "Invalid HuggingFace API token. Please check your {apiKeyEnvVar} environment variable." }, { "pattern": "rate limit", "class": "rate-limit", "message": "HuggingFace rate limit exceeded. Consider using a paid plan or try again later." }, { "pattern": "model.*not found|not found.*model", "class": "invalid-model", "message": "HuggingFace model '{model}' not found.\n\nSuggestions:\n1. Check model name spelling\n2. Ensure an Inference Provider serves the model (https://huggingface.co/inference/models)\n3. For tool calling, use: meta-llama/Llama-3.3-70B-Instruct, zai-org/GLM-5 or Qwen/Qwen3.5-397B-A17B" }, { "pattern": "\\b(?:(?:tool|function)s?(?:\\s*/\\s*(?:tool|function)s?)?[ _-]?call(?:s|ing)?|tool_choice|tools? (?:is|are) not supported|(?:does|do) not support tools?)\\b", "patternStatuses": [400, 422], "class": "provider", "message": "HuggingFace tool calling error: {message}\n\nNotes:\n1. Ensure you're using a tool-capable model, e.g. meta-llama/Llama-3.3-70B-Instruct, zai-org/GLM-5 or Qwen/Qwen3.5-397B-A17B\n2. Check that your model supports function calling\n3. Verify tool schema format is correct" } ], "timeouts": { "generateMs": 120000, "streamMs": 120000 }, "autoSelectPriority": 10, "setup": { "url": "https://huggingface.co/settings/tokens", "apiKeyFormat": "^hf_[A-Za-z0-9]{34,}$", "billingPolicy": "free-tier", "instructions": [ "1. Visit: https://huggingface.co/settings/tokens", "2. Create or sign in to your HuggingFace account", "3. Generate a new access token", "4. Set {apiKeyEnvVar} in your .env file (HF_TOKEN also accepted)" ] }, "evidence": { "rosterVerified": { "date": "2026-09-24", "method": "Live against router.huggingface.co on 2026-09-24. GET /v1/models returned 138 models; each of the 53 catalog ids was also sent a real chat call. 39 ids are absent from the roster AND rejected with 400 ('does not exist' / 'not supported by any provider'), so they are marked retired and keep their enumMember; the other 14 are on the roster and answered 402 (the test account's monthly credits are spent), which is a billing block, not a rejection, so they stay production. No id had the two signals disagree. topModels swaps the retired Mistral-Large-3 for zai-org/GLM-5, which is on the roster. billingPolicy is free-tier per https://huggingface.co/docs/inference-providers/pricing (free users get monthly credits, no card). apiKeyFormat accepts the hf_ + 34 characters a real token has; the previous hf_ + 37 pattern rejected it. structuredOutput, toolsWithStreaming and per-model vision are left unchanged: /v1/models reports them per serving provider, and the 402 prevented a live round trip that would prove them." }, "liveMatrix": null, "addedInPR": "TBD — integration-tested in a worktree before a PR was opened" } }