自动化报告生成工具

一款基于RAG架构和OpenAI的自动化报告生成工具,支持多种测试报告格式,智能整合历史文档和手动笔记,自动生成格式化的Word文档。

  • by SebasVargs
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 SebasVargs/auto_report_mcp

使用说明

自动化AI(自动报告GCP+RAG+AI)

使用RAG+OpenAI架构在Word(.docx)中自动生成专业报告。

该系统充当 智能文献代理 它不仅从交互式数据收集中生成报告,而且 学习你的写作风格 根据历史报告,并维持 智能知识库 (知识库)合并笔记。


🚀 主要特征

  1. 终端引导和交互式采集(CLI):根据所选报告的类型,通过提出智能问题来收集测试数据和日常进展。
  2. 支持多报告:支持多种软件测试报告格式:
    • 🛡️ 功能测试 (黑匣子)
    • 🧩 集成测试 (黑盒和白盒)
    • ⚙️ 单元测试 (纯白色盒子)
    • 📈 项目进展 (项目进展)
  3. 图像中的证据管理:直接从下载路径集成证据截图到Word文档 .docx 最终,具有缩放和自动格式。
  4. 智能知识库(RAG):
    • 历史摄入量处理文件 .docx 让她模仿你的写作。
    • 笔记管理(智能整合):允许输入手动技术说明。如果您使用语义相似性检测以前的相似注释,则使用IA进行 合并它们,在没有矛盾或冗余的情况下维护数据库。
    • 聊天之间:通过保留对话历史来查询从项目中获得的知识。
  5. 原生词生成:使用 python-docx.
  6. 与谷歌驱动器的集成:同步上下文报告、证据图像,并将结果报告直接保存在云中。
  7. 故障恢复:将会话保存在临时内存中 .session_checkpoint.json 在收集大量交互式数据期间,以避免在意外关闭时失去工作。

📂 项目结构

automatizationAI/
├── app/
│   ├── main.py              # Entrypoint principal
│   ├── config.py            # Configuración centralizada (Pydantic Settings)
│   ├── models/
│   │   └── report_model.py  # Modelos de Datos Centrales (Report Type, Test Cases)
│   ├── services/
│   │   ├── ai_service.py    # Abstracción de OpenAI (Prompts, Generación y Fusión)
│   │   ├── word_service.py  # Construcción del .docx dinámico
│   │   ├── data_service.py  # Persistencia de JSONs crudos
│   │   ├── drive_service.py # Interacción con la API de Google Drive
│   │   └── interactive_narrative_assistant.py # Agente de ayuda interactiva en consola
│   └── rag/
│       ├── knowledge_ingestion.py   # Ingesta de contexto y consolidación de notas
│       ├── knowledge_retriever.py   # Consulta interactiva (Chat RAG)
│       ├── vector_store.py          # Abstracción de ChromaDB local
│       ├── retriever.py             # Recuperación de Estilos de escritura
│       └── embedding_service.py     # Embeddings modelo OAI
├── data/
│   ├── raw_reports/         # Informes históricos para contexto RAG
│   ├── input_images/        # Directorio temporal de evidencias
│   └── daily_inputs/        # Archivos JSON estructurados en proceso
├── vector_db/               # Almacenamiento local persistente ChromaDB
├── output_reports/          # .docx generados localmente
└── cli.py                   # 🖥️ CLI Principal del Sistema

🛠️ 安装和配置

1.克隆和配置环境

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

2.环境变量

cp .env.example .env
# Edita el .env introduciendo tu OPENAI_API_KEY y credenciales de Google

AI模型说明: CLI和生成使用JSON模式(例如。 gpt-4o).

3.驱动器凭据

放置您的文件 credentials.json 在根目录(从谷歌云控制台生成)和您的令牌 token.json 它将在第一次登录时自动生成。


💻 使用CLI接口

人类用户的操作心脏是文件 cli.py (丰富的互动界面)。执行:

python cli.py

主菜单

  • [笑]📝 生成报告]: 它启动一个指导性问卷,收集每种报告类型的信息。它支持图像上传、动态人工智能建议、内存自动保存和Word文档的最终呈现。

  • [笑]📚 项目知识库]: 允许同步报告 .docx 旧的Google Drive或添加项目背景的手动注释。在这里,如果您检测到重复的主题,询问您是否想要,控制台将被激活 合并 (与IA合并)以避免碎片化。

  • [笑]🔍 咨询知识(聊天): RAG互动界面。以自由流畅的方式与您的知识笔记交谈。

  • [笑]🗂️ 列出报告]: 检查您完成的本地报告的历史记录。


🧠 重构恢复系统

RAG系统进行了重构,以解决混合测试类型、LLM发明的方法和被忽视的每日笔记的问题。

4个Chromadb系列

集合 内容 文档类型
unit_tests 模拟/存根测试单元 UNIT_TEST
integration_tests 测试DB/HTTP/API INTEGRATION_TEST
functional_tests 测试e2e/browser/Gherkin FUNCTIONAL_TEST
project_docs 方法文件,项目,每日说明 METHOD_DOC, PROJECT_DOC, DAILY_NOTE

RAG v2 模块

app/rag/
├── rag_schema.py                    # DocType, CollectionName, DocumentMetadata
├── docx_reader.py                   # Lector enriquecido de .docx
├── collection_manager.py            # Inicialización de 4 colecciones
├── document_classifier.py           # Clasificador automático de documentos
├── structural_chunker.py            # Chunking por unidad lógica
├── document_ingestion_pipeline_v2.py # Pipeline de ingestión con clasificación
├── query_router.py                  # TestAwareQueryRouter (reemplaza Multi-Query)
├── method_validator.py              # Validador anti-alucinaciones
├── semantic_cache.py                # Caché semántico de resultados
├── rag_system.py                    # Orquestador principal (TestRAGSystem)
└── migrate_to_v2.py                 # Script de migración legacy → v2

如何添加每日说明

from app.rag.rag_system import TestRAGSystem

system = TestRAGSystem()
system.add_daily_note(
    "Hoy migré el módulo de pagos a la nueva API. "
    "El método processPayment ahora retorna PaymentResult.",
    date="2024-01-15"  # opcional, default = hoy
)

每天的笔记总是出现 首先 在恢复的上下文中 priority_score = 2.0.

如何从方法中摄入文档.docx

system.add_document("docs/UserService.docx")
# O un directorio completo:
system.add_directory("docs/", recursive=True)

正确检测所需的.docx格式

为了使分类器正确检测 .docx 作为方法文件:

  1. 标题1:组件名称(例如: UserService)
  2. 普通段落:概述
  3. 代码块 (消息来源Courier New/控制台):方法签名
  4. 塔布拉斯:参数、回报等。

结构示例:

  • Heading 1: "UserService"
  • 段落:“管理用户的生命周期”
  • 代码(快递): def save_user(self, user: UserDTO) -> User:
  • 代码(快递): def find_by_id(self, user_id: int) -> Optional[User]:

遗留数据迁移

# Dry run (sin escribir datos):
python -m app.rag.migrate_to_v2 --dry-run

# Migración real:
python -m app.rag.migrate_to_v2

遗产收藏不会自动删除(保留为备份)。


自动化AI 它的构建专注于最大限度地减少手动报告时间,集中业务上下文,并在提示符和组件级别进行清洁的架构设计。