@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
JSON
{
"$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"
}
}