compliance/memory-bank/techContext.md
gongwenxin df90a5377f mvp
2025-06-16 14:49:49 +08:00

88 lines
2.8 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.

# 技术上下文
## 技术栈概览
合规性测试工具基于以下技术栈构建:
| 类别 | 技术 | 版本 | 用途 |
|------|------|------|------|
| 核心语言 | Python | 3.8+ | 主要开发语言 |
| Web框架 | Flask | 2.0+ | Web界面实现 |
| 数据库 | SQLite | 3.0+ | 用户认证和会话管理 |
| HTTP客户端 | Requests | 2.0+ | 发送API请求 |
| AI集成 | LLM API (兼容OpenAI) | - | 智能测试数据生成 |
| 前端 | HTML/CSS/JavaScript | - | Web界面展示 |
| 报告格式 | JSON, Markdown | - | 测试报告生成 |
## 开发环境设置
### 必要组件
- Python 3.8+
- pip (Python包管理器)
- 支持Python的IDE (如PyCharm, VS Code)
- Git (版本控制)
### 项目安装步骤
1. 克隆代码仓库:`git clone <仓库URL>`
2. 安装依赖:`pip install -r requirements.txt`
3. 初始化数据库:`flask --app flask_app init-db`
4. 运行Web服务`python flask_app.py`
5. 运行命令行测试:`python run_api_tests.py [参数]`
### 关键依赖项
项目的`requirements.txt`文件包含以下主要依赖:
- FlaskWeb框架
- WerkzeugWSGI实用工具库
- requestsHTTP客户端
- PyYAMLYAML解析
- jsonschemaJSON Schema验证
- pydantic数据验证和设置管理
- openaiOpenAI API客户端
- Flask-Cors处理跨域请求
## 技术约束
### 1. 性能考量
- 测试执行过程可能涉及大量HTTP请求需要考虑超时处理和重试机制
- LLM API调用可能较慢需要实现缓存机制避免重复生成
- 测试报告可能很大,需要优化生成和展示方式
### 2. 安全考虑
- 用户认证使用密码哈希存储,避免明文密码
- API密钥等敏感信息需要安全存储
- 上传的API规范文件需要验证格式和安全性
### 3. 兼容性要求
- 支持解析YAPI和Swagger/OpenAPI规范JSON/YAML格式
- 支持不同版本的OpenAPI规范2.0/3.0
- 支持不同API认证方式Basic, Bearer Token, API Key等
### 4. 扩展性设计
- 测试用例通过类继承机制支持自定义扩展
- 测试阶段支持插件式扩展
- LLM提供商可配置支持不同模型
### 5. 网络依赖
- 需要网络连接才能访问目标API服务
- 使用LLM功能需要访问外部AI服务API
## 开发工作流
1. **代码组织**
- `flask_app.py`Web界面入口
- `run_api_tests.py`:命令行入口
- `ddms_compliance_suite/`:核心测试框架
- `custom_testcases/`:自定义测试用例
- `custom_stages/`:自定义测试阶段
- `test_reports/`:测试报告输出
2. **开发流程**
- 使用Git进行版本控制
- 遵循PEP 8 Python编码规范
- 编写单元测试验证核心功能
- 文档驱动开发,保持代码和文档同步
3. **调试技巧**
- 使用日志记录关键信息
- Flask调试模式提供详细错误信息
- 测试用例可以单独运行进行调试