⭐ 如果这个项目对你有帮助,请给我们一个 Star! 您的支持是我们继续开发的动力。
🍴 想要贡献代码? 我们欢迎 Fork 和 Pull Request!无论是 Bug 修复、功能改进还是新特性,我们都期待您的参与。
如果您没有 API Key,请联系我们提供企业云方案。我们是 Google Cloud 认证合作伙伴,能为您提供物美价廉的企业级 API KEY,包括:
- Claude 系列
- Gemini 系列
- OpenAI
- 其他开源大模型
📞 联系我们: http://cmcm.bot/ 📖 了解更多: https://www.polymericcloud.com/
这是一个为 DeepV Code 客户端 提供的基础服务项目,作为一个轻量级的 AI 代理服务器,支持 Vertex AI 和 OpenRouter。
本项目旨在为 DeepV Code 客户端提供统一的 AI 接口访问层,处理不同 AI 供应商(如 Google Vertex AI 和 OpenRouter)的鉴权、请求转发和响应格式转换。
- 多供应商支持:集成 Google Vertex AI 和 OpenRouter。
- 统一接口:提供统一的聊天接口,支持流式(Streaming)和非流式响应。
- 格式转换:自动将不同供应商的响应格式转换为统一的 Google AI 格式。
- Mock 鉴权:内置 Mock JWT 登录接口,方便开发和测试。
在提交或公开代码前,请确保以下信息已处理:
- 环境变量:
.env文件已在.gitignore中,请确保不要将其提交。 - 密钥文件:
key/目录下的所有 JSON 凭证文件已在.gitignore中。 - 调试日志:建议将
.deepvcode/目录添加到.gitignore中,因为它包含请求和响应的详细日志(可能包含 API Key 或私有数据)。 - Mock 数据:
src/routes.ts中的deepvlab-login接口包含硬编码的测试邮箱和头像信息,建议根据需要进行清理或脱敏。
- Node.js (建议 v18+)
- npm 或 yarn
npm install- 复制环境变量模板:
cp .env.example .env
- 编辑
.env文件,填入必要的配置信息:OPENROUTER_API_KEY: 你的 OpenRouter API 密钥。VERTEX_CREDENTIALS_PATHS: Vertex AI 服务账号 JSON 文件的路径。GOOGLE_API_KEY: (可选) Google API 密钥。
npm run devnpm run dev:debug方法 1: 直接启动(简单但不推荐)
npm run build
npm run start:prod方法 2: PM2 进程管理(推荐)
PM2 提供自动重启、日志管理、进程监控等生产级功能。
首先全局安装 PM2:
npm install -g pm2然后启动应用:
npm run pm2:start # 启动应用(自动编译+启动)
pm2 monit # 监控应用状态和性能
npm run pm2:logs # 查看实时日志
npm run pm2:restart # 重启应用(需要重新编译)
npm run pm2:reload # 优雅重启(零停机)
pm2 kill # 停止所有应用
npm run pm2:delete # 停止并删除应用启用系统启动时自动运行:
npm run pm2:startup # 配置开机自启
pm2 save # 保存当前配置方法 3: Docker 容器化部署(最佳实践)
使用 Docker 可以确保生产环境的一致性和隔离。
构建镜像:
docker build -t deepx-mini-server:latest .使用 docker-compose 启动(推荐):
docker-compose up -d # 后台启动
docker-compose logs -f # 查看日志
docker-compose ps # 查看容器状态
docker-compose stop # 停止服务
docker-compose down # 停止并移除容器或直接运行 Docker 容器:
docker run -d \
--name deepx-mini-server \
-p 3001:3001 \
-e NODE_ENV=production \
-e OPENROUTER_API_KEY=your_key_here \
-v ./key:/app/key:ro \
-v ./logs:/app/logs \
--restart unless-stopped \
deepx-mini-server:latest方法 4: Systemd 服务(Linux 系统原生方案)
将 deepx-mini-server.service 复制到 systemd 目录:
sudo cp deepx-mini-server.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable deepx-mini-server # 启用开机自启
sudo systemctl start deepx-mini-server # 启动服务
sudo systemctl status deepx-mini-server # 查看状态
sudo journalctl -u deepx-mini-server -f # 查看日志根据你使用的客户端类型,按以下步骤配置代理服务器地址:
-
在用户 home 目录下找到
.deepv/文件夹(用户 home 目录位置如下):- macOS:
~/.deepv/settings.json或/Users/你的用户名/.deepv/settings.json - Windows:
C:\Users\你的用户名\.deepv\settings.json
- macOS:
-
打开
settings.json文件 -
添加或修改
customProxyServerUrl配置项,例如:{ "customProxyServerUrl": "http://localhost:3001" } -
重启 CLI 使配置生效
- 打开 VSCode 的扩展设置
- 搜索
Custom Proxy Server Url - 在设置中填入代理服务器地址,例如:
http://localhost:3001 - 重启 VSCode 使配置生效
服务器地址示例:
- 本地开发:
http://localhost:3001 - 远程服务:
https://your-server-domain.com
- POST
/v1/chat/messages: 统一聊天接口。 - POST
/v1/chat/stream: 统一流式聊天接口。 - POST
/auth/jwt/deepvlab-login: Mock 登录接口,返回测试用的 JWT Token。 - GET
/health: 健康检查接口。
| 方案 | 场景 | 优点 | 缺点 |
|---|---|---|---|
| PM2 | 单机部署 | 简单易用,自动重启,日志管理 | 不支持水平扩展 |
| Docker + docker-compose | 开发/小规模生产 | 环境一致性好,便于扩展 | 需要 Docker 基础 |
| Kubernetes | 大规模生产 | 高可用,自动扩展,负载均衡 | 学习曲线陡,配置复杂 |
| Systemd | Linux 原生方案 | 系统级别,资源隔离好 | 仅限 Linux,功能相对简陋 |
- 小规模 & 单机 → PM2
- 中等规模 & 需要一致性 → Docker Compose
- 大规模 & 高可用 → Kubernetes
- Linux 系统优先 → Systemd
# 1. 启用集群模式(充分利用多核 CPU)
# 已在 ecosystem.config.js 中配置为 'cluster' 模式
# 2. 设置合理的进程数
# instances: 'max' 会自动使用全部 CPU 核心
# 3. 使用反向代理(Nginx)处理静态资源和负载均衡
# 推荐配置见 nginx.conf.example
# 4. 配置内存上限防止内存泄漏
# max_memory_restart: '1G' 会在内存超过 1GB 时自动重启
# 5. 启用 gzip 压缩(在反向代理层配置)使用 PM2 Plus(付费但值得):
pm2 link # 链接到 PM2 Plus Dashboard或者使用开源方案:
# 监控进程状态
pm2 monit
# 导出日志用于分析
pm2 save
pm2 logs --lines 1000 > server.log生产环境敏感信息处理:
不要将敏感信息存储在代码中,使用环境变量:
# .env.production(不提交到 Git)
NODE_ENV=production
PORT=3001
HOST=0.0.0.0
OPENROUTER_API_KEY=sk-xxxxx
VERTEX_CREDENTIALS_PATHS=/opt/deepx-mini-server/key/creds.json
CORS_ORIGIN=https://yourdomain.com使用 docker-compose 时,参考 .env 文件:
docker-compose --env-file .env.production up -d- Express: Web 框架。
- TypeScript: 编程语言。
- tsx: 开发环境运行工具。
- Google Auth Library: 处理 Google Cloud 鉴权。
- PM2: 生产级进程管理器。
- Docker: 容器化部署。