自动化AI(自动报告GCP+RAG+AI)
使用RAG+OpenAI架构在Word(.docx)中自动生成专业报告。
该系统充当 智能文献代理 它不仅从交互式数据收集中生成报告,而且 学习你的写作风格 根据历史报告,并维持 智能知识库 (知识库)合并笔记。
______________________________________________________________________
🚀 主要特征
- 终端引导和交互式采集(CLI):根据所选报告的类型,通过提出智能问题来收集测试数据和日常进展。
- 支持多报告:支持多种软件测试报告格式:
- 🛡️ 功能测试 (黑匣子) - 🧩 集成测试 (黑盒和白盒) - ⚙️ 单元测试 (纯白色盒子) - 📈 项目进展 (项目进展)
- 图像中的证据管理:直接从下载路径集成证据截图到Word文档
.docx最终,具有缩放和自动格式。 - 智能知识库(RAG):
- 历史摄入量处理文件 .docx 让她模仿你的写作。 - 笔记管理(智能整合):允许输入手动技术说明。如果您使用语义相似性检测以前的相似注释,则使用IA进行 合并它们,在没有矛盾或冗余的情况下维护数据库。 - 聊天之间:通过保留对话历史来查询从项目中获得的知识。
- 原生词生成:使用
python-docx. - 与谷歌驱动器的集成:同步上下文报告、证据图像,并将结果报告直接保存在云中。
- 故障恢复:将会话保存在临时内存中
.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.txt2.环境变量
cp .env.example .env
# Edita el .env introduciendo tu OPENAI_API_KEY y credenciales de GoogleAI模型说明: 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:组件名称(例如:
UserService) - 普通段落:概述
- 代码块 (消息来源Courier New/控制台):方法签名
- 塔布拉斯:参数、回报等。
结构示例:
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 它的构建专注于最大限度地减少手动报告时间,集中业务上下文,并在提示符和组件级别进行清洁的架构设计。
