Files
claude-code-router/examples/preset-manifest-example.json
musistudio bd55450b1d change doc
2025-12-28 13:43:25 +08:00

269 lines
6.4 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"name": "multi-provider-example",
"version": "1.0.0",
"description": "多Provider配置示例 - 支持OpenAI和DeepSeek切换",
"author": "CCR Team",
"keywords": ["openai", "deepseek", "multi-provider"],
"ccrVersion": "2.0.0",
"Providers": [
{
"name": "openai",
"api_base_url": "https://api.openai.com/v1",
"models": ["gpt-4o", "gpt-4o-mini", "gpt-3.5-turbo"]
},
{
"name": "deepseek",
"api_base_url": "https://api.deepseek.com",
"models": ["deepseek-v3", "deepseek-chat"]
}
],
"schema": [
{
"id": "primaryProvider",
"type": "select",
"label": "主要Provider",
"prompt": "选择您主要使用的LLM提供商",
"options": {
"type": "providers"
},
"required": true,
"defaultValue": "openai"
},
{
"id": "apiKey",
"type": "password",
"label": "API Key",
"prompt": "请输入您的API Key将从环境变量或安全存储中读取",
"placeholder": "sk-...",
"required": true,
"when": {
"field": "primaryProvider",
"operator": "exists"
}
},
{
"id": "customBaseUrl",
"type": "input",
"label": "自定义Base URL",
"prompt": "如果使用代理或自定义端点请输入Base URL留空使用默认值",
"placeholder": "https://api.openai.com/v1",
"required": false,
"when": {
"field": "primaryProvider",
"operator": "exists"
}
},
{
"id": "defaultModel",
"type": "select",
"label": "默认模型",
"prompt": "选择默认使用的模型",
"options": {
"type": "models",
"providerField": "{{primaryProvider}}"
},
"required": true,
"defaultValue": "gpt-4o",
"when": {
"field": "primaryProvider",
"operator": "eq",
"value": "openai"
}
},
{
"id": "backgroundModel",
"type": "select",
"label": "后台任务模型",
"prompt": "用于后台任务的轻量级模型",
"options": {
"type": "models",
"providerField": "{{primaryProvider}}"
},
"required": false,
"when": {
"field": "primaryProvider",
"operator": "exists"
}
},
{
"id": "enableProxy",
"type": "confirm",
"label": "启用代理",
"prompt": "是否通过代理访问API",
"defaultValue": false
},
{
"id": "proxyUrl",
"type": "input",
"label": "代理地址",
"prompt": "输入代理服务器地址",
"placeholder": "http://127.0.0.1:7890",
"required": true,
"when": {
"field": "enableProxy",
"operator": "eq",
"value": true
}
},
{
"id": "maxTokens",
"type": "number",
"label": "最大Token数",
"prompt": "设置单次请求的最大token数量",
"min": 100,
"max": 128000,
"defaultValue": 4096,
"required": false
},
{
"id": "timeout",
"type": "number",
"label": "请求超时(秒)",
"prompt": "API请求超时时间",
"min": 10,
"max": 300,
"defaultValue": 60,
"required": false
},
{
"id": "enableFeatures",
"type": "multiselect",
"label": "启用功能",
"prompt": "选择要启用的功能",
"options": {
"type": "static",
"options": [
{
"label": "流式输出",
"value": "stream",
"description": "实时显示AI响应"
},
{
"label": "工具调用",
"value": "tools",
"description": "启用Function Calling功能"
},
{
"label": "长上下文",
"value": "longContext",
"description": "支持长文本处理"
},
{
"label": "思维链",
"value": "think",
"description": "在思考模式中使用"
}
]
},
"defaultValue": ["stream", "tools"],
"required": false
},
{
"id": "advancedMode",
"type": "confirm",
"label": "高级模式",
"prompt": "启用高级配置选项?",
"defaultValue": false
},
{
"id": "temperature",
"type": "number",
"label": "Temperature",
"prompt": "控制生成随机性0-2值越高越随机",
"min": 0,
"max": 2,
"defaultValue": 0.7,
"required": false,
"when": {
"field": "advancedMode",
"operator": "eq",
"value": true
}
},
{
"id": "logLevel",
"type": "select",
"label": "日志级别",
"prompt": "设置详细的日志级别",
"options": {
"type": "static",
"options": [
{
"label": "错误",
"value": "error"
},
{
"label": "警告",
"value": "warn"
},
{
"label": "信息",
"value": "info"
},
{
"label": "调试",
"value": "debug"
}
]
},
"defaultValue": "info",
"required": false,
"when": {
"field": "advancedMode",
"operator": "eq",
"value": true
}
}
],
"template": {
"Providers": [
{
"name": "{{primaryProvider}}",
"api_base_url": "{{customBaseUrl}}",
"api_key": "{{apiKey}}",
"models": ["{{defaultModel}}", "{{backgroundModel}}"]
}
],
"Router": {
"default": "{{primaryProvider}}/{{defaultModel}}",
"background": "{{backgroundModel}}",
"think": "{{primaryProvider}}/{{defaultModel}}"
},
"PROXY_URL": "{{proxyUrl}}",
"API_TIMEOUT_MS": 60000,
"LOG_LEVEL": "info"
},
"configMappings": [
{
"target": "Providers[0].api_base_url",
"value": "{{customBaseUrl}}",
"when": {
"field": "customBaseUrl",
"operator": "exists"
}
},
{
"target": "PROXY_URL",
"value": "{{proxyUrl}}",
"when": {
"field": "enableProxy",
"operator": "eq",
"value": true
}
},
{
"target": "API_TIMEOUT_MS",
"value": 60000
},
{
"target": "LOG_LEVEL",
"value": "{{logLevel}}",
"when": {
"field": "advancedMode",
"operator": "eq",
"value": true
}
}
]
}