Back to Claude Code Router

Preset 示例说明

examples/README.md

2.0.03.9 KB
Original Source

Preset 示例说明

本目录包含 CCR 预设配置的示例文件。

示例文件

1. simple-preset-example.json - 简单示例

适合初学者,展示了基本的动态配置功能:

  • 密码输入(API Key)
  • 单选下拉框(选择模型)
  • 确认框(是否使用代理)
  • 条件显示(只有选择使用代理时才显示代理地址输入)

使用场景:快速配置单个 Provider

2. preset-manifest-example.json - 完整示例

展示了所有高级功能:

  • 多种输入类型(password, select, confirm, number, multiselect)
  • 动态选项(从 Providers 配置中提取)
  • 复杂条件逻辑(when 条件)
  • 模板变量替换({{variable}})
  • 配置映射(configMappings)

使用场景:生产环境的完整配置

3. dynamic-preset-example.json - 多Provider示例

展示了如何在多个 Provider 之间切换:

  • Provider 选择器
  • 根据选择的 Provider 动态显示对应的模型选项
  • 代理配置
  • 高级功能开关

如何使用这些示例

方法1:直接复制到预设目录

bash
# 创建预设目录
mkdir -p ~/.claude-code-router/presets/my-preset

# 复制示例文件
cp simple-preset-example.json ~/.claude-code-router/presets/my-preset/manifest.json

# 应用预设
ccr my-preset

方法2:修改后使用

  1. 复制示例文件到本地
  2. 根据需要修改配置
  3. 使用 CLI 安装:
bash
ccr preset install ./simple-preset-example.json --name my-preset

Schema 字段类型说明

类型说明适用场景
password密码输入API Key、密钥等敏感信息
input单行文本Base URL、端点地址
number数字输入超时时间、Token数量
select单选Provider选择、模型选择
multiselect多选功能开关、标签选择
confirm确认框是否启用某功能
editor多行文本自定义配置、脚本

条件运算符

运算符说明示例
eq等于当 provider == "openai" 时显示
ne不等于当 mode != "simple" 时显示
exists字段存在当 apiKey 有值时显示
gt/lt大于/小于当 timeout > 30 时显示

动态选项类型

static - 静态选项

json
"options": {
  "type": "static",
  "options": [
    {"label": "选项1", "value": "value1"},
    {"label": "选项2", "value": "value2"}
  ]
}

providers - 从 Providers 配置提取

json
"options": {
  "type": "providers"
}

自动从 Providers 数组中提取 name 作为选项。

models - 从指定 Provider 的 models 提取

json
"options": {
  "type": "models",
  "providerField": "{{selectedProvider}}"
}

根据用户选择的 Provider,动态显示该 Provider 的 models。

模板变量

使用 {{变量名}} 语法在 template 中引用用户输入:

json
"template": {
  "Providers": [
    {
      "name": "{{providerName}}",
      "api_key": "{{apiKey}}"
    }
  ]
}

配置映射

对于复杂的配置需求,使用 configMappings 精确控制值的位置:

json
"configMappings": [
  {
    "target": "Providers[0].api_key",
    "value": "{{apiKey}}"
  },
  {
    "target": "PROXY_URL",
    "value": "{{proxyUrl}}",
    "when": {
      "field": "useProxy",
      "operator": "eq",
      "value": true
    }
  }
]

最佳实践

  1. 提供默认值:为非必填项设置合理的 defaultValue
  2. 清晰的标签:使用用户友好的 labelprompt
  3. 条件显示:使用 when 避免显示无关选项
  4. 输入验证:使用 validatormin/max 确保输入有效
  5. 分组配置:相关字段使用相同的前缀(如 proxy*
  6. 版本管理:在 metadata 中记录版本和变更

更多帮助