AI开发环境构建方案

admin
2
2026-08-21

VS Code + Claude Code + DeepSeek + Docker
适用于 Windows 11 + WSL2 Debian 13 (Bookworm)

一、整体架构概览

┌─────────────────────────────────────────────────────────────────┐
│                     Windows 11 宿主机                          │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                 VS Code IDE                             │   │
│  │  ┌─────────────────────────────────────────────────┐   │   │
│  │  │  Claude Code 插件 + Claude CLI                 │   │   │
│  │  │  · 通过环境变量接入 DeepSeek API               │   │   │
│  │  │  · 加载 .claude/settings.json 开发准则         │   │   │
│  │  │  · 1M 超长上下文窗口                           │   │   │
│  │  └─────────────────────────────────────────────────┘   │   │
│  └─────────────────────────┬───────────────────────────────┘   │
│                            │ WSL2 挂载                        │
│  ┌─────────────────────────▼───────────────────────────────┐   │
│  │              WSL2 Debian 13 (开发环境)                  │   │
│  │  · Python 3.12 + 虚拟环境                              │   │
│  │  · Docker Engine (容器运行时)                          │   │
│  │  · 项目源代码 (/home/nerubian/workspace/novel-tool)    │   │
│  └─────────────────────────┬───────────────────────────────┘   │
│                            │                                 │
│  ┌─────────────────────────▼───────────────────────────────┐   │
│  │              Docker 镜像构建 (生产就绪)                  │   │
│  │  · python:3.12-slim 基础镜像                           │   │
│  │  · FastAPI + Uvicorn 应用                              │   │
│  └─────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘

二、分步构建流程

步骤 1:Windows 11 准备工作

1.1 启用 WSL2

# 以管理员身份运行 PowerShell
wsl --install
wsl --set-default-version 2

1.2 安装 Debian WSL2 发行版

# 在 Microsoft Store 搜索 "Debian" 安装,或通过命令行
wsl --install -d Debian

1.3 在 Windows 宿主机安装 VS Code

# 方式一:官网下载
# 访问 https://code.visualstudio.com/ 下载 Windows 版本安装包

# 方式二:使用 winget 安装
winget install Microsoft.VisualStudioCode

安装 VS Code 的 WSL 扩展

  • 打开 VS Code → 扩展商店 → 搜索 "WSL" → 安装 "WSL" 扩展(Microsoft 官方)
  • 后续可通过 code . 在 WSL2 Debian 中直接启动 VS Code
# 首先确认您的 Windows 用户名(在 Windows PowerShell 中执行 whoami 或查看 C:\Users\ 下的目录名)
# 假设您的用户名是 nerubian,则执行:

echo 'alias code="/mnt/c/Users/nerubian/AppData/Local/Programs/Microsoft\ VS\ Code/bin/code"' >> ~/.bashrc
source ~/.bashrc

# 然后再次尝试:
code .

步骤 2:WSL2 Debian 开发环境配置

操作位置:在 WSL2 Debian 终端中执行以下命令

2.1 系统更新与基础工具

首先配置国内镜像源(清华镜像):

sudo tee /etc/apt/sources.list << 'EOF'
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security/ bookworm-security main contrib non-free non-free-firmware
EOF

然后更新系统并安装基础工具:

sudo apt update && sudo apt upgrade -y
sudo apt install -y \
    curl wget git vim htop \
    build-essential libssl-dev \
    python3 python3-pip python3-venv \
    postgresql-client \
    ca-certificates gnupg lsb-release

其他设置

echo "alias ll='ls -alF'" >> ~/.bashrc
source ~/.bashrc
ll

2.2 安装和配置 SSH 服务

步骤 1:安装 OpenSSH Server
sudo apt install -y openssh-server
步骤 2:修改 SSH 配置
sudo nano /etc/ssh/sshd_config

找到并修改以下配置项(如果没有就添加):

Port 2222                 # 避免与 Windows 已有 SSH 冲突
PermitRootLogin no
PasswordAuthentication yes
PubkeyAuthentication yes
ClientAliveInterval 60
ClientAliveCountMax 3

保存并退出(Ctrl+O,回车,Ctrl+X)。

步骤 3:启动 SSH 服务
sudo service ssh start
sudo service ssh status
步骤 4:设置 SSH 服务开机自启
echo "sudo service ssh start" >> ~/.bashrc
步骤 5:配置防火墙(Windows 宿主机)

在 Windows PowerShell(管理员)中执行:

New-NetFirewallRule -Name "WSL2-SSH" -DisplayName "WSL2 SSH (Port 2222)" -Protocol TCP -LocalPort 2222 -Action Allow

2.3 解决中文乱码问题

sudo apt install -y locales
sudo locale-gen zh_CN.UTF-8

清理并重新配置 locale:

sed -i '/LC_/d' ~/.bashrc
sed -i '/LANG=/d' ~/.bashrc
cat >> ~/.bashrc << 'EOF'

# Locale settings
export LANG=en_US.UTF-8
export LANGUAGE=en_US:en
export LC_CTYPE=en_US.UTF-8
EOF
source ~/.bashrc

验证:

locale
echo "中文测试"

2.4 安装 Docker Engine(核心容器运行时)

注意:Debian 13 (Trixie) 官方源中 Docker 尚未完全支持,需使用 Bookworm 源安装。

步骤 1:添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 如果 curl 失败,使用 wget
sudo wget -O /etc/apt/keyrings/docker.gpg https://download.docker.com/linux/debian/gpg
# 确认文件存在
ls -l /etc/apt/keyrings/docker.gpg
步骤 2:添加 Docker 官方源(使用 Bookworm)
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  bookworm stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
步骤 3:安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin
步骤 4:安装 Docker Compose 插件
sudo apt install -y docker-compose-plugin
# 或
sudo apt install -y docker-compose
步骤 5:将当前用户加入 docker 组(免 sudo)
sudo usermod -aG docker $USER
步骤 6:退出并重新进入 WSL(使组权限生效)
exit
wsl -d Debian
步骤 7:验证安装
docker --version
docker compose version
docker run hello-world
步骤 8:配置 Docker 国内镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json << 'EOF'
{
  "registry-mirrors": [
    "https://docker.mirrors.tuna.tsinghua.edu.cn",
    "https://mirror.ccs.tencentyun.com"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
EOF
sudo service docker restart
步骤 9:设置 Docker 开机自启
echo "sudo service docker start" >> ~/.bashrc
source ~/.bashrc

2.5 安装 Node.js(Claude Code 依赖)

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
node --version  # 验证安装

2.6 安装 Claude Code

npm install -g @anthropic-ai/claude-code
claude --version  # 验证安装

2.7 创建项目目录

mkdir -p ~/workspace/novel-tool
cd ~/workspace/novel-tool

2.8 配置 Python 虚拟环境

python3 -m venv .venv      # 创建虚拟环境
source .venv/bin/activate  # 激活虚拟环境(关键步骤)
pip install --upgrade pip

2.9 创建项目依赖文件 requirements-dev.txt

cat > requirements-dev.txt << 'EOF'
# 核心框架
fastapi==0.115.12
uvicorn[standard]==0.34.2
pydantic==2.10.6
pydantic-settings==2.7.0

# 数据库
asyncpg==0.30.0
psycopg2-binary==2.9.10
sqlalchemy==2.0.39

# AI/LLM
langgraph==0.3.31
langgraph-checkpoint-postgres==2.0.21
instructor==1.7.2
openai==1.65.2

# 工具
python-dotenv==1.0.1
httpx==0.28.1
tenacity==9.0.0

# 开发调试
pytest==8.3.5
pytest-asyncio==0.25.3
pytest-cov==6.0.0
black==25.1.0
ruff==0.9.7
mypy==1.15.0

# 前端管理面板
streamlit==1.42.0

# 文本解析
unstructured==0.16.20
EOF

pip install -r requirements-dev.txt

步骤 3:配置 VS Code + Claude Code + DeepSeek

3.1 在 WSL2 中启动 VS Code

# 在 WSL2 Debian 终端中,进入项目目录后执行
cd ~/workspace/novel-tool
code .

说明:此命令会自动安装 VS Code Server 到 WSL2,并将 VS Code 附加到当前 WSL2 环境。之后所有的终端操作和文件访问都在 WSL2 中进行。

3.2 配置 DeepSeek API(获取密钥)

  1. 访问 DeepSeek 平台官网注册账号
  2. 进入 API 管理 → 创建 API Key
  3. 充值少量金额(建议 10-20 元起步)
  4. 记录 API Key
    • DeepSeek API 兼容 Anthropic 协议端点: https://api.deepseek.com/anthropic
    • 模型名: deepseek-v4-pro[1m](复杂任务)或 deepseek-v4-flash(常规任务)

注意:DeepSeek V4 支持 1M 超长上下文,通过 [1m] 后缀启用,这对 Claude Code 处理大型项目至关重要。

3.3 配置 Claude Code 环境变量

方式一:在 WSL2 终端中设置(临时)

export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_AUTH_TOKEN="你的 DeepSeek API Key"
export ANTHROPIC_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash"

方式二:永久配置(推荐)

export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
export ANTHROPIC_AUTH_TOKEN="你的 DeepSeek API Key"


export ANTHROPIC_MODEL="deepseek-v4-flash"
export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]"
export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash"
export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash"
# 将以下内容添加到 ~/.bashrc
echo 'export ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"' >> ~/.bashrc
echo 'export ANTHROPIC_AUTH_TOKEN="你的 DeepSeek API Key"' >> ~/.bashrc
echo 'export ANTHROPIC_MODEL="deepseek-v4-pro[1m]"' >> ~/.bashrc
echo 'export ANTHROPIC_DEFAULT_OPUS_MODEL="deepseek-v4-pro[1m]"' >> ~/.bashrc
echo 'export ANTHROPIC_DEFAULT_SONNET_MODEL="deepseek-v4-pro[1m]"' >> ~/.bashrc
echo 'export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash"' >> ~/.bashrc
echo 'export CLAUDE_CODE_SUBAGENT_MODEL="deepseek-v4-flash"' >> ~/.bashrc
source ~/.bashrc

3.4 在 VS Code 中安装 Claude Code 插件

  • 打开 VS Code(已附加到 WSL2)
  • 进入扩展商店(Ctrl+Shift+X)
  • 搜索 "Claude Code for VS Code" → 安装官方插件

插件配置:Claude Code 插件会自动读取 WSL2 终端中的环境变量,无需额外配置。

3.5 创建项目开发准则文件 .claude/settings.json

操作:在项目根目录创建 .claude/ 目录和 settings.json 文件。

mkdir -p .claude
// .claude/settings.json
{
  "projectName": "novel-tool",
  "description": "小说创作工业化平台 - AI驱动开发",
  "rules": {
    "taskOrder": "strict",
    "tddRequired": true,
    "failFast": true,
    "maxRetries": 3
  },
  "codeStandards": {
    "python": {
      "docstringStyle": "google",
      "typeAnnotations": "required",
      "lineLength": 100,
      "formatter": "black",
      "linter": "ruff",
      "typeChecker": "mypy --strict"
    }
  },
  "context": {
    "maxTokens": 1000000,
    "includeFiles": [
      "src/**/*.py",
      "tests/**/*.py",
      "scripts/**/*.sh",
      "docker-compose.yml",
      "Dockerfile"
    ],
    "excludeFiles": [
      ".venv/**",
      "data/**",
      "**/*.pyc",
      "**/__pycache__/**"
    ]
  },
  "modelStrategy": {
    "default": "deepseek-v4-flash",
    "complex": "deepseek-v4-pro[1m]",
    "subagent": "deepseek-v4-flash"
  },
  "testing": {
    "framework": "pytest",
    "command": "pytest tests/ -v --tb=short",
    "coverageRequired": 80
  },
  "versionControl": {
    "autoCommit": false,
    "commitMessageTemplate": "Phase {phase} Task {task}: {description}"
  }
}

3.6 创建项目记忆文件 CLAUDE.md

Claude Code 会自动识别项目根目录下的 CLAUDE.md 作为项目记忆文件。

cat > CLAUDE.md << 'EOF'
# CLAUDE.md

本文件是 novel-tool(小说创作工业化平台)项目的开发准则,Claude Code 会自动加载并严格遵循。

## 项目概述
面向专业网文作者、同人创作者与影视改编团队的 AI 辅助写作与分镜输出系统。

## 核心技术栈(严格遵守)
- 语言: Python 3.13(实际 3.13.5)
- Web框架: FastAPI 0.115+
- 智能体编排: LangGraph 0.3+(PostgresSaver 检查点)
- 数据库: PostgreSQL 16 + pgvector(Schema 由 Alembic 唯一管理)
- 图谱实现: WITH RECURSIVE CTE(不使用 Neo4j)
- 任务队列: PostgreSQL FOR UPDATE SKIP LOCKED(不使用 Redis)
- 容器: Docker 29.x(实际 29.7.2)
- 前端管理: Streamlit 1.42+

## 模型与接入
- 常规任务用 Flash 模型(deepseek-v4-flash),复杂任务用 Pro 模型(deepseek-v4-pro)
- 1M 超长上下文可用 deepseek-v4-pro[1m]([1m] 后缀以官方文档为准)

## 开发流程强制规则
1. 按 Phase 0 ~ 7 顺序执行,严禁跳跃;每个 Task 完成后运行验收测试,全部 PASS 才推进
2. 测试驱动;同一 Task 失败 3 次停止
3. 每次完成任务后更新 PROGRESS.md

## 代码硬性约束
- docstring(Google 风格)+ 完整类型注解(mypy --strict)
- 行长度 ≤ 100(ruff)
- 所有数据库查询带 user_id 过滤
- 所有外部调用超时熔断;进入 LLM 的外部文本经 PromptGuard 防注入
- 软删除用 deleted_at + 部分唯一索引;Schema 只走 Alembic

> 完整准则见仓库根目录 CLAUDE.md(含目录结构、20 张表清单、常用命令)。
EOF

3.7 创建进度跟踪文件 PROGRESS.md

cat > PROGRESS.md << 'EOF'
# 开发进度跟踪

## 当前状态
- 当前阶段: Phase 0(未开始)
- 当前任务: 无
- 整体进度: 0%

## Phase 0:基础设施与测试脚手架(6 个 Task)
- [ ] Task 0.1 创建项目目录结构
- [ ] Task 0.2 编写 docker-compose.yml
- [ ] Task 0.3 初始化 Alembic
- [ ] Task 0.4 编写 init-db.sql + 首个迁移(20 张表)
- [ ] Task 0.5 编写 tests/conftest.py
- [ ] Task 0.6 环境连通性测试

## Phase 1:核心领域模型与数据访问层(8 个 Task)
- [ ] Task 1.1 领域实体类
- [ ] Task 1.2 用户认证(JWT + API Key 生命周期)
- [ ] Task 1.3 PGRepository
- [ ] Task 1.4 GraphRepository(递归 CTE + SQL path 环检测)
- [ ] Task 1.5 TaskQueue(SKIP LOCKED + 延迟重试)
- [ ] Task 1.6 ChapterRepository + ContentRepository
- [ ] Task 1.7 资产/文件/向量仓储 + 连接池
- [ ] Task 1.8 Phase 1 验收测试

## Phase 2:逆向抽取引擎(8 个 Task)
- [ ] Task 2.1 DocumentLoader(路径沙箱 + PromptGuard 原文隔离)
- [ ] Task 2.2 抽取结果 Schema
- [ ] Task 2.3 _ner_node
- [ ] Task 2.4 _llm_node(Instructor + partial 降级)
- [ ] Task 2.5 _conflict_node
- [ ] Task 2.6 抽取指纹去重
- [ ] Task 2.7 批量图谱写入(executemany/unnest)
- [ ] Task 2.8 Phase 2 验收测试

## Phase 3:强制遵循编译器(3 个 Task)
- [ ] Task 3.1 ConstraintFetcher(铁律拉取 + 规则继承)
- [ ] Task 3.2 PromptInjector(三级规则注入)
- [ ] Task 3.3 Phase 3 验收测试

## Phase 4:动态语境适配器(4 个 Task)
- [ ] Task 4.1 CultureFilter(Trie + pgvector 语义)
- [ ] Task 4.2 MentalRouter(含逻辑深度阈值)
- [ ] Task 4.3 DynamicAdapter
- [ ] Task 4.4 Phase 4 验收测试

## Phase 5:LangGraph 主流程编排(11 个 Task)
- [ ] Task 5.1 WritingState(仅 draft_id,无全文)
- [ ] Task 5.2 AuditService(LLM 批量语义判定)
- [ ] Task 5.3 _fetch_context_node
- [ ] Task 5.4 _apply_constraints_node
- [ ] Task 5.5 _generate_draft_node(存 chapter_contents)
- [ ] Task 5.6 _audit_draft_node + 路由
- [ ] Task 5.7 _interrupt_node + 检查点(PostgresSaver.setup)
- [ ] Task 5.8 FastAPI 端点(含 upload + 实体 CRUD)
- [ ] Task 5.9 结构化日志
- [ ] Task 5.10 健康检查
- [ ] Task 5.11 Phase 5 验收测试

## Phase 6:Streamlit 管理面板(7 个 Task)
- [ ] Task 6.1 面板框架(含登录鉴权)
- [ ] Task 6.2 工单列表
- [ ] Task 6.3 Accept/Reject/Edit
- [ ] Task 6.4 图谱边同步
- [ ] Task 6.5 孤儿引用 + 归档清理
- [ ] Task 6.6 Phase 6 验收测试
- [ ] Task 6.7 一键回归脚本(37 用例)

## Phase 7:视频桥接层(5 个 Task)
- [ ] Task 7.1 StoryboardCompiler
- [ ] Task 7.2 AssetSyncService
- [ ] Task 7.3 VideoGenerationTaskService(HMAC 验签)
- [ ] Task 7.4 视频桥接 API 端点
- [ ] Task 7.5 Phase 7 验收测试

## 回归测试
- [ ] 37 个回归用例全部通过

## 开发日志
| 日期 | 任务 | 状态 | 备注 |
|:---|:---|:---|:---|
| - | - | - | 待开始 |
EOF

3.8 配置 VS Code 设置(保证开发质量)

在项目根目录创建 .vscode/settings.json

{
  "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
  "python.terminal.activateEnvironment": true,
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": {
    "source.organizeImports": "explicit"
  },
  "python.linting.mypyEnabled": true,
  "python.linting.mypyArgs": ["--strict"],
  "python.linting.ruffEnabled": true,
  "[python]": {
    "editor.defaultFormatter": "ms-python.black-formatter",
    "editor.formatOnSave": true
  },
  "black-formatter.args": ["--line-length", "100"],
  "ruff.args": ["--line-length", "100"],
  "claude-code.autoStart": true,
  "claude-code.model": "deepseek-v4-pro[1m]"
}

步骤 4:Docker 容器化构建

4.1 创建 Dockerfile

# 基于 Debian Slim 镜像(稳定优先)
FROM python:3.13-slim

# 设置工作目录
WORKDIR /app

# 安装系统依赖
RUN apt-get update && apt-get install -y \
    gcc \
    libpq-dev \
    && rm -rf /var/lib/apt/lists/*

# 复制依赖文件并安装 Python 包
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 复制应用代码
COPY src/ ./src/
COPY app/ ./app/

# 创建非 root 用户
RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app
USER appuser

# 暴露端口
EXPOSE 8000

# 启动命令(使用 Uvicorn)
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000"]

4.2 创建 docker-compose.yml

version: '3.8'

services:
  postgres:
    image: pgvector/pgvector:pg16
    container_name: novel-postgres
    environment:
      POSTGRES_USER: novel
      POSTGRES_PASSWORD: novel123
      POSTGRES_DB: novel
    ports:
      - "5432:5432"
    volumes:
      - pg_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U novel"]
      interval: 10s
      timeout: 5s
      retries: 5

  app:
    build: .
    container_name: novel-app
    environment:
      DATABASE_URL: postgresql://novel:novel123@postgres:5432/novel
      DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY}
      DEEPSEEK_BASE_URL: https://api.deepseek.com/v1
    ports:
      - "8000:8000"
    depends_on:
      postgres:
        condition: service_healthy
    volumes:
      - ./src:/app/src
    command: uvicorn src.main:app --host 0.0.0.0 --port 8000 --reload

  streamlit:
    build: .
    container_name: novel-streamlit
    environment:
      DATABASE_URL: postgresql://novel:novel123@postgres:5432/novel
    ports:
      - "8501:8501"
    depends_on:
      postgres:
        condition: service_healthy
    command: streamlit run app/management.py --server.port 8501 --server.address 0.0.0.0

volumes:
  pg_data:

4.3 创建 .env.example

cat > .env.example << 'EOF'
# DeepSeek API(必填)
DEEPSEEK_API_KEY=your-api-key-here

# 数据库配置
POSTGRES_USER=novel
POSTGRES_PASSWORD=novel123
POSTGRES_DB=novel
DATABASE_URL=postgresql://novel:novel123@postgres:5432/novel

# 应用配置(生产必须替换 SECRET_KEY)
APP_PORT=8000
STREAMLIT_PORT=8501
SECRET_KEY=change_me_generate_random
JWT_EXPIRE_MINUTES=1440

# 模型配置(模型名以 DeepSeek 官方为准)
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
DEEPSEEK_FLASH_MODEL=deepseek-v4-flash
DEEPSEEK_PRO_MODEL=deepseek-v4-pro

# Embedding 向量模型(pgvector 语义检测)
EMBEDDING_MODEL=text-embedding-3-small
EMBEDDING_DIM=1536

# LLM 并发限流
LLM_MAX_CONCURRENCY=10
LLM_RATE_LIMIT_PER_MIN=60

# 视频回调验签
WEBHOOK_SECRET=change_me_generate_random

# Claude Code 接入(开发环境)
ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
ANTHROPIC_AUTH_TOKEN=${DEEPSEEK_API_KEY}
EOF

4.4 生产环境构建命令(在 WSL2 Debian 中执行)

# 构建镜像
docker compose build

# 启动所有服务
docker compose up -d

# 查看日志
docker compose logs -f

# 停止服务
docker compose down

步骤 5:AI 协作工作流(Claude Code 特色)

5.1 Claude Code 的 MCP 扩展(可选但推荐)

Claude Code 支持 MCP(Model Context Protocol),可以扩展以下能力:

# 安装 Claude Code 的 MCP 扩展
claude mcp add github  # GitHub 集成
claude mcp add filesystem  # 文件系统操作
claude mcp add postgres  # 数据库查询

推荐 MCP 扩展

  • github:让 Claude Code 能读取 Issue、PR 等上下文
  • filesystem:让 Claude Code 能直接读写项目文件(已有)
  • lightrag:如果项目需要 RAG 能力

5.2 API 选择策略(Claude Code 中)

Claude Code 通过环境变量配置模型,模型选择通过环境变量实现:

场景推荐模型环境变量
代码生成(常规)DeepSeek-V4-FlashANTHROPIC_DEFAULT_HAIKU_MODEL
代码生成(复杂逻辑)DeepSeek-V4-Pro[1m]ANTHROPIC_DEFAULT_OPUS_MODEL
设定蒸馏/抽取DeepSeek-V4-Flash子任务自动使用 CLAUDE_CODE_SUBAGENT_MODEL
架构决策/设计DeepSeek-V4-Pro[1m]手动切换 ANTHROPIC_MODEL

切换模型命令

# 在 Claude Code 对话中切换
/model deepseek-v4-flash
/model deepseek-v4-pro[1m]

5.3 Claude Code 初始化指令

在 VS Code 中打开 Claude Code 插件,或直接在终端运行 claude,然后输入:

【项目启动】

项目名称:novel-tool(开发代号)
开发语言:Python 3.13
框架:FastAPI 0.115+ + LangGraph 0.3+
数据库:PostgreSQL 16 + pgvector
LLM:DeepSeek-V4-Flash(常规)/ DeepSeek-V4-Pro[1m](复杂)

我已阅读并理解项目的 CLAUDE.md 、 .claude/settings.json 小说创作工业化平台 - 合并开发文档(AI执行版 v6.0).md。

执行规则:
1. 从 Phase 0 Task 0.1 开始,严格按顺序执行
2. 每个 Task 完成后运行验收测试,全部 PASS 才能继续
3. 测试失败时先修复,不跳过
4. 常规任务用 Flash,复杂任务用 Pro[1m]
5. 所有代码必须有 docstring + 完整类型注解
6. 所有数据库查询必须带 user_id 过滤
7. 维护 PROGRESS.md 记录进度
8. 同一 Task 失败 3 次停止,请求人工介入

确认以上规则,开始执行 Phase 0 Task 0.1。

步骤 6:日常开发工作流

6.1 每日开发流程

┌─────────────────────────────────────────────────────────────┐
│                    每日开发循环                              │
│                                                             │
│  1. 启动 WSL2 并进入项目                                   │
│     wsl                                                   │
│     cd ~/workspace/novel-tool                             │
│     source .venv/bin/activate                             │
│                                                             │
│  2. 启动容器                                               │
│     docker compose up -d                                    │
│                                                             │
│  3. 在 VS Code 中打开项目                                   │
│     code .                                                  │
│                                                             │
│  4. 打开 Claude Code 插件                                   │
│     → 自动加载 CLAUDE.md + settings.json                   │
│                                                             │
│  5. 向 Claude Code 发送当前 Task 指令                       │
│     "执行 Phase X Task Y"                                   │
│                                                             │
│  6. AI 生成代码 + 人工 Code Review                         │
│                                                             │
│  7. 运行验收测试                                            │
│     pytest tests/phase_X/ -v                               │
│                                                             │
│  8. 测试结果判断                                            │
│     ├─ PASS → 更新 PROGRESS.md → 进入下一 Task             │
│     └─ FAIL → Claude Code 自动修复 → 重新测试              │
│                                                             │
│  9. 提交代码                                                │
│     git add . && git commit -m "Phase X Task Y: ..."      │
│                                                             │
│  10. 结束工作                                               │
│      docker compose down                                    │
└─────────────────────────────────────────────────────────────┘

6.2 Claude Code 常用命令

命令作用
claude启动交互式会话
claude "指令"单次执行指令
/model deepseek-v4-pro[1m]切换模型
/help查看帮助
/clear清空上下文
/status查看任务状态
claude --continue继续上次会话

步骤 7:IDE 设置固化

7.1 VS Code 推荐设置

设置项推荐值目的
自动保存onFocusChange防止丢失代码
缩进4 空格Python 标准
行尾序列LFLinux 兼容
默认换行符\n跨平台兼容
终端集成WSL2 Debian确保在 WSL2 中运行

7.2 推荐的 VS Code 扩展

扩展用途必要性
Claude CodeAI 编程助手(核心)必装
WSLWSL2 集成必装
PythonPython 语言支持必装
PylancePython 类型检查必装
Black Formatter代码格式化必装
RuffPython Linter必装
Mypy类型检查器推荐
GitLensGit 历史查看可选
DockerDocker 容器管理可选
PostgreSQL数据库管理可选

7.3 Git 钩子(自动测试拦截)

# .git/hooks/pre-commit
# 提交前自动运行测试
pytest tests/ -v --maxfail=1
if [ $? -ne 0 ]; then
    echo "❌ 测试失败,提交被阻止"
    exit 1
fi

步骤 8:部署到云服务器

8.1 镜像导出与导入

# 在开发机(WSL2)导出镜像
docker save -o novel-app.tar novel-app:latest
docker save -o novel-streamlit.tar novel-streamlit:latest
docker save -o novel-postgres.tar pgvector/pgvector:pg16

# 在云服务器(Ubuntu 22.04)导入镜像
docker load -i novel-app.tar
docker load -i novel-streamlit.tar
docker load -i novel-postgres.tar

# 使用 docker-compose.yml 启动
docker-compose up -d

8.2 服务器最低配置

  • CPU: 2 核
  • 内存: 4 GB(推荐 8 GB)
  • 硬盘: 40 GB SSD
  • 系统: Ubuntu 22.04 LTS
  • 月成本: 约 100-200 元

步骤 9:成本估算总览

项目费用说明
Windows 11已有无需额外购买
VS Code¥0完全开源免费
Claude Code¥0npm 全局安装,无许可费
Docker Engine¥0开源免费(个人使用)
WSL2 Debian¥0系统免费
DeepSeek API约 ¥15-30/月按量付费,开发阶段消耗
云服务器(生产)约 ¥100-200/月可选,开发阶段可用本地
月度总成本(开发)约 ¥15-30主要是 API 费用
月度总成本(生产部署)约 ¥115-230含云服务器

步骤 10:VS Code + Claude Code vs Trae 对比总结

对比维度VS Code + Claude Code + DeepSeekTrae + Cline + DeepSeek
AI 上下文窗口1M tokens视模型而定(通常 128K)
代码理解能力全项目级理解单文件/上下文窗口内
任务执行能力可自主规划多步骤任务需人工分步引导
MCP 扩展原生支持有限支持
开发体验图形化 + 终端混合图形化为主
学习曲线中等(需熟悉终端交互)低(IDE 原生体验)
配置复杂度中等(环境变量 + JSON)低(图形界面配置)
模型切换命令切换下拉菜单切换
适用场景复杂项目、长上下文任务常规 AI 辅助编码

三、快速启动清单

☐ 1. Windows 11 启用 WSL2
☐ 2. 安装 Debian WSL2
☐ 3. 安装 VS Code + WSL 扩展
☐ 4. 在 WSL2 Debian 中安装 Node.js + Claude Code
☐ 5. 安装 Docker Engine(WSL2 内)
☐ 6. 在 WSL2 中创建项目目录
☐ 7. 创建 Python 虚拟环境并安装依赖
☐ 8. 注册 DeepSeek 平台并获取 API Key
☐ 9. 配置 Claude Code 环境变量(~/.bashrc)
☐ 10. 在项目根目录创建 .claude/settings.json
☐ 11. 创建 CLAUDE.md(项目记忆)
☐ 12. 创建 PROGRESS.md(进度跟踪)
☐ 13. 创建 Dockerfile 和 docker-compose.yml
☐ 14. 在 VS Code 中安装 Claude Code 插件
☐ 15. 在 VS Code 中打开项目(code .)
☐ 16. 打开 Claude Code 插件,输入初始化指令
☐ 17. 开始 Phase 0 Task 0.1

四、常见问题排查

Q1:Claude Code 无法连接 DeepSeek API

# 检查环境变量是否生效
echo $ANTHROPIC_BASE_URL
echo $ANTHROPIC_AUTH_TOKEN

# 测试 API 连通性
curl -X POST $ANTHROPIC_BASE_URL/v1/messages \
  -H "x-api-key: $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"deepseek-v4-flash","max_tokens":10,"messages":[{"role":"user","content":"ping"}]}'

Q2:WSL2 中 Docker 无法启动

# 检查 Docker 服务状态
sudo service docker status

# 启动 Docker
sudo service docker start

# 若 WSL2 内 systemd 未启用,可启用 systemd 或用 sudo dockerd 启动

Q3:VS Code 无法连接到 WSL2

# 在 WSL2 中重新安装 VS Code Server
code --install-extension ms-vscode-remote.remote-wsl
# 或在 VS Code 中执行 "Remote-WSL: Reopen in WSL"
动物装饰