Files
crewai/QUICKSTART.md
2026-03-13 18:12:31 +08:00

238 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SDLC Agent Demo - 快速使用指南
## 项目概述
这是一个基于 **CrewAI + Qwen3.5-flash + FastAPI(SSE)** 的多智能体软件交付协同系统演示项目。
### 核心功能
-**PM Agent** - 将用户需求转化为结构化 SRS 文档
-**QA Agent** - 根据 SRS 生成自动化测试用例
-**Dev Agent** - 根据需求和测试用例实现业务代码
-**SSE 实时流** - 实时展示各智能体执行进度
-**现代化 UI** - Vue3 + TailwindCSS 单页面应用
---
## 快速启动3 步)
### 步骤 1: 配置 API Key
```bash
# 复制环境变量模板
copy .env.example .env
# 编辑 .env 文件,填入你的 DashScope API Key
# 获取地址https://dashscope.console.aliyun.com/
```
**.env 文件内容:**
```env
DASHSCOPE_API_KEY=sk-your-api-key-here
QWEN_MODEL=qwen3.5-flash
HOST=0.0.0.0
PORT=8000
```
### 步骤 2: 启动服务
**方式 A: 使用启动脚本Windows**
```bash
start.bat
```
**方式 B: 手动启动**
```bash
# 激活虚拟环境(如果有)
python -m venv venv
venv\Scripts\activate # Windows
source venv/bin/activate # Linux/Mac
# 启动 FastAPI 服务
uvicorn main:app --reload --host 0.0.0.0 --port 8000
```
### 步骤 3: 访问应用
打开浏览器访问:**http://localhost:8000/static/index.html**
---
## 使用示例
### 输入需求示例
在首页输入框中输入以下需求:
```
开发一个在线书签管理系统,需要包含以下功能:
1. 用户注册和登录(支持邮箱验证)
2. 书签的添加、编辑、删除
3. 书签分类和标签管理
4. 书签搜索功能
5. 导出/导入书签HTML 格式)
6. 响应式设计,支持移动端访问
性能要求:
- 页面加载时间 < 2 秒
- 支持并发用户数 > 1000
```
### 预期输出
系统将依次执行:
1. **PM Agent** → 生成《软件需求规格说明书 (SRS)》
- 功能性需求清单
- 非功能性需求(性能、安全等)
- 验收标准
2. **QA Agent** → 生成《测试方案与用例》
- Pytest 测试脚本框架
- 测试场景描述
- 测试数据准备
3. **Dev Agent** → 生成《业务代码实现》
- 完整的 Python 代码模块
- 数据模型定义
- API 接口设计
---
## API 接口说明
### 1. 启动任务
```bash
curl -X POST http://localhost:8000/api/v1/sdlc/start \
-H "Content-Type: application/json" \
-d '{"requirement": "开发一个简单的待办事项应用"}'
```
**响应:**
```json
{
"task_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "processing"
}
```
### 2. SSE流式进度
```bash
curl -N http://localhost:8000/api/v1/sdlc/stream/{task_id}
```
**事件类型:**
- `pm_start` / `pm_complete` - PM 阶段开始/完成
- `qa_start` / `qa_complete` - QA 阶段开始/完成
- `dev_start` / `dev_complete` - Dev 阶段开始/完成
- `final_result` - 最终结果
- `error` - 错误处理
### 3. 查询状态
```bash
curl http://localhost:8000/api/v1/sdlc/status/{task_id}
curl http://localhost:8000/api/v1/sdlc/result/{task_id}
```
---
## Docker 部署
### 构建镜像
```bash
docker build -t sdlc-agent-demo .
```
### 运行容器
```bash
docker run -d \
-p 8000:8000 \
-e DASHSCOPE_API_KEY=your_api_key \
--name sdlc-demo \
sdlc-agent-demo
```
### 访问服务
http://localhost:8000/static/index.html
---
## 常见问题
### Q1: 如何获取 DashScope API Key
访问 https://dashscope.console.aliyun.com/ 注册账号并创建 API Key。
### Q2: 支持其他模型吗?
可以修改 `.env` 中的 `QWEN_MODEL` 参数,使用其他 OpenAI 兼容的模型。
### Q3: SSE 连接中断怎么办?
- 检查防火墙设置
- 增加超时时间(修改 `main.py` 中的 timeout 参数)
- 前端已自动实现重连机制
### Q4: 输出质量不佳?
- 调整 Temperature 参数(降低随机性)
- 优化 Prompt 描述
- 增加更详细的上下文约束
---
## 技术栈
| 组件 | 技术 | 版本 |
|------|------|------|
| AI 框架 | CrewAI | >=0.85.0 |
| 大模型 | Qwen3.5-flash | via DashScope |
| Web 框架 | FastAPI | >=0.109.0 |
| 实时通信 | SSE | sse-starlette |
| 前端 | Vue3 | 3.x |
| UI 框架 | TailwindCSS | 3.x |
| 代码高亮 | Highlight.js | 11.9.0 |
---
## 项目结构
```
sdlc_agent_demo/
├── main.py # FastAPI 入口
├── agents/
│ ├── pm_agent.py # PM 智能体
│ ├── qa_agent.py # QA 智能体
│ └── dev_agent.py # Dev 智能体
├── crews/
│ └── sdlc_crew.py # 编排逻辑
├── models/
│ └── qwen_config.py # 模型配置
├── static/
│ └── index.html # 前端页面
├── .env.example # 环境变量模板
├── Dockerfile # Docker 配置
├── requirements.txt # Python 依赖
└── README.md # 详细文档
```
---
## 下一步计划
- [ ] 支持多任务并行处理
- [ ] 添加任务历史记录
- [ ] 集成代码执行沙箱
- [ ] 支持更多模型后端
- [ ] 添加认证授权机制
---
**Built with ❤️ using CrewAI + Qwen3.5-flash + FastAPI**