Files
openclaw/extensions/qianfan/openclaw.plugin.json
Peter Steinberger 99ec30b44b feat(plugins): catch code-mode drift between catalogs shipping the same model (#115183)
* feat(plugins): catch code-mode drift between catalogs sharing one model

Adds a contract test that groups bundled catalog rows by shared upstream
model and requires every row in a group to declare compat.codeMode once any
sibling does. Rows sharing a model id group automatically; rows under
different ids opt in with the new manifest-only `upstreamModel` marker.

Moves the kimi catalog into its manifest so the scan can see it, and records
the tier reseller catalogs were silently missing as explicit "capable".

* docs: regenerate docs map for the shared-model code-mode section
2026-07-28 08:52:21 -04:00

196 lines
5.4 KiB
JSON

{
"id": "qianfan",
"icon": "https://cdn.simpleicons.org/baidu",
"activation": {
"onStartup": false
},
"enabledByDefault": true,
"providers": ["qianfan"],
"setup": {
"providers": [
{
"id": "qianfan",
"authMethods": ["api-key"],
"envVars": ["QIANFAN_API_KEY"]
}
]
},
"modelCatalog": {
"providers": {
"qianfan": {
"baseUrl": "https://qianfan.baidubce.com/v2",
"api": "openai-completions",
"models": [
{
"id": "deepseek-v4-pro",
"name": "DeepSeek V4 Pro",
"input": ["text"],
"reasoning": true,
"contextWindow": 1000000,
"maxTokens": 393216,
"cost": {
"input": 1.771957,
"output": 3.543915,
"cacheRead": 0.147663,
"cacheWrite": 0
},
"compat": {
"codeMode": "capable"
}
},
{
"id": "ernie-5.1",
"name": "ERNIE 5.1",
"input": ["text"],
"reasoning": false,
"contextWindow": 128000,
"maxTokens": 65536,
"cost": {
"input": 0.590652,
"output": 2.657936,
"cacheRead": 0,
"cacheWrite": 0,
"tieredPricing": [
{
"input": 0.590652,
"output": 2.657936,
"cacheRead": 0,
"cacheWrite": 0,
"range": [0, 32001]
},
{
"input": 0.885979,
"output": 3.248589,
"cacheRead": 0,
"cacheWrite": 0,
"range": [32001]
}
]
}
},
{
"id": "ernie-5.0",
"name": "ERNIE 5.0",
"input": ["text", "image"],
"reasoning": true,
"contextWindow": 128000,
"maxTokens": 65536,
"cost": {
"input": 0.885979,
"output": 3.543915,
"cacheRead": 0,
"cacheWrite": 0,
"tieredPricing": [
{
"input": 0.885979,
"output": 3.543915,
"cacheRead": 0,
"cacheWrite": 0,
"range": [0, 32001]
},
{
"input": 1.476631,
"output": 5.906525,
"cacheRead": 0,
"cacheWrite": 0,
"range": [32001]
}
]
}
},
{
"id": "deepseek-v3.2",
"name": "DeepSeek V3.2",
"input": ["text"],
"reasoning": false,
"contextWindow": 128000,
"maxTokens": 32768,
"cost": {
"input": 0.295326,
"output": 0.442989,
"cacheRead": 0.059065,
"cacheWrite": 0,
"tieredPricing": [
{
"input": 0.295326,
"output": 0.442989,
"cacheRead": 0.059065,
"cacheWrite": 0,
"range": [0, 32001]
},
{
"input": 0.590652,
"output": 0.885979,
"cacheRead": 0.059065,
"cacheWrite": 0,
"range": [32001]
}
]
},
"status": "deprecated",
"statusReason": "Still available by exact reference; use deepseek-v4-pro for new Qianfan setups.",
"replacedBy": "deepseek-v4-pro"
},
{
"id": "ernie-5.0-thinking-preview",
"name": "ERNIE-5.0-Thinking-Preview",
"input": ["text", "image"],
"reasoning": true,
"contextWindow": 128000,
"maxTokens": 65536,
"cost": {
"input": 0.885979,
"output": 3.543915,
"cacheRead": 0,
"cacheWrite": 0,
"tieredPricing": [
{
"input": 0.885979,
"output": 3.543915,
"cacheRead": 0,
"cacheWrite": 0,
"range": [0, 32001]
},
{
"input": 1.476631,
"output": 5.906525,
"cacheRead": 0,
"cacheWrite": 0,
"range": [32001]
}
]
},
"status": "deprecated",
"statusReason": "Still available by exact reference; use the stable ernie-5.0 id for new Qianfan setups.",
"replacedBy": "ernie-5.0"
}
]
}
},
"discovery": {
"qianfan": "refreshable"
}
},
"providerAuthChoices": [
{
"provider": "qianfan",
"method": "api-key",
"choiceId": "qianfan-api-key",
"appGuidedSecret": true,
"choiceLabel": "Qianfan API key",
"groupId": "qianfan",
"groupLabel": "Qianfan",
"groupHint": "API key",
"optionKey": "qianfanApiKey",
"cliFlag": "--qianfan-api-key",
"cliOption": "--qianfan-api-key <key>",
"cliDescription": "QIANFAN API key"
}
],
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}