InsightFeed 是一个结合 Spring Cloud Alibaba 微服务 与 LLM 能力 的智能内容投放平台。项目涵盖完整的服务端链路(用户、内容、LLM 处理、推荐、互动)以及基于 Next.js 16 的门户与运营后台,目标是在几秒内完成内容入库、理解、向量化并在前端 Feed 中实时呈现推荐结果。完整架构设计详见 docs/InsightFeed项目架构方案.md。
- 内容冷启动秒级打通:内容服务推送新稿至 RabbitMQ,LLM 处理服务使用 LangChain4j + DeepSeek 生成摘要、关键词与向量,落地 Milvus/ES 后回写状态。
- 混合推荐引擎:推荐服务通过
CompletableFuture并行调用用户协同过滤、语义向量召回、热点榜、标签倒排等策略,并支持 RAG 解释生成与 SSE 推送。 - 高并发互动埋点:点赞/阅读事件先写 Redis + Kafka,Hot Feed 通过 Redis ZSet 即时出榜,再由消费端异步落库。
- 门户 + 管理双端体验:Next.js 前端提供 Feed 首页、文章详情、AI 投稿页,以及 Dashboard、CMS、Prompt Engineering、用户/设置等后台模块。
- 工程化能力:统一 BOM(
insight-feed-dependencies)、JWT 鉴权链路、Nacos 配置中心、Docker Compose 一键拉起所需基础设施。
| 模块/服务 | 说明 |
|---|---|
insight-feed-gateway |
Spring Cloud Gateway 统一流量入口,JWT 全局过滤器透传用户上下文,并负责熔断、限流策略。 |
insight-feed-user |
用户注册登录、标签管理,使用 Spring Security、MyBatis-Plus、Redis 缓存兴趣向量。 |
insight-feed-content |
文章创建、状态流转、触发 LLM 处理并接受回调更新摘要/Embedding 状态。 |
insight-feed-llm-processor |
LangChain4j 封装 DeepSeek/OpenAI,大纲生成、Embedding、Milvus/ES 写入,并暴露内部 /api/internal/llm/embedding。 |
insight-feed-recommend |
并行多策略召回 + 轻量级排序,调用 Milvus、ES 与热点缓存,必要时触发 RAG 解释。 |
insight-feed-interaction |
点赞/曝光/阅读埋点,Redis 统计 + Kafka 异步链路,维护实时热榜。 |
frontend |
Next.js 16 + Tailwind + Shadcn UI,覆盖门户首页、文章详情、投稿编辑器、Dashboard、CMS、Prompt、用户中心、设置中心等页面。 |
更多背景、时序图与 Q&A 策略可查阅 docs/InsightFeed项目架构方案.md。
.
├── backend/ # Spring Cloud 微服务及 docker-compose
│ ├── docker-compose.yml # MySQL/Redis/Nacos/MinIO/Milvus/ES/RabbitMQ 等
│ ├── sql/ # 初始化脚本及示例数据
│ └── insight-feed-* # 各微服务模块
├── frontend/ # Next.js 16 门户 & 运营后台
├── docs/InsightFeed项目架构方案.md # 架构方案(DDD + 微服务 + LLM)
└── README.md # 当前文件
- 后端:JDK 21、Spring Boot 3.2、Spring Cloud 2023、Spring Cloud Alibaba 2023、LangChain4j、MyBatis-Plus、MapStruct、JWT、Kafka、RabbitMQ。
- 前端:Next.js 16 (App Router)、React 19、TypeScript、Tailwind CSS 4、Shadcn UI、Recharts、Lucide Icons、React Markdown。
- 基础设施:MySQL 8、Redis 7、Nacos、Milvus 2.4 + MinIO + Etcd、Elasticsearch 8、RabbitMQ 3.12、Docker Compose。
-
准备运行环境
- 必备:JDK 21、Maven 3.9+、Node.js 20+、npm、Docker / Docker Compose。
- 设置必要环境变量(样例):
DEEPSEEK_API_KEY、NACOS_SERVER=localhost:8848,其余中间件地址可在backend/*/src/main/resources/application*.yml中覆写。
-
启动基础设施
cd backend docker compose up -d首次启动会自动执行
sql/init.sql。Milvus 依赖 Etcd + MinIO,确保容器都处于healthy状态。 -
构建并启动微服务
cd backend mvn clean install # 选择需要的模块运行 mvn spring-boot:run -pl insight-feed-gateway mvn spring-boot:run -pl insight-feed-user mvn spring-boot:run -pl insight-feed-content mvn spring-boot:run -pl insight-feed-llm-processor mvn spring-boot:run -pl insight-feed-recommend mvn spring-boot:run -pl insight-feed-interaction
insight-feed-common、insight-feed-dependencies为依赖模块,无需单独启动。- 如需导入 IDE,可直接以 Maven 多模块工程打开
backend/。
-
运行前端
cd frontend npm install npm run dev # 默认 http://localhost:3000
npm run build && npm run start可预览生产构建。npm run lint执行 ESLint 规则。
-
验证链路
POST /auth/register、POST /auth/login(gateway 转发至insight-feed-user)获取 JWT。POST /articles创建文章,检查 RabbitMQ 消息与 LLM 回调PUT /internal/articles/analysis。GET /api/recommend/feed?userId=可查看混合召回结果及 RAG 推荐理由。- 前端门户首页展示 Feed 卡片、AI summary;后台 CMS / Prompt 页面实时读取 API。
- 详细架构、流程图、数据库设计与 Q&A:
docs/InsightFeed项目架构方案.md - 后端微服务说明:
backend/README.md - 前端功能说明:
frontend/README.md - 如果扩展模块/策略,请同步更新上述文档以及
backend/docker-compose.yml
- Fork 或创建功能分支,保持与主分支同步。
- 提交前运行
mvn clean verify(后端)与npm run lint(前端),确保构建通过。 - 对新增中间件/配置在 README 与
docker-compose中补充说明。 - 通过 Pull Request 描述需求、影响面与测试结果。
欢迎继续完善更多召回策略、互动类型、监控告警与前端数据可视化能力。