15 · 完整后端项目:把 14 篇的零件拼成生产系统
本片目标:本系列最终交付——把前 13 篇学的全部整合成一个知识问答 RAG 机器人:配置化、索引管线、会话持久化、引用溯源、错误处理、健康检查、流式。 新增规定性:15(工程化约定:配置层 / 组件分层 / 索引管线 / 错误边界) 数据字典:项目目录结构、配置模型、各组件职责。 进程线程模型:异步路由 + 单例组件 + 线程安全注意。 网络模型:REST + SSE;外网模型调用 + 本地检索。
1. 全集回顾
每一篇解决一个问题,但现在代码是”散装”的:
本篇把它们全部收进一个分层项目。
2. 项目结构(数据字典:目录即架构)
3. 各层数据字典
3.1 配置层 config.py
3.2 组件层 components.py(单例工厂)
3.3 管线层 pipeline.py(核心逻辑)
Document.metadata 在这里兑现——metadata["source"] 告诉你答案来自哪份文档。
3.4 存储层 storage.py(会话持久化)
InMemoryChatMessageHistory → FileChatMessageHistory → 生产换 RedisChatMessageHistory,管线层一行不改——因为它们都实现 BaseChatMessageHistory。这是第 06 篇”规定性 6”的工程回报。
3.5 索引管线 indexer.py(文档更新)
3.6 接口层 api.py(第 14 篇的增强版)
4. 进程线程模型(最终全景)
5. 网络模型(最终全景)
6. 错误处理(生产级的”边界”)
7. 验证:跑起来
① 建索引:8. 边界与下一步
本系列到此结束,但生产级不止于此。真实的更大规模系统还会加:
但地基已经打牢:你理解了每个环节的数据形态(数据字典)、调度方式(进程线程)、通信方式(网络模型),以及为什么每一步必然这样展开(规定性链条)。加任何新东西,都是在熟悉的地基上扩展。
推荐资料(延伸阅读)
- LangChain 官方文档 · 部署 —— 生产部署与架构
- LangChain 官方文档 · 可观测性 —— LangSmith 追踪 / 日志
- LangChain 官方文档 · 组件架构 —— 项目分层设计参考