✅派聪明RAG项目如何写到简历上?(附 20 道精选 AI 面试题)
重要提示,这部分内容有一些是我修改的球友简历,放上来是为了方便大家参考,请不要相互传播,引起误会,大家参考学习就好了,后期有遇到不错的内容我也会更新上来,互帮互助,才能更进一步。
- 如果有引发误会,我就只能保留前三个,其他都会删掉,望周知。
- 项目的写法有很多,往后面翻一翻。
- 教程和源码的获取方式:https://t.zsxq.com/XBc0a
:::
写法1 派聪明 RAG 知识库 Java 后端开发 2025-06 ~ 2025-09
项目描述:派聪明是一个基于私有知识库的企业级智能对话平台,允许用户上传文档构建专属知识空间,并通过自然语言交互方式查询和获取知识。它结合了大语言模型和向量检索技术,能够让用户能够通过对话的形式与自己的知识库进行高效交互。
技术栈:SpringBoot、MySQL、Redis、Apache Tika、Ollama、Elasticsearch、MinIO、Kafka、Spring Security、WebSocket、Linux、Shell
核心职责:
- 编写 shell 脚本,一键启动 Kafka 的 KRaft模式,自动处理 cluster ID 的冲突问题,包括清理日志、生成集群 ID、格式化存储目录、启动 Kafka 服务器等。
- 基于 Kafka 解耦文件上传、处理与向量化流程,实现分片上传与断点续传;使用 Redis 的 Bitmap 存储分片状态,并通过 MinIO 按照 MD5 进行分片合并。
- 能够在 Linux 服务器下通过 HTTPS 的方式启动 ElasticSearch,并设置 ES 的 JDK 加载版本为 17;可通过 CA 证书+ CURL 获取/更新 ElasticSearch 的键值对。
- 使用 Redis 的 BitMap 来存储文件分片上传状态,能最大程度节省内存,即使一个文件有 1000 个分片,也只需要 125 字节的存储空间。
- 支持 Docker 容器化部署,只需一个命令
docker-compose up -d
就可以在 1 分钟内一键启动整套系统。极大地简化了部署过程,并保证了开发、测试和生产环境的一致性。 - 利用 Elasticsearch + IK 分词器对知识库文档进行索引和向量检索,支持 Word、PDF 和 TXT 等多种文本类型;并集成豆包 Embedding 模型进行文本到向量的转换,支持 2048 维;再结合 ES 的 KNN 向量召回、关键词过滤和 BM25 重排序实现「关键词+语义」 的双引擎搜索。
- 基于 WebSocket 实现前端和后端之间的长连接通信通道,并结合 DeepSeek 大模型的 Stream API 实现流式响应返回,只要后端有新的内容到达,前端就即时将文本逐步拼接显示,用户看到的就是一个“打字机”式的逐字生成过程。
- 使用 Redis 缓存文件元信息与上传分片,结合 MinIO 实现大文件分片上传与断点续传,优化后 1GB 文件上传耗时由 15s 降至 3s。 (本机是 macOS 顶配,128G 内存 Apple M3 Max 芯片)
- 构建 RAG 检索流程:通过用户提问 + 检索片段拼接生成增强型 Prompt,结合上下文与语义召回提升问答准确度,构建企业私有知识问答体系。
- 实现基于 Kafka 的文档处理异步流水线,解耦文件上传、解析和向量化过程,经测试,500M 文件上传仅需 200 毫秒。
- 利用 Spring Security+JWT 实现基于组织标签的 RBAC 的多级权限系统,通过用户角色、组织归属和文件属性的权限过滤,实现精细化的文档访问控制,确保敏感数据安全。
- 登录与鉴权模块采用 JWT 实现无状态认证,结合 ThreadLocal 管理用户上下文,配合拦截器实现 token 校验与自动续约,避免因 token 过期频繁导致的重新登录问题。
- 采用 JWT+Redis 的双令牌机制,通过 Access token 处理业务请求,Refresh token 实现用户无感的令牌刷新。
- 当用户搜索时,我们利用 Elasticsearch 的 KNN 算法计算查询向量和文档向量的余弦相似度,接着利用 ES 默认的 BM25 算法对关键词在文档中的出现频率、重要性进行打分,最后根据自定义公式综合计算出最后的置信分,方便用户判断检索结果的可靠性。
- 引入滑动窗口机制,在相邻 chunk 之间保持一定的重叠区域,以保证跨 chunk 的信息完整性。
- 采用基于 Redis 的对话历史管理机制,每个用户都有一个唯一的会话 ID,所有的对话内容都按照时间顺序存在 Redis 中,并设置了 7 天的过期时间,以便在多轮对话中保证上下文信息的完整性。
- 在调用豆包向量 API 失败时,我们会自动回退到纯文本搜索,实现服务降级;并在调用豆包向量 API 时,采用 Reactor 的重试机制,支持固定延迟重试 3 次,并设置了 30 秒的超时保护。
2 条评论
回复