跳到主要内容

项目级配置

除了全局配置,ccr 还支持为特定项目设置不同的路由规则。

项目配置文件

项目配置文件位于:

~/.claude/projects/<project-id>/claude-code-router.json

其中 <project-id> 是 Claude Code 项目的唯一标识符。

项目配置结构

{
"Router": {
"default": "openai,gpt-4",
"background": "openai,gpt-3.5-turbo"
}
}

查找项目 ID

方法一:使用 CLI

# 在项目目录中运行
ccr status

输出会显示当前项目 ID:

Project: my-project (abc123def456)

方法二:查看 Claude Code 配置

cat ~/.claude.json

找到你的项目 ID:

{
"projects": {
"abc123def456": {
"path": "/path/to/your/project",
"name": "my-project"
}
}
}

创建项目配置

手动创建

# 创建项目配置目录
mkdir -p ~/.claude/projects/abc123def456

# 创建配置文件
cat > ~/.claude/projects/abc123def456/claude-code-router.json << 'EOF'
{
"Router": {
"default": "anthropic,claude-3-5-sonnet-20241022",
"background": "openai,gpt-3.5-turbo"
}
}
EOF

使用 ccr model 命令

# 在项目目录中运行
cd /path/to/your/project
ccr model --project

配置优先级

路由配置的优先级(从高到低):

  1. 自定义路由函数 (CUSTOM_ROUTER_PATH)
  2. 项目级配置 (~/.claude/projects/<id>/claude-code-router.json)
  3. 全局配置 (~/.claude-code-router/config.json)
  4. 内置路由规则

使用场景

场景一:不同项目使用不同模型

// Web 项目使用 GPT-4
~/.claude/projects/web-project-id/claude-code-router.json:
{
"Router": {
"default": "openai,gpt-4"
}
}

// AI 项目使用 Claude
~/.claude/projects/ai-project-id/claude-code-router.json:
{
"Router": {
"default": "anthropic,claude-3-5-sonnet-20241022"
}
}

场景二:测试项目使用低成本模型

~/.claude/projects/test-project-id/claude-code-router.json:
{
"Router": {
"default": "openai,gpt-3.5-turbo",
"background": "openai,gpt-3.5-turbo"
}
}

场景三:长上下文项目

~/.claude/projects/long-context-project-id/claude-code-router.json:
{
"Router": {
"default": "anthropic,claude-3-opus-20240229",
"longContext": "anthropic,claude-3-opus-20240229"
}
}

验证项目配置

# 查看当前项目使用的路由
ccr status

# 查看日志确认路由决策
tail -f ~/.claude-code-router/claude-code-router.log

删除项目配置

rm ~/.claude/projects/<project-id>/claude-code-router.json

删除后会回退到全局配置。

完整示例

假设你有两个项目:

全局配置(~/.claude-code-router/config.json

{
"Providers": [
{
"name": "openai",
"baseUrl": "https://api.openai.com/v1",
"apiKey": "$OPENAI_API_KEY",
"models": ["gpt-4", "gpt-3.5-turbo"]
},
{
"name": "anthropic",
"baseUrl": "https://api.anthropic.com/v1",
"apiKey": "$ANTHROPIC_API_KEY",
"models": ["claude-3-5-sonnet-20241022"]
}
],
"Router": {
"default": "openai,gpt-4",
"background": "openai,gpt-3.5-turbo"
}
}

Web 项目配置

{
"Router": {
"default": "openai,gpt-4"
}
}

AI 项目配置

{
"Router": {
"default": "anthropic,claude-3-5-sonnet-20241022",
"think": "anthropic,claude-3-5-sonnet-20241022"
}
}

这样:

  • Web 项目使用 GPT-4
  • AI 项目使用 Claude
  • 所有项目的后台任务使用 GPT-3.5-turbo(继承全局配置)