How crazy-chenmilin/vlog works
知光是前后端分离的知识社区:用户登录后可发布和浏览知识内容、互动与搜索,也可围绕文章或全库进行 AI 问答。发布流程由前端创建草稿、申请预签名上传、直传资源并确认内容;RAG 请求经检索与编排后生成流式回答。README 明确了主要异步索引与关系同步能力。部分服务源码未提供,因此相关连接仅按文档描述呈现,不推断具体内部调用。
Main entry points: App.tsx 社区界面 · RagQueryService.java 问答流编排 · RagRetrievalService.java RAG 检索 · KnowPostController.java 知识内容接口
Components 31
前端体验
身份与资料
知识内容
- 知识内容接口
zhiguang_be/src/main/java/com/tongji/knowpost/api/KnowPostController.java - 内容服务
zhiguang_be/src/main/java/com/tongji/knowpost/service/KnowPostService.java - Feed 服务
zhiguang_be/src/main/java/com/tongji/knowpost/service/KnowPostFeedService.java - 上传接口
zhiguang_be/src/main/java/com/tongji/storage/api/StorageController.java - 对象存储服务
zhiguang_be/src/main/java/com/tongji/storage/OssStorageService.java
互动与发现
- 评论服务
zhiguang_be/src/main/java/com/tongji/comment/service/CommentService.java - 用户关系服务
zhiguang_be/src/main/java/com/tongji/relation/service/RelationService.java - 互动计数服务
zhiguang_be/src/main/java/com/tongji/counter/service/CounterWriteService.java - 搜索服务
zhiguang_be/src/main/java/com/tongji/search/service/SearchService.java
智能问答
- RAG 接口
zhiguang_be/src/main/java/com/tongji/knowpost/api/KnowPostRagController.java - 问答流编排
zhiguang_be/src/main/java/com/tongji/llm/chat/RagQueryService.java - 问题改写
zhiguang_be/src/main/java/com/tongji/llm/enhanceService/QueryRewriteService.java - RAG 检索
zhiguang_be/src/main/java/com/tongji/llm/searchService/RagRetrievalService.java - 内容向量索引
zhiguang_be/src/main/java/com/tongji/llm/searchService/RagIndexService.java - 对话记忆
zhiguang_be/src/main/java/com/tongji/llm/memoryService/RagConversationMemoryService.java - 关系图增强
zhiguang_be/src/main/java/com/tongji/llm/graphService/GraphRelationQueryService.java
Other components
- 社区用户
- S3 对象存储
- Elasticsearch
- Kafka 事件流
- 聊天与向量模型
- Neo4j 图库
- MySQL
- Redis
Connections 43
- 社区用户 → 社区界面: 使用
- 社区界面 → 登录页面: 进入登录
- 登录页面 → API 客户端: 提交认证
- API 客户端 → 认证接口: 请求接口
- 认证接口 → 认证服务: 处理认证
- 认证服务 → MySQL: 读写用户
- 认证服务 → Redis: 保存刷新令牌
- 社区界面 → 知识内容接口: 创建与浏览
- 知识内容接口 → 内容服务: 处理内容
- 内容服务 → MySQL: 保存内容
- 知识内容接口 → 上传接口: 申请上传信息
- 上传接口 → 对象存储服务: 生成预签名
- 对象存储服务 → S3 对象存储: 生成上传地址
- 社区界面 → S3 对象存储: 直传资源
- 知识内容接口 → Feed 服务: 提供内容列表
- Feed 服务 → MySQL: 读取内容
- 社区界面 → 用户资料: 查看与编辑资料
- 社区界面 → 评论服务: 评论互动
- 社区界面 → 用户关系服务: 关注关系
- 社区界面 → 互动计数服务: 点赞收藏
- 社区界面 → 搜索服务: 搜索内容
- 搜索服务 → Elasticsearch: 检索与建议
- 内容服务 → Kafka 事件流: 发布后异步事件
- Kafka 事件流 → Elasticsearch: 同步搜索索引
- 用户关系服务 → Kafka 事件流: 关系事件
- Kafka 事件流 → 互动计数服务: 聚合计数
- RAG 对话 → API 客户端: 发送问题
- API 客户端 → RAG 接口: 请求问答
- RAG 接口 → 问答流编排: 编排问答流
- 问答流编排 → 对话记忆: 读取与保存对话
- 对话记忆 → MySQL: 读写会话消息
- 问答流编排 → 问题改写: 改写问题
- 问题改写 → 聊天与向量模型: 生成独立问题
- 问答流编排 → RAG 检索: 检索证据
- RAG 检索 → 内容向量索引: 确保单篇索引
- 内容向量索引 → Elasticsearch: 读写向量切片
- 内容向量索引 → S3 对象存储: 获取文章正文
- RAG 检索 → 聊天与向量模型: 生成 HyDE 查询
- RAG 检索 → Elasticsearch: 向量与关键词召回
- RAG 检索 → 关系图增强: 获取关系上下文
- 关系图增强 → Neo4j 图库: 查询关系
- 问答流编排 → 聊天与向量模型: 生成流式回答
- 问答流编排 → RAG 对话: SSE 回答