# 智能信息跟踪应用 **Repository Path**: maohe101/ai-information-tracking ## Basic Information - **Project Name**: 智能信息跟踪应用 - **Description**: AI 信息追踪应用是一个基于大语言模型的智能信息聚合与追踪平台。 用户可以订阅感兴趣的话题,系统会利用 AI 技术持续追踪互联网上的相关信息变化,并在检测到实质性内容更新时,通过邮件自动推送精美排版的更新通知。 - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-25 - **Last Updated**: 2026-03-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能信息跟踪应用 (AI Information Tracking) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-2.6.13-brightgreen.svg)](https://spring.io/projects/spring-boot) [![Vue 3](https://img.shields.io/badge/Vue-3.0-blue.svg)](https://vuejs.org/) [![ElasticSearch](https://img.shields.io/badge/ElasticSearch-7.17-yellow.svg)](https://www.elastic.co/) [![Redis](https://img.shields.io/badge/Redis-6.0+-red.svg)](https://redis.io/) [![License](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT) ## 📖 项目简介 **智能信息跟踪应用** 是一个基于大语言模型(LLM)与 AI 搜索构建的智能化信息聚合与追踪平台。旨在解决信息大爆炸时代“精准获取高价值内容成本偏高”的痛点。 用户可按需订阅感兴趣的话题(如“DeepSeek最新进展”、“最新开源大模型发布”等),系统作为“私人AI助理”全天候自动化追踪全网相关资讯,并进行语义比对与摘要提炼,**仅在发生“实质性最新进展”时**才通过邮件推送精美报告,极大减少信息噪音,提升获取效率。 本项目包含基于 Elasticsearch 和 MongoDB 的混合检索方案、基于 Redis 锁的防缓存击穿机制、文本向量化去重以及接入大模型与联网搜索的信息归纳流程。作为一个前后端分离落地的全栈应用,为相关场景提供参考。 --- ## 核心技术亮点 ### 1. 深度协同的 AI 信息挖掘闭环 摒弃传统的“无脑爬虫命中检索”方案,完整构建了基于 AI 感知的自动化分析链路: - **动态关键词生成**:AI (大模型理解) 根据用户订阅的话题描述,动态提炼并推断生成精准命中目标的**最优搜索关键字**。 - **融合 AI 搜索源**:深度接入 **博查 (Bocha) AI Web Search API** 进行全网资讯多源聚合检索,完美兼顾了检索广度与大模型推理成本控制。 - **智能 Diff 对比分析**:将新检索的增量数据与 MongoDB 中的历史存量数据,投射至 LLM(智谱 AI)进行“语义级别”的差异对比。 - **去噪音推送机制**:通过定制化 AI 提示词与阈值规则约束,系统仅在研判为“实质性重大更新”时判定通过,持久化落盘并通过 Spring Boot Mail (融合 Thymeleaf 模板动态渲染)异步推送到用户邮箱。 ### 2. 高可用混合检索架构 (降级保障策略) 针对 C 端用户高频的核心话题列表查询场景,设计了 **ElasticSearch 优先 + MongoDB 自动降级兜底** 的混合架构,确保核心搜索体验的高可用: - **Level 1 (主链路)**:默认请求ElasticSearch,基于定制分词规则与倒排索引,发挥其毫秒级高并发、高弹性全文检索优势。 - **Level 2 (备链路)**:通过封装良好的业务降级捕获机制,一旦监测到 ES 集群不可访问或连接超时,平滑降级为 MongoDB 正则匹配模糊查询,保障应用检索模块的高可用。 ### 3. 基于高维向量化 (Embedding) 的话题去重与推荐 落地了基于 AI 向量引擎的社区化场景创新——语义级数据去重: - 实战对接 **阿里云 DashScope (通义千问) Embedding 模型接口**,对用户输入的 Topic 标题、描述等元数据进行实时高维向量映射。 - 利用向量间的**余弦相似度 (Cosine Similarity)** 进行实时碰撞计算,当查重匹配度 `> 0.5` 时,由后台主动拦截并触发相似话题自动推荐。 - 将“新建孤岛话题”引导为“订阅现有热度话题”,由源头遏制了僵尸话题泛滥,极大地促进了社区内容的集中孵化与高活跃互动。 ### 4. Redis 高并发缓存隔离方案 针对应用首页的话题推荐池、排行榜单等高流量请求入口,封装了全套缓存隔离组件 (`RedisCacheService`): - **防缓存击穿(逻辑热点探测)**:融合“逻辑主动过期”与“Redis互斥锁 (SetNx)”设计模式。访问前主动校验逻辑期限,如探测过期则进入抢锁,**抢锁成功**的唯一工作线程剥离异步任务重建缓存;**未抢到锁**的并发线程立即返回兜底(旧)快照数据,保障接口响应时间始终维持在百毫秒内的极致底线。 - **防缓存雪崩(随机雪崩打散)**:在系统约定的基础失效时间上,引入定制化的随机时间抖动偏差 (Random TTL Offset),精准击散海量 Key 在高并发环境下的同步集中过期洪峰。 ### 5. 可控吞吐优化:定制化守护线程池调度机制 针对系统内(大批量跑批定时任务、三方 LLM 推理接口 Rate-Limit QPS 限制)及外部搜搜引擎的频率限制: - 在 `ScheduledTaskService` 中,摒弃了粗暴的并行流盲目并发,精细化配置了**自定义 `ThreadPoolExecutor` (核心线程池) 的串行排队缓冲消费策略**。 - 采用 `Thread.sleep` 时间间隔退让与 `executeWithRetry` 限流阻塞重试策略(支持连续故障失败后的阶梯式退避),在高并发稳定性与大量长耗时链路的请求吞吐之间找到了平衡点,以极其稳定的姿态保障整套大规模追踪任务的最终数据一致性。 --- ## 🛠️ 技术栈总览 | 分层 | 技术选型 | 在本项目中的落地场景 | | :----------- | :------------------------------ | :-------------------------------------------------------------------------------------------- | | **基础框架** | **Spring Boot 2.6.x + Java 11** | 构建健壮的后端微服务,利用 `ThreadPoolExecutor` 定制多线程任务池,实现 AI 对比任务的串行限流与平稳调度。 | | **主检索核心** | **ElasticSearch 7.17** | 作为核心全文检索引擎,结合 `ik_smart` 中文分词器,承载 C 端用户对海量话题的高并发、毫秒级模糊搜索。 | | **持久层与降级** | **MongoDB 4.x** | 存储超大规模且结构多变的 AI 解析文稿(如动态 Timeline、Embedding 数组),并在 ES 宕机时作为底层正则匹配的容灾降级替补。 | | **高并发缓存** | **Redis 6.0+** | 实现话题列表页的热数据缓存。深度运用 `setNx` 互斥锁与逻辑过期策略解决缓存击穿,并辅以随机 TTL 偏移打散缓存雪崩。 | | **大模型(LLM)** | **Zhipu API (智谱 AI)** | 作为信息提炼大脑。负责根据标题**生成最优搜索词**,以及对新旧互联网长文本进行**语义级的 Diff 对比分析**,剔除无效噪音。 | | **AI 搜索引擎** | **Bocha Web Search (博查)+智普检索(可对比效果后二选一)** | 取代传统爬虫,提供 API 原生的全网搜搜服务,支持按时效性(Freshness)聚合全网最新的目标话题新闻流。 | | **高维向量引擎** | **DashScope (阿里通义)** | 调用 `text-embedding-v3` 模型API,将用户输入的自然语言转化为 1024 维的高维浮点数向量,通过**余弦相似度计算 (>0.5)** 实现话题精准查重与推荐关联。 | | **跨端前端工程** | **Vue 3 + uni-app** | 基于微信小程序生态,实现“动态广场-分类订阅-会员体系”的单页面应用渲染,支持 H5 与小程序的多端顺滑编译。 | | **中间件辅助** | **Spring Mail + JWT** | 将 AI 确认为“实质性更新”的精美总结通过 `Thymeleaf` 模板渲染后邮件推送;JWT 负责全站的无状态会话安全鉴权。 | --- ## 📂 项目核心模块结构解析 ```text ai-information-tracking/ ├── java-info-track/ # 后端微服务目录 │ └── src/main/java/com/mh/ │ ├── async/ # 异步任务处理器 (异步处理数据、异步邮件推送中心) │ ├── config/ # 原生Bean配置类 (ES Client、Redis序列化、AI Key等) │ ├── controller/ # RESTful API 控制器接入暴露层 │ ├── domain/ # 实体域模型 (DTO装载、POJO、ES Document隔离映射) │ ├── service/ # 核心业务层 │ │ ├── ScheduledTaskService # 定时追踪执行服务(包含定制线程池调度流) │ │ ├── RedisCacheService # 缓存服务 │ │ ├── ElasticSearchService # ES全文检索服务 │ │ └── InfoService # 话题相关核心服务(话题向量相似度计算) │ └── utils/ # 工具里(向量计算,JWT验证) │ └── vue/uni-info-tracking/ # 前端工程目录 └── pages/ # Uni-App 小程序前端页面 ``` --- ## 🚀 本地快速启动手册 ### 一、 软硬件环境要求 - Java 11+ - MongoDB 4.0+ - ElasticSearch 7.17.10 (务必自行安装配套版 ik 中文分词器插件) - Redis 6.0+ - Node.js 16+ / HBuilderX 开发工具集成环境 ### 二、 后端微服务启动指南 (java-info-track) 1. 克隆代码至本地,推荐使用 IntelliJ IDEA打开 2. 将 `java-info-track/src/main/resources/` 目录下的 **`application-read.yaml`** 重命名为 **`application.yaml`** (该文件已在 `.gitignore` 中忽略,以防密钥泄露)。 3. 打开 `application.yaml` 并全量替换以下**必须**填涂的配置项(具体见 YAML 内中文注释指引): - **基础存储组件**:MongoDB 连接信息 (`spring.data.mongodb.*`)、Redis 密码 (`spring.redis.password`)、ElasticSearch 地址口令 (`spring.elasticsearch.rest.*`) - **核心搜索与 AI 接口**:智谱大模型凭证 (`Zai.api-key`)、博查联网搜索 (`bocha.api-key`)、DashScope向量通道 (`embedding.api-key`) - **推送引擎与鉴权**:发件邮箱 SMTP (`spring.mail.*`)、JWT 加盐私钥 (`jwt.secret`) - **其他三方支撑**:微信小程序凭证 (`APPID` / `APPSECRET`)、阿里云 OSS 凭证 (`oss.*`)、管理端万能密钥 (`member.adminKey`) 4. 确认所有必填项完毕后,打包并运行: ```bash cd java-info-track mvn clean package -DskipTests java -jar target/java-info-track-0.0.1-SNAPSHOT.jar ``` ### 三、 前端渲染层启动 (Vue 3 生态) 1. 打开 [DCloud HBuilderX](https://www.dcloud.io/hbuilderx.html)。 2. 将本仓库底下的 `vue/uni-info-tracking` 目录通过 HBuilder 内部进行源码导入。 3. 在前端根目录执行 `npm i` 命令安装依赖,并配置APPID。 4. 点击 IDE 顶部工具栏:`运行 -> 运行到小程序模拟器 -> 微信开发者工具`(初次需要预先配置所在机器的微信开发者工具绝对路径,并在微信的“安全设置”开启当前项目服务端口暴露权限)。 ## 项目截图 ### Tabbar ![tabbar](https://tracking-info.oss-cn-guangzhou.aliyuncs.com/tabbar.png) ### 登录和个人信息 ![tabbar](https://tracking-info.oss-cn-guangzhou.aliyuncs.com/登录和个人信息.png) ### 检索和相似推荐 ![tabbar](https://tracking-info.oss-cn-guangzhou.aliyuncs.com/检索和相似推荐.png) ### 话题列表和阅读 ![tabbar](https://tracking-info.oss-cn-guangzhou.aliyuncs.com/话题列表和阅读.png) ## 访问体验小程序 tabbar