上一篇 下一篇 分享链接 返回 返回顶部

Claude 企业内网接入与安全网关部署实战指南

发布人:慈云数据-客服中心 发布时间:7小时前 阅读量:3

Claude 私有化部署方案|附完整命令

说明:严格意义上,Claude(Anthropic 官方模型)目前并不提供“把模型权重下载到本地服务器并离线运行”的私有化部署方式。因此,本文所说的“Claude 私有化部署方案”,主要指在企业内网中构建一套私有可控、安全合规、统一接入 Claude 能力的部署架构,包括:

  1. 企业内网部署 AI 网关;
  2. 通过受控网络访问 Claude API;
  3. 对请求、日志、鉴权、审计、限流进行私有化管理;
  4. 可选接入 AWS Bedrock 或 Google Vertex AI;
  5. 可选部署开源大模型作为本地替代方案。

如果你的目标是“完全离线、本地运行 Claude 模型权重”,目前无法实现;如果你的目标是“企业内部安全、统一、可审计地使用 Claude”,本文方案可以落地。


一、为什么企业需要 Claude 私有化部署方案?

Claude 是 Anthropic 推出的高性能大语言模型,在长文本理解、代码生成、知识问答、文档总结、客服机器人、Agent 自动化等场景中表现非常优秀。很多企业希望将 Claude 接入到内部业务系统中,例如:

  • 内部知识库问答;
  • 合同、制度、招投标文档分析;
  • 研发代码助手;
  • 客服智能回复;
  • 数据分析助手;
  • 自动化办公 Agent;
  • 业务流程审批辅助;
  • 企业私有文档总结。

但是,企业在使用 Claude 时通常会遇到几个现实问题:

1. 数据安全问题

业务系统中的内容往往包含客户信息、合同信息、源代码、财务数据、研发文档等敏感内容。如果所有员工都直接使用外部 API 或第三方工具,企业无法有效控制数据流向。

2. 账号与权限难以管理

如果每个团队或员工单独申请 Claude API Key,就会造成密钥分散、权限混乱、费用不可控的问题。一旦某个 API Key 泄露,还可能造成严重安全风险。

3. 调用成本无法统一统计

企业需要知道哪个部门、哪个项目、哪个接口调用了多少模型,花费了多少费用。直接调用 Claude API 很难做到完整的成本归集。

4. 缺少审计与合规能力

在金融、政企、医疗、制造等行业中,AI 调用日志、用户身份、请求内容、返回内容、数据脱敏记录等都可能需要审计。

5. 网络访问受限

很多企业服务器部署在内网环境中,无法直接访问外部 API;或者只能通过指定出口访问外部服务。因此需要一个统一的 AI 网关来进行流量转发和安全控制。


二、Claude 私有化部署的正确理解

首先要明确一点:

Claude 官方模型不能像 Llama、Qwen、DeepSeek、Mistral 那样下载权重到本地 GPU 服务器上运行。

Claude 的官方使用方式通常有以下几类:

方式 是否本地运行权重 适合场景
Anthropic API 直接调用 Claude 官方 API
AWS Bedrock Claude 企业云上合规调用,适合 AWS 用户
Google Vertex AI Claude 企业云上合规调用,适合 GCP 用户
企业 AI 网关代理 Claude 内网统一接入、审计、限流、脱敏
本地部署开源模型替代 Claude 完全离线、数据不出内网

因此,企业常见的“Claude 私有化部署”通常不是部署 Claude 权重,而是部署一套Claude 私有化接入平台

一个比较成熟的架构如下:

员工 / 内部系统
    |
    | HTTPS / 内网 API
    v
企业 AI 网关
    |
    | 鉴权、审计、限流、脱敏、日志、计费
    v
模型路由层
    |
    |-----------------------------|
    |                             |
    v                             v
Claude API / Bedrock / Vertex     本地开源大模型

这样做的好处是:

  • 员工不直接接触 Claude API Key;
  • 所有请求统一经过企业内网网关;
  • 可以记录调用日志;
  • 可以做敏感信息脱敏;
  • 可以配置模型路由;
  • 可以限制不同用户的调用额度;
  • 可以在 Claude 不可用时切换到本地模型;
  • 可以支持 OpenAI 兼容接口,降低业务系统改造成本。

三、推荐部署架构

本文采用一种较通用的方案:

  • 使用 Docker Compose 部署;
  • 使用 LiteLLM Proxy 作为统一 AI 网关;
  • 使用 PostgreSQL 存储配置与日志;
  • 使用 Redis 做缓存与限流辅助;
  • 使用 Nginx 做反向代理与 HTTPS 入口;
  • 可选接入 Anthropic Claude API
  • 可选接入 AWS Bedrock Claude
  • 可选接入 本地 Ollama / vLLM 开源模型

部署完成后,内部业务可以通过 OpenAI 兼容接口访问 Claude,例如:

curl http://ai-gateway.example.com/v1/chat/completions \
  -H "Authorization: Bearer sk-internal-demo" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-3-5-sonnet",
    "messages": [
      {
        "role": "user",
        "content": "请总结这份合同中的风险点。"
      }
    ]
  }'

四、服务器准备

建议配置如下。

1. 基础配置

如果只是做 Claude API 网关,服务器配置不需要太高:

组件 推荐配置
CPU 4 核以上
内存 8GB 以上
磁盘 100GB SSD
系统 Ubuntu 22.04 LTS / Ubuntu 24.04 LTS
网络 可访问 Anthropic / AWS / GCP 对应 API 地址

如果还要部署本地开源模型,则需要 GPU,例如:

模型规模 GPU 建议
7B 16GB 显存
14B 24GB 显存
32B 48GB 以上显存
70B 80GB 以上显存或多卡

2. 更新系统

sudo apt update
sudo apt upgrade -y

安装基础工具:

sudo apt install -y \
  curl \
  wget \
  git \
  vim \
  htop \
  net-tools \
  ca-certificates \
  gnupg \
  lsb-release \
  ufw

设置时区:

sudo timedatectl set-timezone Asia/Shanghai
timedatectl

五、安装 Docker 与 Docker Compose

1. 卸载旧版本 Docker

sudo apt remove -y docker docker-engine docker.io containerd runc || true

2. 安装 Docker 官方源

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") 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 \
  docker-compose-plugin

4. 启动 Docker

sudo systemctl enable docker
sudo systemctl start docker

查看版本:

docker --version
docker compose version

将当前用户加入 Docker 用户组:

sudo usermod -aG docker $USER

重新登录后验证:

docker ps

六、创建部署目录

创建统一目录:

sudo mkdir -p /opt/claude-private-deploy
sudo chown -R $USER:$USER /opt/claude-private-deploy

进入目录:

cd /opt/claude-private-deploy

创建子目录:

mkdir -p \
  litellm \
  nginx \
  postgres \
  redis \
  logs \
  certs

七、配置环境变量

创建 .env 文件:

vim .env

写入以下内容:

# PostgreSQL
POSTGRES_USER=litellm
POSTGRES_PASSWORD=ChangeMe_Postgres_Strong_Password
POSTGRES_DB=litellm

# Redis
REDIS_PASSWORD=ChangeMe_Redis_Strong_Password

# LiteLLM
LITELLM_MASTER_KEY=sk-internal-master-change-me
LITELLM_SALT_KEY=change-me-random-salt-key

# Anthropic Claude API
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxxxxxx

# 可选:AWS Bedrock
AWS_ACCESS_KEY_ID=your_aws_access_key
AWS_SECRET_ACCESS_KEY=your_aws_secret_key
AWS_REGION_NAME=us-east-1

# 可选:管理后台账号
UI_USERNAME=admin
UI_PASSWORD=ChangeMe_Admin_Strong_Password

修改权限:

chmod 600 .env

注意事项:

  1. LITELLM_MASTER_KEY 是内部访问网关的主密钥;
  2. ANTHROPIC_API_KEY 是 Claude 官方 API Key;
  3. 生产环境中不要使用示例密码;
  4. 建议使用密码管理系统或 KMS 管理密钥;
  5. .env 文件不要提交到 Git 仓库。

八、配置 LiteLLM

创建配置文件:

vim litellm/config.yaml

写入以下配置:

model_list:
  - model_name: claude-3-5-sonnet
    litellm_params:
      model: anthropic/claude-3-5-sonnet-20241022
      api_key: os.environ/ANTHROPIC_API_KEY

  - model_name: claude-3-5-haiku
    litellm_params:
      model: anthropic/claude-3-5-haiku-20241022
      api_key: os.environ/ANTHROPIC_API_KEY

  - model_name: claude-3-opus
    litellm_params:
      model: anthropic/claude-3-opus-20240229
      api_key: os.environ/ANTHROPIC_API_KEY

general_settings:
  master_key: os.environ/LITELLM_MASTER_KEY
  database_url: postgresql://litellm:ChangeMe_Postgres_Strong_Password@postgres:5432/litellm
  store_model_in_db: true
  store_prompts_in_spend_logs: true

litellm_settings:
  request_timeout: 120
  num_retries: 2
  success_callback: ["langfuse"]
  failure_callback: ["langfuse"]

如果你不需要 Langfuse 回调,可以把下面两行删除:

  success_callback: ["langfuse"]
  failure_callback: ["langfuse"]

更简化的生产版本可以写成:

model_list:
  - model_name: claude-3-5-sonnet
    litellm_params:
      model: anthropic/claude-3-5-sonnet-20241022
      api_key: os.environ/ANTHROPIC_API_KEY

  - model_name: claude-3-5-haiku
    litellm_params:
      model: anthropic/claude-3-5-haiku-20241022
      api_key: os.environ/ANTHROPIC_API_KEY

general_settings:
  master_key: os.environ/LITELLM_MASTER_KEY
  database_url: postgresql://litellm:ChangeMe_Postgres_Strong_Password@postgres:5432/litellm
  store_model_in_db: true

litellm_settings:
  request_timeout: 120
  num_retries: 2

注意:database_url 中的数据库密码需要和 .env 文件里的 POSTGRES_PASSWORD 保持一致。


九、编写 Docker Compose 文件

在部署目录创建 docker-compose.yml

vim docker-compose.yml

写入以下内容:

services:
  postgres:
    image: postgres:16
    container_name: claude-postgres
    restart: always
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
      POSTGRES_DB: ${POSTGRES_DB}
    volumes:
      - ./postgres/data:/var/lib/postgresql/data
    networks:
      - claude-net
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
      interval: 10s
      timeout: 5s
      retries: 5

  redis:
    image: redis:7
    container_name: claude-redis
    restart: always
    command: redis-server --requirepass ${REDIS_PASSWORD}
    volumes:
      - ./redis/data:/data
    networks:
      - claude-net
    healthcheck:
      test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5

  litellm:
    image: ghcr.io/berriai/litellm:main-latest
    container_name: claude-litellm
    restart: always
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_healthy
    env_file:
      - .env
    environment:
      DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}
      STORE_MODEL_IN_DB: "True"
    command:
      [
        "--config", "/app/config.yaml",
        "--port", "4000",
        "--num_workers", "4"
      ]
    volumes:
      - ./litellm/config.yaml:/app/config.yaml
      - ./logs:/app/logs
    ports:
      - "4000:4000"
    networks:
      - claude-net

  nginx:
    image: nginx:1.27
    container_name: claude-nginx
    restart: always
    depends_on:
      - litellm
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
      - ./certs:/etc/nginx/certs
      - ./logs/nginx:/var/log/nginx
    networks:
      - claude-net

networks:
  claude-net:
    driver: bridge

十、配置 Nginx 反向代理

创建 Nginx 配置:

vim nginx/default.conf

如果暂时只使用 HTTP,可以写入:

server {
    listen 80;
    server_name ai-gateway.example.com;

    client_max_body_size 50m;

    location / {
        proxy_pass http://litellm:4000;
        proxy_http_version 1.1;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_read_timeout 300s;
        proxy_connect_timeout 60s;
        proxy_send_timeout 300s;
    }
}

如果使用 HTTPS,可以配置:

server {
    listen 80;
    server_name ai-gateway.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name ai-gateway.example.com;

    ssl_certificate /etc/nginx/certs/fullchain.pem;
    ssl_certificate_key /etc/nginx/certs/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    client_max_body_size 50m;

    location / {
        proxy_pass http://litellm:4000;
        proxy_http_version 1.1;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_read_timeout 300s;
        proxy_connect_timeout 60s;
        proxy_send_timeout 300s;
    }
}

如果你有内网 CA 证书,把证书放到:

certs/fullchain.pem
certs/privkey.pem

也可以使用自签名证书测试:

openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout certs/privkey.pem \
  -out certs/fullchain.pem \
  -subj "/CN=ai-gateway.example.com"

十一、启动服务

/opt/claude-private-deploy 目录执行:

docker compose pull
docker compose up -d

查看容器状态:

docker compose ps

查看日志:

docker compose logs -f litellm

如果正常,会看到 LiteLLM 在 4000 端口启动。

检查接口:

curl http://127.0.0.1:4000/health

或通过 Nginx:

curl http://127.0.0.1/health

十二、调用 Claude 测试

使用 OpenAI 兼容格式调用:

curl http://127.0.0.1:4000/v1/chat/completions \
  -H "Authorization: Bearer sk-internal-master-change-me" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-3-5-sonnet",
    "messages": [
      {
        "role": "user",
        "content": "请用中文解释一下什么是企业级AI网关。"
      }
    ],
    "temperature": 0.7
  }'

通过 Nginx 调用:

curl http://ai-gateway.example.com/v1/chat/completions \
  -H "Authorization: Bearer sk-internal-master-change-me" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-3-5-sonnet",
    "messages": [
      {
        "role": "user",
        "content": "请给出一个合同审查助手的提示词模板。"
      }
    ]
  }'

如果使用 HTTPS:

curl https://ai-gateway.example.com/v1/chat/completions \
  -H "Authorization: Bearer sk-internal-master-change-me" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-3-5-haiku",
    "messages": [
      {
        "role": "user",
        "content": "请总结AI私有化部署的核心价值。"
      }
    ]
  }'

十三、生成内部 API Key

生产环境中不建议所有人共用 master_key。可以通过 LiteLLM 管理接口创建不同的虚拟 Key。

创建一个普通业务 Key:

curl http://127.0.0.1:4000/key/generate \
  -H "Authorization: Bearer sk-internal-master-change-me" \
  -H "Content-Type: application/json" \
  -d '{
    "models": ["claude-3-5-sonnet", "claude-3-5-haiku"],
    "duration": "30d",
    "metadata": {
      "team": "legal",
      "project": "contract-review"
    }
  }'

创建带预算限制的 Key:

curl http://127.0.0.1:4000/key/generate \
  -H "Authorization: Bearer sk-internal-master-change-me" \
  -H "Content-Type: application/json" \
  -d '{
    "models": ["claude-3-5-haiku"],
    "max_budget": 20,
    "budget_duration": "30d",
    "duration": "30d",
    "metadata": {
      "team": "customer-service",
      "project": "faq-bot"
    }
  }'

使用新生成的 Key 调用:

curl http://ai-gateway.example.com/v1/chat/completions \
  -H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-3-5-haiku",
    "messages": [
      {
        "role": "user",
        "content": "请生成一段客服欢迎语。"
      }
    ]
  }'

十四、配置防火墙

如果只允许内网访问,建议关闭公网端口或限制来源 IP。

启用 UFW:

sudo ufw enable

允许 SSH:

sudo ufw allow 22/tcp

允许 HTTP 和 HTTPS:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

如果只允许某个内网网段访问:

sudo ufw allow from 192.168.1.0/24 to any port 443 proto tcp

拒绝其他访问:

sudo ufw deny 4000/tcp

查看状态:

sudo ufw status verbose

更推荐的方式是不要暴露 4000 端口,只通过 Nginx 暴露服务。可以把 docker-compose.yml 中 LiteLLM 的端口映射:

ports:
  - "4000:4000"

改成只监听本机:

ports:
  - "127.0.0.1:4000:4000"

或者完全去掉端口映射,让 Nginx 在 Docker 网络中访问它。


十五、接入 AWS Bedrock Claude

如果企业使用 AWS,并且希望通过 AWS Bedrock 调用 Claude,可以在 litellm/config.yaml 中增加:

model_list:
  - model_name: bedrock-claude-sonnet
    litellm_params:
      model: bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0
      aws_region_name: os.environ/AWS_REGION_NAME
      aws_access_key_id: os.environ/AWS_ACCESS_KEY_ID
      aws_secret_access_key: os.environ/AWS_SECRET_ACCESS_KEY

完整示例:

model_list:
  - model_name: claude-3-5-sonnet
    litellm_params:
      model: anthropic/claude-3-5-sonnet-20241022
      api_key: os.environ/ANTHROPIC_API_KEY

  - model_name: bedrock-claude-sonnet
    litellm_params:
      model: bedrock/anthropic.claude-3-5-sonnet-20241022-v2:0
      aws_region_name: os.environ/AWS_REGION_NAME
      aws_access_key_id: os.environ/AWS_ACCESS_KEY_ID
      aws_secret_access_key: os.environ/AWS_SECRET_ACCESS_KEY

general_settings:
  master_key: os.environ/LITELLM_MASTER_KEY
  database_url: postgresql://litellm:ChangeMe_Postgres_Strong_Password@postgres:5432/litellm
  store_model_in_db: true

重启 LiteLLM:

docker compose restart litellm

测试调用:

curl http://ai-gateway.example.com/v1/chat/completions \
  -H "Authorization: Bearer sk-internal-master-change-me" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "bedrock-claude-sonnet",
    "messages": [
      {
        "role": "user",
        "content": "请解释AWS Bedrock接入Claude的优势。"
      }
    ]
  }'

十六、接入本地开源模型作为备用

如果企业希望在 Claude 不可用、成本过高或涉及敏感数据时自动切换到本地模型,可以部署 Ollama 或 vLLM。

下面以 Ollama 为例。

1. 安装 Ollama

curl -fsSL https://ollama.com/install.sh | sh

启动服务:

sudo systemctl enable ollama
sudo systemctl start ollama

下载模型,例如 Qwen2.5:

ollama pull qwen2.5:7b

测试模型:

ollama run qwen2.5:7b

2. 修改 Ollama 监听地址

创建或修改 systemd 配置:

sudo systemctl edit ollama

写入:

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"

重载并重启:

sudo systemctl daemon-reload
sudo systemctl restart ollama

测试接口:

curl http://127.0.0.1:11434/api/tags

3. LiteLLM 接入 Ollama

修改 litellm/config.yaml

model_list:
  - model_name: claude-3-5-sonnet
    litellm_params:
      model: anthropic/claude-3-5-sonnet-20241022
      api_key: os.environ/ANTHROPIC_API_KEY

  - model_name: local-qwen
    litellm_params:
      model: ollama/qwen2.5:7b
      api_base: http://host.docker.internal:11434

general_settings:
  master_key: os.environ/LITELLM_MASTER_KEY
  database_url: postgresql://litellm:ChangeMe_Postgres_Strong_Password@postgres:5432/litellm
  store_model_in_db: true

在 Linux Docker 中,host.docker.internal 可能不可用,可以在 docker-compose.ymllitellm 服务中加入:

extra_hosts:
  - "host.docker.internal:host-gateway"

然后重启:

docker compose up -d

调用本地模型:

curl http://ai-gateway.example.com/v1/chat/completions \
  -H "Authorization: Bearer sk-internal-master-change-me" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "local-qwen",
    "messages": [
      {
        "role": "user",
        "content": "请用中文介绍本地开源大模型的优势。"
      }
    ]
  }'

十七、数据脱敏与安全策略

Claude 私有化接入的重点不是“模型在不在本地”,而是“数据是否可控”。建议在网关层实现以下能力:

1. 敏感字段脱敏

常见敏感信息包括:

  • 身份证号;
  • 手机号;
  • 银行卡号;
  • 客户姓名;
  • 地址;
  • 邮箱;
  • 合同编号;
  • 内部系统账号;
  • 源代码仓库地址;
  • 密钥、Token、密码。

可以在业务系统调用 AI 网关之前先做脱敏,也可以在网关层增加自定义中间件。例如:

import re

def mask_sensitive_text(text: str) -> str:
    text = re.sub(r'1[3-9]\d{9}', '【手机号】', text)
    text = re.sub(r'\d{17}[\dXx]', '【身份证号】', text)
    text = re.sub(r'\b\d{16,19}\b', '【银行卡号】', text)
    text = re.sub(r'[\w\.-]+@[\w\.-]+\.\w+', '【邮箱】', text)
    return text

2. 最小权限原则

不同部门使用不同 Key:

部门 可用模型 限额策略
法务 Claude Sonnet 月预算限制
客服 Claude Haiku 高频低成本
研发 Claude Sonnet + 本地模型 按项目限制
财务 仅本地模型或强脱敏后调用 严格审计

3. 禁止员工直接使用外部 Key

企业应统一将 Claude API Key 保存在服务端,不允许员工在浏览器、桌面工具、脚本中直接保存官方 Key。

4. 日志分级

建议区分:

  • 访问日志;
  • 请求元数据;
  • Token 消耗;
  • 费用日志;
  • 错误日志;
  • 审计日志;
  • 原始 Prompt 日志。

对于高度敏感业务,不建议保存完整 Prompt 和 Completion;可以只保存摘要、哈希或脱敏后的内容。


十八、监控与运维

1. 查看服务状态

docker compose ps

2. 查看 LiteLLM 日志

docker compose logs -f litellm

3. 查看 Nginx 日志

docker compose logs -f nginx

或:

tail -f logs/nginx/access.log
tail -f logs/nginx/error.log

4. 重启服务

docker compose restart

只重启 LiteLLM:

docker compose restart litellm

5. 更新镜像

docker compose pull
docker compose up -d

6. 备份数据库

docker exec claude-postgres pg_dump \
  -U litellm \
  -d litellm \
  > backup_litellm_$(date +%F).sql

恢复数据库:

cat backup_litellm_2025-01-01.sql | \
docker exec -i claude-postgres psql \
  -U litellm \
  -d litellm

十九、常见问题

1. Claude 能否完全离线部署?

不能。Claude 官方没有开放模型权重,也不支持企业将权重下载到本地服务器离线运行。

2. 那为什么还叫 Claude 私有化部署?

这里的“私有化”指的是企业内部私有化部署接入层、网关层、安全层和审计层,而不是私有化部署 Claude 模型权重。

3. 数据会不会被 Claude 用于训练?

这取决于你使用的服务方式和对应协议。企业应仔细阅读 Anthropic API、AWS Bedrock、Google Vertex AI 的数据使用政策,并签订企业级数据保护协议。

4. 是否建议直接让业务系统调用 Anthropic API?

不建议。企业级场景更推荐统一 AI 网关,便于密钥管理、权限控制、成本统计和审计。

5. 如何做到完全数据不出内网?

如果要求完全数据不出内网,就不能使用 Claude API,只能部署本地开源模型,例如 Qwen、DeepSeek、Llama、Mistral 等。


二十、总结

Claude 的能力非常强,但企业在落地时不能只关注模型效果,还必须关注安全、合规、权限、成本和运维。由于 Claude 官方目前不支持权重级本地部署,因此最合理的企业级方案是:

  1. 在内网部署 AI 网关;
  2. 将 Claude API Key 托管在服务端;
  3. 所有业务系统通过统一网关访问;
  4. 对调用进行鉴权、审计、限流和计费;
  5. 对敏感数据进行脱敏;
  6. 根据业务敏感度选择 Claude、Bedrock、Vertex 或本地开源模型;
  7. 对高敏场景使用本地模型兜底。

如果你的目标是“像部署私有系统一样管控 Claude”,本文方案是可落地的;如果你的目标是“完全离线部署 Claude 权重”,目前无法实现,只能选择开源模型替代。企业真正需要的不是简单地把模型接进来,而是建立一套可控、可审计、可持续扩展的 AI 基础设施。

目录结构
全文