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

147 lines (146 loc) • 13 kB
{ "$schema": "./provider-catalog.schema.json", "id": "modelscope", "displayName": "ModelScope", "aliases": [], "tier": 2, "wire": { "baseURL": "https://api-inference.modelscope.cn/v1" }, "models": { "default": "Qwen/Qwen3.5-35B-A3B", "fallbacks": [ "Qwen/Qwen3.5-27B", "deepseek-ai/DeepSeek-V4-Pro-0813", "ZhipuAI/GLM-5.2" ], "fallbackModelName": "Qwen/Qwen3.5-27B", "defaultContextWindow": 32768, "defaultMaxOutputTokens": 4096, "catalog": { "Qwen/Qwen3.5-35B-A3B": { "vision": true, "status": "production", "description": "NeuroLink default. The model id used in the intro page's OpenAI-compatible chat example (client.chat.completions.create with stream=True), in its Anthropic-compatible streaming and non-streaming examples, and in its Vision Models example, which sends a content part of type image_url (https://modelscope.cn/docs/model-service/API-Inference/intro); vision is true because that example calls this id with an image_url. Listed on the unauthenticated GET https://api-inference.modelscope.cn/v1/models (2026-09-29, 35 models) roster." }, "Qwen/Qwen3.5-27B": { "vision": true, "status": "production", "description": "Fallback. Named in the Responses API example of the Chinese-language intro page (client.responses.create with model=\"Qwen/Qwen3.5-27B\", read from https://resouces.modelscope.cn/document/docdata/2026-9-28_15-49-CN/dist/model-service/API-Inference/intro/intro_CN.md) and in the examples of the LangChain integration page (https://modelscope.cn/docs/ecosystem-integrations/api-usage/langchain, Chinese text read from the docs site's document file). The English intro page (https://resouces.modelscope.cn/document/docdata/2026-9-28_15-50-EN/dist/model-service/API-Inference/intro/intro_EN.md) says \"integrated models like Qwen3.5 that support vision\". ModelScope's public model API (unauthenticated GET https://www.modelscope.cn/api/v1/models/Qwen/Qwen3.5-27B, 2026-09-29) lists its task as image-text-to-text. The vision field is true on that basis. Listed on the unauthenticated GET https://api-inference.modelscope.cn/v1/models (2026-09-29, 35 models) roster." }, "deepseek-ai/DeepSeek-V4-Pro-0813": { "vision": false, "status": "production", "description": "Fallback. ModelScope's public model API (unauthenticated GET https://www.modelscope.cn/api/v1/models/deepseek-ai/DeepSeek-V4-Pro-0813, 2026-09-29) lists its task as text-generation. Listed on the unauthenticated GET https://api-inference.modelscope.cn/v1/models (2026-09-29, 35 models) roster." }, "ZhipuAI/GLM-5.2": { "vision": false, "status": "production", "description": "Fallback. ModelScope's public model API (unauthenticated GET https://www.modelscope.cn/api/v1/models/ZhipuAI/GLM-5.2, 2026-09-29) lists its task as text-generation. Listed on the unauthenticated GET https://api-inference.modelscope.cn/v1/models (2026-09-29, 35 models) roster." }, "Qwen/Qwen3.5-397B-A17B": { "vision": true, "status": "production", "description": "The English intro page (https://resouces.modelscope.cn/document/docdata/2026-9-28_15-50-EN/dist/model-service/API-Inference/intro/intro_EN.md) says \"integrated models like Qwen3.5 that support vision\". ModelScope's public model API (unauthenticated GET https://www.modelscope.cn/api/v1/models/Qwen/Qwen3.5-397B-A17B, 2026-09-29) lists its task as image-text-to-text. The vision field is true on that basis. Listed on the unauthenticated GET https://api-inference.modelscope.cn/v1/models (2026-09-29, 35 models) roster." }, "Qwen/Qwen3.5-122B-A10B": { "vision": true, "status": "production", "description": "The English intro page (https://resouces.modelscope.cn/document/docdata/2026-9-28_15-50-EN/dist/model-service/API-Inference/intro/intro_EN.md) says \"integrated models like Qwen3.5 that support vision\". ModelScope's public model API (unauthenticated GET https://www.modelscope.cn/api/v1/models/Qwen/Qwen3.5-122B-A10B, 2026-09-29) lists its task as image-text-to-text. The vision field is true on that basis. Listed on the unauthenticated GET https://api-inference.modelscope.cn/v1/models (2026-09-29, 35 models) roster." }, "deepseek-ai/DeepSeek-V4-Flash-0731": { "vision": false, "status": "production", "description": "ModelScope's public model API (unauthenticated GET https://www.modelscope.cn/api/v1/models/deepseek-ai/DeepSeek-V4-Flash-0731, 2026-09-29) lists its task as text-generation. Listed on the unauthenticated GET https://api-inference.modelscope.cn/v1/models (2026-09-29, 35 models) roster." }, "MiniMax/MiniMax-M3": { "vision": true, "status": "production", "description": "ModelScope's public model API (unauthenticated GET https://www.modelscope.cn/api/v1/models/MiniMax/MiniMax-M3, 2026-09-29) lists its task as image-text-to-text. The vision field is true on that basis. Listed on the unauthenticated GET https://api-inference.modelscope.cn/v1/models (2026-09-29, 35 models) roster." }, "stepfun-ai/Step-3.7-Flash": { "vision": true, "status": "production", "description": "ModelScope's public model API (unauthenticated GET https://www.modelscope.cn/api/v1/models/stepfun-ai/Step-3.7-Flash, 2026-09-29) lists its task as image-text-to-text. The vision field is true on that basis. Listed on the unauthenticated GET https://api-inference.modelscope.cn/v1/models (2026-09-29, 35 models) roster." }, "Qwen/Qwen3.8-27B": { "vision": true, "status": "production", "description": "ModelScope's public model API (unauthenticated GET https://www.modelscope.cn/api/v1/models/Qwen/Qwen3.8-27B, 2026-09-29) lists its task as image-text-to-text. The vision field is true on that basis. Listed on the unauthenticated GET https://api-inference.modelscope.cn/v1/models (2026-09-29, 35 models) roster." }, "mistralai/Mistral-Large-Instruct-2407": { "vision": false, "status": "production", "description": "ModelScope's public model API (unauthenticated GET https://www.modelscope.cn/api/v1/models/mistralai/Mistral-Large-Instruct-2407, 2026-09-29) lists its task as text-generation. Listed on the unauthenticated GET https://api-inference.modelscope.cn/v1/models (2026-09-29, 35 models) roster." }, "Qwen/Qwen3.8-Flash-Next": { "vision": true, "status": "production", "description": "ModelScope's public model API (unauthenticated GET https://www.modelscope.cn/api/v1/models/Qwen/Qwen3.8-Flash-Next, 2026-09-29) lists its task as image-text-to-text. The vision field is true on that basis. Listed on the unauthenticated GET https://api-inference.modelscope.cn/v1/models (2026-09-29, 35 models) roster." } }, "topModels": [ "Qwen/Qwen3.5-35B-A3B", "Qwen/Qwen3.5-27B", "deepseek-ai/DeepSeek-V4-Pro-0813", "ZhipuAI/GLM-5.2", "Qwen/Qwen3.5-397B-A17B", "Qwen/Qwen3.5-122B-A10B", "deepseek-ai/DeepSeek-V4-Flash-0731", "MiniMax/MiniMax-M3", "stepfun-ai/Step-3.7-Flash", "Qwen/Qwen3.8-27B", "mistralai/Mistral-Large-Instruct-2407", "Qwen/Qwen3.8-Flash-Next" ], "visionModel": "Qwen/Qwen3.5-35B-A3B" }, "capabilities": { "text": true, "streaming": true, "tools": false, "toolsWithStreaming": false, "structuredOutput": false, "structuredOutputWithTools": false, "embeddings": false, "thinking": true }, "errorRules": [ { "status": 401, "class": "authentication", "message": "Invalid or missing ModelScope access token (HTTP 401). Check {apiKeyEnvVar}. Get one at {setupUrl}" } ], "setup": { "url": "https://modelscope.cn/my/myaccesstoken", "apiKeyFormat": null, "billingPolicy": "free-tier", "instructions": [ "1. Visit: https://modelscope.cn/home and register or log in with the \"Log in/Register\" button in the top right corner (https://modelscope.cn/docs/accounts/registration)", "2. Bind an Alibaba Cloud account and complete real-name verification: \"After account registration, you must bind your Alibaba Cloud account and complete real-name verification before using API-Inference.\" (https://modelscope.cn/docs/model-service/API-Inference/intro; binding steps: https://modelscope.cn/docs/accounts/aliyun-binding-and-authorization)", "3. Create an access token at https://modelscope.cn/my/myaccesstoken; the token guide (https://modelscope.cn/docs/accounts/token) has you specify a validity period, \"Long-term use\" or \"Short-term use\"", "4. Free for registered users: \"API-Inference is provided free of charge to registered ModelScope users.\" (intro page); the limits page (https://modelscope.cn/docs/model-service/API-Inference/limits) states that API Inference \"implements certain limits on usage quotas and concurrency\"", "5. Set {apiKeyEnvVar} in your .env file" ], "description": "OpenAI-compatible endpoint at https://api-inference.modelscope.cn/v1. The intro page (https://modelscope.cn/docs/model-service/API-Inference/intro) says \"ModelScope's API-Inference currently provides OpenAI API-compatible interfaces for large language models.\" and its example sets base_url=\"https://api-inference.modelscope.cn/v1/\". The docs text was read on 2026-09-29 from the raw document files the docs site loads (English build 2026-9-28_15-50-EN, for example https://resouces.modelscope.cn/document/docdata/2026-9-28_15-50-EN/dist/model-service/API-Inference/intro/intro_EN.md; Chinese build 2026-9-28_15-49-CN where noted), because the rendered pages at modelscope.cn are a JavaScript shell. This entry is docs- and roster-verified, not yet live-verified: the model ids come from an unauthenticated GET of https://api-inference.modelscope.cn/v1/models (HTTP 200, 35 models, 2026-09-29) and no API key was used. Each model's task was read on 2026-09-29 from an unauthenticated GET of https://www.modelscope.cn/api/v1/models/<model id> (the Data.Tasks field). capabilities.thinking is true: ModelScope's Codewhale integration page (https://modelscope.cn/docs/ecosystem-integrations/api-usage/codewhale, English build file ecosystem-integrations/api-usage/codewhale/codewhale_EN.md) says \"Qwen and GLM series models support `reasoning_content` streaming output\". models.defaultContextWindow (32,768) and models.defaultMaxOutputTokens (4,096) are placeholders. errorRules holds one 401 rule taken from an unauthenticated GET of https://api-inference.modelscope.cn/v1/tasks/abc, which answered HTTP 401 with the JSON body {\"errors\":{\"message\":\"Authentication failed, please make sure that a valid ModelScope token is supplied.\"},\"request_id\":\"...\"}." }, "evidence": { "rosterVerified": { "date": "2026-09-29", "status": 200, "method": "unauthenticated GET https://api-inference.modelscope.cn/v1/models — 35 models; credential-free, no key used" }, "authProbe": { "date": "2026-09-29", "status": 401, "method": "unauthenticated GET https://api-inference.modelscope.cn/v1/tasks/abc (the AIGC task-polling route used in the intro page's example, not chat/completions) — JSON body {\"errors\":{\"message\":\"Authentication failed, please make sure that a valid ModelScope token is supplied.\"},\"request_id\":\"...\"}; an unauthenticated GET of https://api-inference.modelscope.cn/v1/chat/completions answered HTTP 404 with the plain-text body \"404 page not found\"; credential-free, no key used" }, "billingProbe": { "date": "2026-09-29", "method": "public docs pages https://modelscope.cn/docs/model-service/API-Inference/intro (\"API-Inference is provided free of charge to registered ModelScope users.\") and https://modelscope.cn/docs/model-service/API-Inference/limits (\"free of charge\"), English text read from the docs site's document files; credential-free" }, "liveMatrix": null, "addedInPR": "https://github.com/juspay/neurolink/pull/1862" } }