讲师中心 微信公众号
AI工具推荐 视频效率加速

Multi-Environment Isolator

Polar Sponsor
爱发电 赞助
.NET 9.0

为 uvicorn/FastAPI Python Web 项目生成独立的开发/测试/生产环境,支持前端(Vue/React)。创建独立的配置文件和启动脚本。

多环境孤立器

功能概述

多环境孤立器是一项面向实际任务的技能,主要用于将孤立的 dev/ test/ product 环境用于uvicorn/ FastAPI 的项目, 并有一个命令的前端支持( Vue/ React);What This Skill does. 这个技能解决了一个。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;

结果检查与注意事项

涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

多环境隔离器

使用一条命令,为基于 uvicorn/FastAPI 的项目(支持 Vue/React 前端)生成完全隔离的开发(dev)、测试(test)、生产(prod)环境。

该能力的作用

本能力解决多智能体 AI 团队中的一个常见问题:开发者、测试人员与生产用户相互干扰。 它生成一套完整的环境隔离方案,确保:

  • Valina(开发者) 可在 8000/3000 端口自由试错,不影响他人
  • Choco(测试人员) 可在 8001/3001 端口使用隔离的测试数据及 Playwright 测试验证发布版本
  • 生产环境 稳定运行于 8002/4173 端口,完全不受开发/测试活动影响

每个环境均拥有独立的配置文件、启动脚本(后端 + 前端)、数据库、媒体存储目录及 Playwright 测试配置——彼此彻底隔离。

生成内容说明

执行初始化脚本后,将在目标项目内创建如下结构:

your-project/
├── .env.dev              # 开发配置:DEBUG=True,启用热重载,无速率限制
├── .env.test             # 测试配置:启用速率限制,QA 相关设置
├── .env.prod             # 生产配置:DEBUG=False,启用安全 CORS,多 worker 模式
├── scripts/
│   # 后端脚本
│   ├── start-backend-dev.sh    # 在 8000 端口启动开发服务(含 --reload)
│   ├── start-backend-test.sh   # 在 8001 端口启动测试服务
│   └── start-backend-prod.sh   # 在 8002 端口启动生产服务(自动 worker 数量)
│   # 前端脚本(Vue/React)
│   ├── start-frontend-dev.sh   # 在 3000 端口启动开发前端
│   ├── start-frontend-test.sh  # 在 3001 端口启动测试前端
│   └── start-frontend-prod.sh  # 在 4173 端口启动生产前端(预览模式)
│   # 测试脚本
│   └── run-playwright-tests.sh # 在测试环境运行 Playwright 端到端测试
├── data/
│   ├── dev/              # 开发数据库 + 媒体上传目录(可安全删除)
│   │   └── media/
│   ├── test/             # 测试数据库 + 媒体上传目录
│   │   └── media/
│   └── prod/             # 生产数据库 + 媒体上传目录(请务必定期备份!)
│       └── media/
├── docs/
│   └── MULTI_ENV_SETUP.md  # 自动生成的团队部署指南
├── cloud_docs/frontend/
│   └── playwright.config.ts  # Playwright 测试配置(仅当前端存在时生成)
└── .gitignore            # 已更新,排除 .env.* 和 data/ 目录

使用方法

步骤 1:运行初始化脚本

python3 scripts/setup_envs.py /path/to/your-project 
  --name "Your Project Name" 
  --dev-backend-port 8000 
  --dev-frontend-port 3000 
  --test-backend-port 8001 
  --test-frontend-port 3001 
  --prod-backend-port 8002 
  --prod-frontend-port 4173 
  --dev-user "Valina" 
  --test-user "Choco" 
  --app-module "server.main:app" 
  --frontend-dir "cloud_docs/frontend"

除 --name 外,其余参数均为可选,均已预设合理默认值。

步骤 2:启动各环境

# Valina(开发)使用
./scripts/start-dev.sh        # 同时启动后端(8000)和前端(3000)

# Choco(测试)使用
./scripts/start-test.sh       # 同时启动后端(8001)和前端(3001)
./scripts/run-playwright-tests.sh  # 运行端到端测试

# 生产环境使用
./scripts/start-prod.sh       # 同时启动后端(8002)和前端(4173)

步骤 2:自定义配置

编辑生成的 .env.dev、.env.test、.env.prod 文件,添加项目专属配置,例如 API 密钥、外部服务地址等。

步骤 3:启动任一环境

# 启动开发环境(启用热重载)
./scripts/start-dev.sh

# 启动测试环境
./scripts/start-test.sh

# 启动生产环境
./scripts/start-prod.sh

每个脚本均加载其对应 .env.* 配置文件,绑定独立端口,并写入各自的 data/ 子目录。

命令参考

python3 scripts/setup_envs.py  --name  [options]
参数 默认值 说明
project_dir (必需) 目标项目的路径
--name (必需) 项目名称,用于配置文件与文档中
--dev-port 8020 开发服务器端口
--test-port 8010 测试服务器端口
--prod-port 8000 生产服务器端口
--dev-user (无) 开发者姓名,显示在开发环境启动提示中
--test-user (无) 测试人员姓名,显示在测试环境启动提示中
--db-type sqlite sqlite 或 postgres
--app-module server.main:app Uvicorn 应用模块路径
--dev-db (自动推导) 覆盖开发环境数据库 URL
--test-db (自动推导) 覆盖测试环境数据库 URL
--prod-db (自动推导) 覆盖生产环境数据库 URL

各环境关键差异速览

配置项 开发环境(Valina) 测试环境(Choco) 生产环境
后端端口 8000 8001 8002
前端端口 3000 3001 4173
DEBUG True True False
热重载 启用 禁用 禁用
CORS 允许全部来源 允许全部来源 严格限制
速率限制 关闭 开启 开启
Worker 数量 1(带 reload) 1 自动(按 CPU 核心数)
日志等级 DEBUG INFO WARNING
数据库目录 data/dev/ data/test/ data/prod/
媒体存储目录 data/dev/media/ data/test/media/ data/prod/media/
Playwright 测试 ❌ 不推荐 ✅ 推荐 ❌ 禁止

推荐的 Git 分支策略

采用本方案的团队建议如下分支模型:

main ──────────── 生产环境(start-prod.sh)— 端口 8002/4173
  ├── release/* ── 测试环境(start-test.sh + run-playwright-tests.sh)— 端口 8001/3001
  └── feature/* ── 开发环境(start-dev.sh)— 端口 8000/3000
  1. Valina(开发者) 在 feature/* 分支开发,部署至开发环境(8000/3000)
  2. 合并至 release/* 分支后,Choco(测试人员) 在测试环境(8001/3001)进行验证
  3. Choco 运行 Playwright 测试:./scripts/run-playwright-tests.sh
  4. 测试通过后,合并至 main 分支,并部署至生产环境(8002/4173)

并行开发与测试

核心优势:Valina 与 Choco 可同时工作,互不冲突!

时间  | Valina(开发)              | Choco(测试)
------|---------------------------|---------------------------
14:00 | start-dev.sh(8000/3000)  | -
14:05 | 继续编码...                | start-test.sh(8001/3001)
14:10 | 继续编码...                | run-playwright-tests.sh
14:20 | 继续编码...                | 测试通过!提交结果
14:25 | 继续编码...                | stop-test.sh

零端口冲突!零数据干扰! ✅

重要注意事项

  • 已有文件不会被覆盖。 若 .env.dev 已存在,脚本将跳过并输出警告。可安全重复执行。
  • 后端启动脚本专为 uvicorn 设计。 生成的 start-backend-*.sh 脚本调用 uvicorn 命令。如使用其他框架,请在生成后手动修改脚本。
  • 前端脚本支持 Vue/React。 生成的 start-frontend-*.sh 脚本使用 npm run dev 和 npm run preview。Vite 项目可开箱即用。
  • 生产环境 JWT 密钥必须更换。 生成的 .env.prod 中 JWT_SECRET 仅为占位符,请上线前替换为强随机值。
  • 请备份生产数据。 data/prod/ 目录包含生产数据库,请建立定期备份机制。
  • Playwright 测试依赖 Node.js。 测试脚本要求已安装 Playwright:npm install -D @playwright/test
  • 测试数据清理建议。 Playwright 测试运行后,建议清理测试数据以保持测试环境整洁。

详细配置参考

关于所有环境变量及故障排查,请查阅 references/config-options.md

目录

热门AI工具

更多
蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

更多
Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

0

2026.11.02

Uvicorn使用教程
Uvicorn使用教程

本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

0

2026.11.02

Uvicorn安装配置教程
Uvicorn安装配置教程

本专题汇总了Uvicorn的安装配置教程与部署指南,涵盖通过pip安装Uvicorn、启动FastAPI/Starlette应用、开发模式热重载(--reload)及多进程工作模式配置等核心操作。同时整理了结合Gunicorn的生产部署方案、HTTPS与反向代理配置及性能调优技巧,助你快速完成Uvicorn服务的安装与上线部署。

0

2026.11.02

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

0

2026.10.28

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

0

2026.10.28

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

0

2026.10.28

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

0

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn