放弃Dify!我们用LangGraph+LangFuse+RAG,构建工业级AI系统
文章分享了从AI Demo到工业级系统的完整构建过程,重点介绍了使用LangGraph替代Dify、RAGFlow解决专业文档解析、ReAct模式提升准确率等技术选型与实践。系统采用前后端分离架构,独立AI服务设计,并通过Langfuse实现全生命周期监控。文章详细记录了上下文爆炸、Prompt管理等实际问题的解决方案,最终实现了90%的一次通过率,为AI应用工程化提供了宝贵经验。
一、为什么90%的AI应用都死在了Demo阶段?
去年我们接到一个需求:用AI自动生成建筑施工图设计说明。听起来很简单?调个GPT API,接入几个PDF文档,写个前端界面就完事了。
现实很骨感:
- 第一版Demo用了2周,效果还不错
- 但真正投入使用后,问题接踵而至:
- 生成内容不符合规范,设计师不敢用
- 检索速度慢,用户等不起
- 上下文超限,长对话直接崩溃
- Prompt散落各处,改一次要重新部署
我们花了3个月重构,最终搭建了一套工业级AI系统。本文将完整分享:
- 为什么选择 LangGraph 而不是 Dify
- 如何用 RAGFlow 解决专业文档解析
- ReAct 模式如何提升25%准确率
- 上下文爆炸的解决方案
- 完整的部署架构和踩坑经验
二、系统架构:前后端分离+独立AI服务
先看整体架构图:
为什么这样设计?
| 设计决策 | 理由 |
|---|---|
| Java + Python 分离 | Java处理业务逻辑和数据持久化,Python专注AI能力,各司其职 |
| 独立AI服务 | AI服务可独立扩容,不影响业务系统稳定性 |
| SSE流式传输 | 实时返回生成内容,用户体验更好 |
| RAGFlow独立部署 | 知识库管理与业务解耦,便于维护 |
| Langfuse独立部署 | 可插拔的 AI 应用监控、评测 |
三、核心技术选型:为什么不用Dify?
LangGraph vs Dify:代码控制 vs 低代码
很多人会问:Dify这么火,为什么不用?
Dify的优势:可视化拖拽,快速搭建标准RAG应用,适合非技术人员。
但我们的场景需要更强的控制力:
| 需求 | Dify | LangGraph |
|---|---|---|
| 复杂控制流 | 可视化编排难以表达逻辑循环、ReAct循环、条件重试 | 代码方式天然支持 |
| 状态管理 | 黑盒,难以调试 | TypedDict显式定义,透明可控 |
| 中断与恢复 | 不支持 | interrupt机制支持人工审核 |
| 深度集成 | API调用 | 与Spring Boot、RAGFlow深度集成 |
LangGraph核心优势示例:
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
我们的选择:技术团队主导,代码可维护性优先于低代码便捷性。
RAGFlow:Context Engine专业文档解析的最佳选择
自建RAG的痛点:
- 建筑规范PDF解析复杂:表格、公式、层级结构
- 需要2-3个月开发文档解析、向量数据库、检索策略
RAGFlow的核心优势:
| 维度 | 自建RAG | RAGFlow |
|---|---|---|
| 文档解析 | 需自研 | DeepDoc开箱即用 |
| 检索策略 | 需调优 | 多种策略可选 |
集成示例:
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
实际效果:万条规范文档,检索延迟 < 1秒。
Langfuse:LLM应用全生命周期观察、测试
早期的痛点:
- Prompt散落在代码各处,难以统一管理
- 修改Prompt需要重新部署
- 无法追踪哪个版本的Prompt效果更好
- 生产环境问题难以复现和调试
- 缺少成本和性能监控
Langfuse的完整价值:
Langfuse不仅仅是Prompt管理工具,它是LLM应用从开发、测试到生产的全生命周期监控和调试平台。
| 功能模块 | 能力 | 价值 |
|---|---|---|
| Prompt管理 | 集中管理、版本控制、热更新 | 迭代周期从1天→10分钟 |
| 调用追踪 | 完整的调用链路、Token统计 | 快速定位问题根因 |
| 性能监控 | 延迟、成本、错误率实时监控 | 生产环境可观测 |
| 评测体系 | 自动化评测、人工标注 | 持续优化模型效果 |
| 数据集管理 | 测试用例、回归测试 | 保证版本质量 |
使用示例:
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
实际效果:
- 生产环境问题定位时间大幅降低
- 通过调用追踪发现并优化了多个性能瓶颈
四、核心突破:ReAct模式提升25%准确率

多Agent工作流设计
业务场景:生成完整的施工图设计说明,需要信息收集、文档生成、合规审核的完整流程。
三个核心Agent:
| Agent | 职责 | 工具 |
|---|---|---|
| 数据收集Agent | 查询规范库、案例库中的相关信息 | RAGFlow检索、知识库路由 |
| 文档编写Agent | 根据收集的信息生成设计说明 | 模板渲染、格式转换 |
| 审核Agent | 校验生成内容是否符合规范 | 规范条文比对、合规性检查 |
ReAct模式:从60%到85%的准确率提升
传统方案的问题:
- 一次性检索所有知识库 → 可能漏查关键信息,或查询过多无关内容
- 上下文质量不高 → 文档生成质量差
ReAct模式:Agent在"思考-行动-观察"的循环中逐步完善信息收集。
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
LangGraph实现示例:
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
核心特性:
- 状态管理:
AgentState显式定义所有状态字段,便于调试 - 循环控制:通过
research_loop_count和条件判断控制循环次数 - 条件边:根据消息内容和状态动态决定下一步
效果对比:
| 指标 | 一次性检索 | ReAct模式 + 审核 |
|---|---|---|
| 一次通过率 | 60% | 90% |
| 平均检索次数 | 1次 | 2.3次 |
| 上下文质量 | 中 | 高 |
| 生成时间 | 5min | 10min |
核心价值:用时间换空间,准确率提升25%,大幅减少人工修改成本。
五、生产部署:Docker Compose一键启动
多环境配置:
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
环境区分:
docker-compose-dev.yml:开发环境,暴露调试端口docker-compose-pro.yml:生产环境,安全配置.env文件:敏感配置统一管理
六、血泪教训:致命坑及解决方案
坑1:上下文爆炸导致LLM崩溃
问题现象:
- 检索10条规范文档,每条2000字 = 20K tokens
- 加上对话历史、系统Prompt、输出空间 → 轻松超过128K限制
- LLM报错或截断关键信息
4种解决方案:
| 方案 | 做法 | 效果 |
|---|---|---|
| 1. 文档压缩 | 提取关键句子,而非全文 | 减少70% tokens |
| 2. 滑动窗口 | 只保留最近5轮对话 | 控制历史增长 |
| 3. 动态Top-K | 根据剩余空间调整检索数量 | 自适应调整 |
代码示例:
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
效果:上下文控制在32K以内,支持更长的多轮对话。
坑2:Prompt版本爆炸,管理混乱
问题:早期Prompt散落在代码各处,修改需要重新部署。
解决方案:
- 所有Prompt模板迁移到Langfuse
- 代码中只保留Prompt名称引用
- 支持动态参数编译
ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line
效果:
- Prompt动态更新,有序管理。
- LLM 全过程可视化监测。
- 基于评分系统,为数据闭环提供支撑。
七、展望
开源计划:
- 核心代码即将开源
- 提供Docker一键部署
- 完整的部署文档
附上项目效果图
写在最后
工程化比模型更重要,或者至少与模型同样重要。
我们是一家面向 AEC 行业的 AI 创业公司,产品方向仍在探索中。
如果你在做类似的AI应用工程化,或者对垂直行业AI落地感兴趣,欢迎评论区讨论或添加联系方式沟通。
微信:Damondut
觉得有用的话,点个在看支持一下 👇
下一篇预告
《LLM应用中的记忆系统设计——从短期记忆到长期记忆的完整实践》
cker一键部署
- 完整的部署文档
附上项目效果图
写在最后
工程化比模型更重要,或者至少与模型同样重要。
我们是一家面向 AEC 行业的 AI 创业公司,产品方向仍在探索中。
如果你在做类似的AI应用工程化,或者对垂直行业AI落地感兴趣,欢迎评论区讨论或添加联系方式沟通。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)