Bikash07-git/tri9t-ai-internship
GitHub: Bikash07-git/tri9t-ai-internship
基于 FastAPI 和 PyMuPDF 构建的 PDF 技术手册版本管理系统,能解析文档层级结构、生成测试用例并在文档更新后自动检测过期用例。
Stars: 0 | Forks: 0
# Tri9T AI 实习作业
## 概述
本项目实现了一个 AI 辅助的后端系统,用于管理版本化的技术手册。
该应用程序可以解析 PDF 手册,提取文档的层级结构,将其存储在 SQLite 数据库中,生成基于 LLM 的测试用例,并在上传更新版本的文档后检测先前生成的测试用例是否过期。
该后端使用 FastAPI 开发,展示了文档解析、版本管理、检索和自动化过期检测等功能。
## 功能
- 使用 PyMuPDF 解析 PDF 手册
- 提取文档层级结构
- 将文档版本存储在 SQLite 中
- 生成结构化的测试用例
- 检索已保存的测试用例
- 比较文档版本
- 检测文档更新后过期的测试用例
- 提供 RESTful API 及 Swagger UI
## 技术栈
- Python 3.13
- FastAPI
- SQLite
- SQLAlchemy
- PyMuPDF (fitz)
- Pydantic
- Uvicorn
## 项目结构
```
tri9t_assignment/
│
├── data/
│ ├── ct200_manual.pdf
│ └── ct200_manual_v2.pdf
│
├── database.py
├── models.py
├── parser.py
├── schemas.py
├── main.py
├── requirements.txt
├── README.md
└── .gitignore
```
## 安装说明
克隆仓库
```
git clone https://github.com/Bikash07-git/tri9t-ai-internship.git
```
进入项目
```
cd tri9t-ai-internship
```
创建虚拟环境
```
python -m venv venv
```
激活虚拟环境
Windows
```
venv\Scripts\activate
```
安装依赖项
```
pip install -r requirements.txt
```
## 运行应用程序
启动 FastAPI 服务器
```
uvicorn main:app --reload
```
应用程序
```
http://127.0.0.1:8000
```
Swagger 文档
```
http://127.0.0.1:8000/docs
```
## API Endpoints
### 上传 / 解析文档
解析并存储一个文档版本。
### 检索测试用例
```
GET /retrieval/{selection_id}
```
返回内容
- 生成的测试用例
- 版本信息
- 过期状态
- 节点比较详细信息
## 版本对比
该应用程序使用内容哈希值来比较多个文档版本。
如果某个文档章节在新版本中发生了变化:
- 该章节将被标记为已更新。
- 现有的测试用例将变为过期状态。
- API 将报告受影响的节点。
## 数据库
SQLite 用于存储
- 文档
- 文档版本
- 层级节点
- 用户选择
- 生成的测试用例
## 前提假设
- PDF 遵循结构化的技术文档格式。
- 可以通过格式和层级结构来识别标题。
- 文档按新版本的顺序依次上传。
- 生成的测试用例与文档节点相关联。
## 未来改进
- 为扫描版 PDF 提供 OCR 支持
- 集成向量数据库
- 语义相似度匹配
- 基于的 OpenAI/Gemini 测试生成
- 身份验证和用户管理
- Docker 部署
- PostgreSQL 支持
## 作者
**Bikash Sagar Koiri**
GitHub:
https://github.com/Bikash07-git
标签:AV绕过, FastAPI, SQLite, 后端开发, 文档解析, 版本管理, 逆向工具