Files
claude-code-router/docs/i18n/zh-CN/docusaurus-plugin-content-docs/cli/config/project-level.md
musistudio bd55450b1d change doc
2025-12-28 13:43:25 +08:00

3.6 KiB
Raw Blame History

项目级配置

除了全局配置,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继承全局配置