# tech_intel_system **Repository Path**: stasterbai/tech_intel_system ## Basic Information - **Project Name**: tech_intel_system - **Description**: AI写的技术文献搜索整合宇宙可视化模型 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-18 - **Last Updated**: 2026-03-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI 技术情报系统 一个完整的 AI 技术情报采集、分析与可视化系统,支持论文采集、聚类分析、趋势预测和报告生成。 ## 功能特性 - **数据采集**: 从 OpenAlex 采集 AI 相关论文数据 - **智能聚类**: 使用 HDBSCAN 进行主题聚类,自动提取关键词 - **趋势分析**: 计算增长率、加速度、移动平均,识别爆发/增长/稳定/衰退趋势 - **向量索引**: FAISS 向量索引支持高效相似性搜索与持久化 - **图数据库**: Neo4j 集成支持知识图谱构建(可选) - **RESTful API**: Route/Service/Repository 分层架构 - **可视化**: Three.js 3D 技术雷达可视化 - **报告生成**: 自动生成结构化 PDF 报告并发送邮件 ## 系统架构 ``` 数据采集层 (OpenAlex) ↓ 数据处理层 (清洗/去重) ↓ 语义理解层 (Embedding + FAISS) ↓ 关系建模层 (Neo4j 图谱) ↓ 分析层 (HDBSCAN 聚类 + 热点检测) ↓ 预测层 (增长率/加速度/趋势判断) ↓ 可视化层 (三维技术雷达) ↓ 报告层 (自动周报 + PDF + 邮件) ``` ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 配置环境 ```bash cp .env.example .env # 编辑 .env 文件,填写必要配置(如邮件设置) ``` ### 3. 运行 Pipeline ```bash # 使用默认配置运行 python run_pipeline.py # 自定义参数 python run_pipeline.py --keyword "machine learning" --pages 5 # 指定配置文件 python run_pipeline.py --config custom_config.yaml ``` ### 4. 启动 API 服务 ```bash python app.py ``` API 将在 `http://localhost:5000` 启动。 ## API 端点 | 端点 | 方法 | 描述 | |------|------|------| | `/` | GET | API 首页和端点列表 | | `/api/tech-radar` | GET | 获取技术雷达数据 | | `/api/tech-radar/hotspots` | GET | 获取热点技术 | | `/api/clusters` | GET | 获取所有聚类 | | `/api/clusters/` | GET | 获取聚类详情 | | `/api/trends` | GET | 获取所有趋势 | | `/api/trends/predict` | GET | 趋势预测 | | `/api/trends/cluster/` | GET | 获取聚类趋势 | | `/api/reports` | GET | 生成报告 | | `/health` | GET | 健康检查 | ### 查询参数示例 ```bash # 获取 2020-2024 年的技术雷达数据 curl "http://localhost:5000/api/tech-radar?min_year=2020&max_year=2024" # 获取前 5 个热点技术 curl "http://localhost:5000/api/tech-radar/hotspots?limit=5" # 获取特定聚类的详情 curl "http://localhost:5000/api/clusters/1" # 生成 PDF 报告 curl "http://localhost:5000/api/reports?format=pdf" ``` ## 项目结构 ``` tech_intel_system/ ├── core/ # 核心基础设施 │ ├── __init__.py │ ├── settings.py # 配置管理 (config.yaml + .env) │ ├── logger.py # 统一日志 │ ├── retry.py # 重试与降级机制 │ └── database.py # 数据库管理 (SQLite) ├── ingest/ # 数据采集 │ └── openalex.py # OpenAlex API ├── processing/ # 数据处理 │ └── clean.py # 文本清洗 ├── embedding/ # 向量化 │ ├── embed.py # Embedding (支持batch和缓存) │ └── faiss_index.py # FAISS 索引 (保存/加载/增量更新) ├── clustering/ # 聚类分析 │ └── hdbscan_cluster.py # HDBSCAN (配置驱动+关键词提取) ├── analysis/ # 趋势分析 │ └── trend.py # 趋势计算 (growth/acceleration/label) ├── graph/ # 图数据库 │ ├── __init__.py │ └── neo4j_client.py # Neo4j 批量写入 ├── backend/ # 后端服务 (分层架构) │ ├── __init__.py │ ├── repository/ # 数据访问层 │ │ ├── paper_repo.py │ │ ├── cluster_repo.py │ │ └── trend_repo.py │ ├── service/ # 业务逻辑层 │ │ ├── tech_radar_service.py │ │ ├── cluster_service.py │ │ ├── trend_service.py │ │ └── report_service.py │ └── routes/ # API 路由 │ ├── tech_radar_routes.py │ ├── cluster_routes.py │ ├── trend_routes.py │ └── report_routes.py ├── config.yaml # 主配置文件 ├── run_pipeline.py # Pipeline 入口 (orchestrator) ├── app.py # Flask 应用入口 ├── config.py # 旧版配置 (兼容) ├── report.py # 报告生成 ├── pdf.py # PDF 生成 ├── emailer.py # 邮件发送 ├── requirements.txt # 依赖列表 ├── .env.example # 环境变量示例 └── README.md # 本文件 ``` ## 配置说明 ### config.yaml 主配置文件,支持以下模块配置: ```yaml app: # 应用配置 pipeline: # Pipeline 配置 (重试、阶段等) database: # 数据库配置 embedding: # Embedding 配置 (模型、缓存) faiss: # FAISS 索引配置 clustering: # 聚类配置 (HDBSCAN 参数) trend: # 趋势分析配置 (阈值) neo4j: # Neo4j 配置 logging: # 日志配置 smtp: # 邮件配置 report: # 报告配置 ``` ### 环境变量 环境变量优先级高于 config.yaml,适合存储敏感信息(如密码)。 ## 数据库 Schema ### papers 表 | 字段 | 类型 | 描述 | |------|------|------| | id | TEXT | 论文 ID (主键) | | title | TEXT | 标题 | | abstract | TEXT | 摘要 | | year | INTEGER | 年份 | | cluster_id | INTEGER | 聚类 ID | | x, y, z | REAL | 3D 坐标 | | growth | REAL | 增长率 | ### clusters 表 | 字段 | 类型 | 描述 | |------|------|------| | cluster_id | INTEGER | 聚类 ID | | size | INTEGER | 论文数量 | | keywords | TEXT | 关键词 (JSON) | | growth | REAL | 增长率 | | acceleration | REAL | 加速度 | | moving_avg | REAL | 移动平均 | | trend_label | TEXT | 趋势标签 | ### relations 表 | 字段 | 类型 | 描述 | |------|------|------| | source_id | TEXT | 源节点 ID | | target_id | TEXT | 目标节点 ID | | relation_type | TEXT | 关系类型 | | weight | REAL | 权重 | ## 趋势分析 系统支持四种趋势标签: | 标签 | 条件 | |------|------| | 爆发 | growth > 2.0 且 acceleration > 0.3 | | 增长 | growth > 1.5 或 acceleration > 0.3 | | 稳定 | 0.8 < growth < 1.5 | | 衰退 | growth < 0.8 | ## 开发 ### 运行测试 ```bash pytest tests/ ``` ### 代码风格 ```bash black . isort . ``` ## 应用场景 - **企业**: 技术战略制定、研发方向选择 - **咨询**: 行业分析报告、客户技术研究 - **研究机构**: 学术趋势分析、前沿技术追踪 - **个人**: 技术学习路径规划、前沿方向判断 ## 许可证 MIT License