系统概述
LangChat Pro 是一个基于 Spring Boot 3.5.6 和 LangChain4j 1.9.0 的企业级 AI 应用平台,支持多种大语言模型(LLM)、知识库检索、工作流编排和插件扩展等核心功能。技术栈
核心框架
- Spring Boot: 3.5.6
- Java: 17
- LangChain4j: 1.9.0
- MyBatis Plus: 3.5.5
数据库
- MySQL: 8.3.0 - 主数据库
- Redis: 6.0+ - 缓存和ChatMemory存储
向量数据库
- PGVector - PostgreSQL向量扩展
- Milvus - 专业向量数据库
- Elasticsearch - 全文搜索和向量存储
- Redis Vector - 高速缓存
- Neo4j - 图数据库
认证授权
- Sa-Token: 1.44.0
异步响应式
- Project Reactor (Flux, Mono)
模块层次结构
核心模块职责
1. langchat-bootstrap
职责: 应用启动入口,整合所有业务模块 关键文件:src/main/java/cn/langchat/LangChatApplication.java- Spring Boot启动类src/main/resources/application.yml- 主配置文件
2. langchat-common(公共基础组件)
langchat-common-core
- 通用工具类(StringUtil, DateUtil, JsonUtil等)
- 统一响应对象(R, PageResult)
- 全局异常处理
- 自定义注解(@Log, @RateLimiter, @RequiresPermission)
langchat-common-auth
- Sa-Token配置
- Token工具类
- 认证拦截器
- 权限验证
langchat-common-oss
- 对象存储服务接口
- 支持阿里云OSS、腾讯云OSS、MinIO
langchat-common-ai
- AI相关模型和枚举
- 提示词工具
- Token计算工具
3. langchat-aigc(AIGC功能模块)
langchat-aigc-api
职责: AIGC接口定义和数据模型 核心实体:AigcApp- 应用配置AigcConversation- 对话会话AigcMessage- 消息记录AigcModel- 模型配置AigcKnowledge- 知识库AigcDocs- 文档AigcSegment- 文本分段AigcVectorStore- 向量库配置
ChatService- 聊天服务接口
langchat-aigc-biz
职责: AIGC业务逻辑实现 核心实现:ChatServiceImpl- 聊天服务实现AigcModelServiceImpl- 模型管理服务AigcKnowledgeServiceImpl- 知识库管理服务AigcDocsServiceImpl- 文档管理服务
ChatEndpoint- WebSocket聊天端点AigcModelController- 模型管理接口AigcKnowledgeController- 知识库接口
4. langchat-core(LLM核心服务)
职责: LLM模型调用、Embedding、向量检索、文档处理 核心服务:LcChatService
路径:langchat-core/src/main/java/cn/langchat/core/service/LcChatService.java
核心方法:
streamingChat(LcChatReq req)- 流式聊天(支持知识库、RAG)standaloneStreamingChat(LcChatReq req)- 独立流式聊天simpleChatForText(SimpleChatContext context)- 简单文本对话getChatModel(BaseChatContext context)- 获取ChatModelgetStreamingChatModel(BaseChatContext context)- 获取StreamingChatModel
LcEmbeddingService
职责: 文本向量化服务文档解析服务
- TikaParser - 通用文档解析
- PoiParser - Office文档解析
- MinerUParser - 高级文档解析(OCR)
5. langchat-workflow(工作流引擎)
职责: 工作流执行、节点处理、状态管理 核心组件:WorkflowExecutor- 工作流执行器WorkflowBuilder- 工作流构建器Flow- 工作流定义FlowNode- 流程节点WorkflowState- 工作流状态
- StartNode/EndNode - 开始/结束节点
- LLMNode - LLM调用节点
- IfNode - 条件判断节点
- HttpNode - HTTP请求节点
- CodeNode - 代码执行节点
- 共40+种节点类型
6. langchat-integration(第三方集成)
职责: 集成第三方AI平台 集成服务:- Coze - 字节跳动Coze平台集成
- Dify - Dify AI平台集成
7. langchat-plugin(插件系统)
职责: 插件管理和动态工具调用 核心组件:DynamicToolFactory- 动态工具工厂接口
- 时间工具插件(获取当前时间、日期计算)
- 百度搜索插件
- 头条新闻插件
8. langchat-mcp(MCP协议实现)
职责: Model Context Protocol客户端和服务端 核心组件:McpClientManager- MCP客户端管理器- MCP服务端 - 文件系统MCP服务
9. langchat-pusher(消息推送)
职责: 多渠道消息推送服务 核心功能:- 钉钉机器人推送
- 企业微信应用推送
- 邮件推送
- 工作流节点消息通知
10. langchat-auth(认证授权)
职责: 用户认证、授权、权限管理 核心功能:- 用户登录、登出
- JWT Token生成和验证
- RBAC权限模型
- 用户管理、角色管理、权限管理
核心设计模式
1. 工厂模式(Factory Pattern)
ChatModelFactory- 动态创建不同供应商的ChatModel实例
- 支持OpenAI、Ollama、Qwen、Qianfan、Zhipu等
- 实现模型实例缓存
- 创建Rerank模型实例
- 用于RAG重排序
2. 建造者模式(Builder Pattern)
AiServiceBuilder- 构建完整的AI Service
- 组装ChatMemory、SystemMessage、Tools、RAG等组件
- 从请求构建ChatContext
3. 策略模式(Strategy Pattern)
DynamicToolFactory- 动态工具工厂接口
- 不同类型工具(Plugin、MCP等)实现不同的策略
4. 观察者模式(Observer Pattern)
ChatListener- 监听模型调用事件
- 支持流式响应回调
关键调用链路
聊天流程
RAG流程
数据流图
聊天数据流
配置说明
application.yml 主配置
扩展指南
添加新的LLM供应商
- 在
ChatModelFactory中添加对应的创建方法 - 实现模型配置验证逻辑
- 更新缓存键生成策略
添加新的插件
- 实现
DynamicToolFactory接口 - 使用
@Service注解注册为Spring Bean - 在
dynamicTools方法中添加工具到AiServicesBuilder
添加新的向量数据库
- 实现对应的
VectorStore配置 - 在
VectorStoreFactory中添加创建逻辑 - 更新知识库检索器以支持新向量库
参考文档
- 02-Chat服务架构.md - 聊天服务详细设计
- 03-模型工厂架构.md - 模型工厂详细设计
- 04-AiService构建器架构.md - AI Service构建详细设计
- 技术栈文档
- 模块结构文档

