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, 后端开发, 文档解析, 版本管理, 逆向工具