# 北梦-企业级知识库问答平台 **Repository Path**: BeimengNanxi/rag ## Basic Information - **Project Name**: 北梦-企业级知识库问答平台 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-06 - **Last Updated**: 2026-09-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BeimengRAG · AI 企业知识库问答平台(RAG) > 基于企业内部私有资料(手册/笔记/规章制度/FAQ)的**带引用溯源**流式问答平台。 > 技术基线 = Spring AI Alibaba(DashScope) + 自研工程化封装;详见 [documents/项目说明书与简历模板.md](documents/项目说明书与简历模板.md)。 本仓库当前为 **Week 0 初始工程骨架**:依赖定案、基础配置、目录结构、可编译/可离线测试。 --- ## 技术栈与版本定案 | 组件 | 版本 | 说明 | |---|---|---| | JDK | 17(LTS) | 编译/运行统一 | | Spring Boot | 3.5.16 | parent | | Spring AI(官方 BOM) | 1.1.2 | 管理 `spring-ai-*` 模块 | | Spring AI Alibaba | 1.1.2.3 | DashScope 大模型/Embedding | | MyBatis-Plus | 3.5.17 | `mybatis-plus-spring-boot3-starter`(适配 Boot3) | | MySQL | 8.x(driver) | 元数据存储 | | Redis | starter | 对话记忆/语义缓存(下一阶段接入) | | 日志 | Logback | `logback-spring.xml`(滚动/按天压缩) | | 测试 | JUnit 5 | `spring-boot-starter-test` | > 版本兼容矩阵的核对过程与升级注意点见 [documents/选型说明.md](documents/选型说明.md)。 ## 目录结构 ``` src/main/java/com/beimeng/rag ├── BeimengRagApplication.java # 启动类(@MapperScan 按 @Mapper 注解扫描) ├── ai/ # Spring AI 相关(配置/服务) │ └── config/AiConfig.java # ChatClient 装配(有 ChatModel 才生效) ├── common/ # 通用基础设施 │ ├── api/Result.java # 统一返回结构 │ ├── config/MybatisPlusConfig.java / RedisConfig.java │ ├── exception/ # 业务异常 + 全局异常处理器 ├── knowledgebase/ # 多知识库(controller/service/mapper/entity/dto) ├── document/ # 文档上传/解析/切分/入库(controller/service/mapper/entity/dto) └── chat/ # 问答/SSE/会话(controller/service/dto) src/main/resources ├── application.yml # 通用配置(MySQL/Redis/DashScope 环境变量占位) ├── application-local.yml # 本地开发 Profile ├── logback-spring.xml # 日志(源自 documents/logback-spring.xml,包名改为 com.beimeng) deploy / docker-compose.yml # 本地中间件(MySQL + Redis) sql/ # DDL 脚本(随 feature 落地补充) ``` ## 快速开始 前置:JDK 17、Maven 3.6.3+、Docker Desktop。 ```bash # 1) 启动本地中间件(MySQL + Redis) docker compose up -d # 2) 注入模型 API Key(勿写进代码/提交到 Git) # export DASHSCOPE_API_KEY=sk-... (Windows PowerShell: $env:DASHSCOPE_API_KEY="sk-...") # 3) 本地开发运行(默认 local Profile) mvn spring-boot:run -Dspring-boot.run.profiles=local # 健康检查: http://localhost:8080/actuator/health # 4) 离线单测(不依赖任何中间件,CI 可直接跑) mvn test ``` 首次构建会下载依赖,若网络慢可配置 Maven 阿里云镜像。 ## 设计约定(加分项,面试可讲) - **配置类对"外部依赖未就绪"友好**:`AiConfig` 用 `@ConditionalOnBean` 兜底,没配 DashScope Key 也能启动/测试;`RedisConfig` 通过 `RedisTemplateCustomizer` 调整自动装配的模板,离线不报错。 - **统一返回结构 + 全局异常**:所有接口返回 `Result{code,message,data}`,异常不向客户端泄露堆栈。 - **单模块 + feature 分包**:MVP 迭代快;确需拆分时再演进为多模块。 - **ES 尚未引入**:向量库/混合检索(BM25)是架构核心,但按规划在 Week1-Day4「切到 ES 检索」时再引入依赖与 compose,避免过早增加启动复杂度。