AInova 是一套面向企业内部的私有化智能知识问答平台。它解决了传统企业文档检索难、员工提问效率低的问题。系统支持多模态文件(PDF、Word、Excel)的自动解析,并利用大语言模型为企业员工提供“千人千面”的精确问答服务。
产品主要包含以下核心模块:
多轮对话与流式输出: 用户在 Web 端/移动端发起提问,系统不仅返回答案,还支持 SSE(Server-Sent Events)打字机效果,极大地提升了用户的交互体验。
企业私有知识库(RAG): 支持管理员上传企业内部的制度文档、技术手册、产品说明。系统在回答时会强制检索私有知识库,结合大模型能力生成答案,有效避免了大模型的“幻觉”问题。
多模型路由接入: 底层对接了 DeepSeek、通义千问(Qwen)、OpenAI 等多个主流大模型接口。用户可以在前台自由切换模型体验,系统根据模型能力动态调整 Prompt 提示词。
插件生态与联网搜索: 支持内置的联网搜索插件,当知识库无法满足需求时,系统自动通过搜索引擎补充实时信息,并打上来源引用标识。
用户管理与会话历史: 分普通员工、部门经理、系统管理员三级权限。所有对话记录持久化存储,支持以时间线维度回溯历史问答。
业务中台与大模型网关:
采用 Spring Boot 3 + WebFlux 构建高并发的网关层,负责处理前端(Vue3 + TypeScript)发起的流式请求。利用 Spring AI 框架进行不同大模型接口的标准化封装,实现了多模型热切换。在网关层引入 Redis 进行对话上下文的缓存,单次对话可携带 16K Token 的长文本历史记录。
RAG 检索增强生成架构(核心亮点):
数据流转: 上传的 PDF/Word 文件先通过 Apache Tika 进行文本解析和清洗,剔除页眉页脚等噪音。
向量化与存储: 调用 BGE-M3(多语言向量模型)将文本切分为 Chunk 并生成 Embedding 向量,存入 Elasticsearch (ES) 向量数据库。
混合召回: 回答问题时,系统采用 关键词匹配 + 向量相似度检索的混合召回策略,将召回率提升至 95% 以上,将检索到的相关文本片段注入到大模型的 Context 上下文提示词中。
流式响应与异步非阻塞:
为了应对大模型生成速度慢导致的请求阻塞,系统后端采用 Project Reactor 的响应式编程模型。前端通过 EventSource 接口建立 SSE 长连接,后端将大模型返回的 Token 实时推送给前端,实现了丝滑的“打字机”效果。
系统稳定性与限流熔断:
大模型调用是昂贵的操作。引入了 Sentinel 进行流量控制,针对不同用户的提问频率进行削峰填谷;同时引入 Resilience4j 进行熔断,当某一个大模型渠道超时或报错时,系统能快速降级,避免拖垮整个问答服务。
监控与成本控制:
搭建了专门的监控大盘(Prometheus + Grafana),实时统计每个接口的 Token 消耗量、响应延时、以及 RAG 检索成功率。通过日志采集将大模型的提问与回答存入 ClickHouse 中,方便后续进行模型微调数据的清洗与积累。