别再用Dify做Demo了!真正的工业级AI系统,必须掌握LangGraph+LangFuse+RAGFlow!
一、为什么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 应用监控、评测三、核心技术选型为什么不用DifyLangGraph vs Dify代码控制 vs 低代码很多人会问Dify这么火为什么不用Dify的优势可视化拖拽快速搭建标准RAG应用适合非技术人员。但我们的场景需要更强的控制力需求DifyLangGraph复杂控制流可视化编排难以表达逻辑循环、ReAct循环、条件重试代码方式天然支持状态管理黑盒难以调试TypedDict显式定义透明可控中断与恢复不支持interrupt机制支持人工审核深度集成API调用与Spring Boot、RAGFlow深度集成LangGraph核心优势示例ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line # 显式状态定义每个字段清晰可控 class AgentState(TypedDict): messages: Annotated[List[BaseMessage], add_messages] project_info: str research_loop_count: int # 循环计数器 graph StateGraph(AgentState) graph.add_node(researcher, researcher_node) graph.add_node(generate, generate_node) # 条件分支根据状态动态决定下一步 graph.add_conditional_edges(researcher, lambda state: tools if state[messages][-1].tool_calls else generate)我们的选择技术团队主导代码可维护性优先于低代码便捷性。RAGFlowContext Engine专业文档解析的最佳选择自建RAG的痛点建筑规范PDF解析复杂表格、公式、层级结构需要2-3个月开发文档解析、向量数据库、检索策略RAGFlow的核心优势维度自建RAGRAGFlow文档解析需自研DeepDoc开箱即用检索策略需调优多种策略可选集成示例ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line from ragflow_sdk import RAGFlow class RAGService: async def search(self, query: str, kb_ids: List[str]): results await self.client.search( questionquery, datasetskb_ids, similarity_threshold0.7, top_k10 ) return results实际效果万条规范文档检索延迟 1秒。LangfuseLLM应用全生命周期观察、测试早期的痛点Prompt散落在代码各处难以统一管理修改Prompt需要重新部署无法追踪哪个版本的Prompt效果更好生产环境问题难以复现和调试缺少成本和性能监控Langfuse的完整价值Langfuse不仅仅是Prompt管理工具它是LLM应用从开发、测试到生产的全生命周期监控和调试平台。功能模块能力价值Prompt管理集中管理、版本控制、热更新迭代周期从1天→10分钟调用追踪完整的调用链路、Token统计快速定位问题根因性能监控延迟、成本、错误率实时监控生产环境可观测评测体系自动化评测、人工标注持续优化模型效果数据集管理测试用例、回归测试保证版本质量使用示例ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line class PromptManager: def get_prompt(self, name: str, version: str None): 获取指定版本的Prompt模板 prompt self.langfuse.get_prompt(namename, versionversion) return prompt.compile() def trace_generation(self, trace_id: str, input: str, output: str): 记录完整的生成过程用于追踪和分析 return self.langfuse.trace(idtrace_id, inputinput, outputoutput)实际效果生产环境问题定位时间大幅降低通过调用追踪发现并优化了多个性能瓶颈四、核心突破ReAct模式提升25%准确率多Agent工作流设计业务场景生成完整的施工图设计说明需要信息收集、文档生成、合规审核的完整流程。三个核心AgentAgent职责工具数据收集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 用户需求: 生成大连某住宅项目的建筑设计说明 │ ▼ ┌─────────────────────────────────────────────────┐ │ Reasoning: 大连属于寒冷地区需要查询寒冷地区 │ │ 住宅建筑的防火和保温规范 │ │ Action: 调用RAGFlow检索防火保温规范知识库 │ │ Observation: 获取到8条相关规范条文 │ ├─────────────────────────────────────────────────┤ │ Reasoning: 大连临海需要查询沿海地区的 │ │ 防腐蚀和抗风压设计要求 │ │ Action: 调用RAGFlow检索沿海建筑规范知识库 │ │ Observation: 获取到5条沿海地区特殊要求 │ ├─────────────────────────────────────────────────┤ │ Reasoning: 还需要查询住宅的节能设计标准 │ │ Action: 调用RAGFlow检索节能规范知识库 │ │ Observation: 获取到4条节能设计标准 │ ├─────────────────────────────────────────────────┤ │ Reasoning: 信息已足够可以开始生成文档 │ │ Action: 将收集的信息传递给文档编写Agent │ └─────────────────────────────────────────────────┘LangGraph实现示例ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line # 工具定义 researcher_tools [retrieve_case, retrieve_standard, web_search] # 构建工作流 workflow StateGraph(AgentState) workflow.add_node(researcher, researcher_node) workflow.add_node(generate, generate_node) workflow.add_node(auditor, auditor_node) # ReAct循环控制达到最大次数或无工具调用时退出 def researcher_condition(state): if state.get(research_loop_count, 0) MAX_LOOPS: return generate return tools if state[messages][-1].tool_calls else generate workflow.add_conditional_edges(researcher, researcher_condition) workflow.add_edge(researcher_tools, researcher) # 工具结果返回推理 workflow.add_edge(generate, auditor) app workflow.compile()核心特性状态管理AgentState显式定义所有状态字段便于调试循环控制通过research_loop_count和条件判断控制循环次数条件边根据消息内容和状态动态决定下一步效果对比指标一次性检索ReAct模式 审核一次通过率60%90%平均检索次数1次2.3次上下文质量中高生成时间5min10min核心价值用时间换空间准确率提升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 核心结构 services: web: build: ../../apps/web ports: [3000:80] backend: build: ../../apps/backend ports: [4999:4999] environment: - MYSQL_HOSTmysql - AGENT_URLhttp://agent:8000 agent: build: ../../apps/agent ports: [8000:8000] environment: - RAGFLOW_BASE_URL${RAGFLOW_BASE_URL} - DASHSCOPE_API_KEY${DASHSCOPE_API_KEY} - LANGFUSE_PUBLIC_KEY${LANGFUSE_PUBLIC_KEY} mysql: image: mysql:8.0 volumes: [mysql_data:/var/lib/mysql]环境区分docker-compose-dev.yml开发环境暴露调试端口docker-compose-pro.yml生产环境安全配置.env文件敏感配置统一管理六、血泪教训致命坑及解决方案坑1上下文爆炸导致LLM崩溃问题现象检索10条规范文档每条2000字 20K tokens加上对话历史、系统Prompt、输出空间 → 轻松超过128K限制LLM报错或截断关键信息4种解决方案方案做法效果1. 文档压缩提取关键句子而非全文减少70% tokens2. 滑动窗口只保留最近5轮对话控制历史增长3. 动态Top-K根据剩余空间调整检索数量自适应调整代码示例ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line # 文档摘要压缩 def compress_documents(docs, max_length500): return [Document( page_contentextract_key_sentences(doc.page_content, max_length), metadatadoc.metadata ) for doc in docs] # 滑动窗口管理对话历史 def get_recent_context(messages, max_history5): return messages[-max_history * 2:] # 每轮包含 user assistant # 动态调整检索数量 def adaptive_retrieve(query, max_tokens8000): available max_tokens - count_tokens(history) - 2000 return rag_service.search(query, top_kmin(10, available // 500))效果上下文控制在32K以内支持更长的多轮对话。坑2Prompt版本爆炸管理混乱问题早期Prompt散落在代码各处修改需要重新部署。解决方案所有Prompt模板迁移到Langfuse代码中只保留Prompt名称引用支持动态参数编译ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line # 重构前硬编码在代码中 prompt 你是一个建筑规范助手... # 重构后从 Langfuse 动态获取 参数编译 prompt_manager PromptManager() researcher_prompt prompt_manager.get_prompt(langchain_researcher) system_msg researcher_prompt.compile( project_infoproject_info, loop_countloop_count, loop_guidanceloop_guidance )效果Prompt动态更新有序管理。LLM 全过程可视化监测。基于评分系统为数据闭环提供支撑。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

相关新闻

【开题答辩全过程】以 基于Springboot个人健康运动系统的设计与实现为例,包含答辩的问题和答案

【开题答辩全过程】以 基于Springboot个人健康运动系统的设计与实现为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

2026/7/3 14:41:06 阅读更多 →
数据库全解析:从关系型到向量数据库,LLM 开发中的选型指南

数据库全解析:从关系型到向量数据库,LLM 开发中的选型指南

​ 【个人主页:玄同765】 大语言模型(LLM)开发工程师|中国传媒大学数字媒体技术(智能交互与游戏设计) 深耕领域:大语言模型开发 / RAG知识库 / AI Agent落地 / 模型微调 技术栈:Pyth…

2026/7/3 14:41:06 阅读更多 →
Apache SeaTunnel Zeta、Flink、Spark

Apache SeaTunnel Zeta、Flink、Spark

本文档将深入解析 Apache SeaTunnel 支持的三大执行引擎:Zeta (SeaTunnel Engine)、Flink 和 Spark。我们将从架构设计、核心特性、优缺点对比以及使用方法等多个维度进行详细讲解,帮助你根据业务需求选择最合适的引擎。 1. 引擎概览 SeaTunnel 的架构…

2026/7/3 14:41:08 阅读更多 →

最新新闻

MDIO总线驱动开发实战:基于Linux内核4.19的PHY寄存器读写与调试

MDIO总线驱动开发实战:基于Linux内核4.19的PHY寄存器读写与调试

MDIO总线驱动开发实战:基于Linux内核4.19的PHY寄存器读写与调试在嵌入式Linux开发中,网络设备的稳定性和性能往往取决于底层驱动的质量。MDIO总线作为MAC与PHY芯片之间的管理通道,其驱动实现直接影响着网络接口的配置、状态监控和故障排查效率…

2026/7/6 2:37:52 阅读更多 →
力反馈:采集了但没有专门处理

力反馈:采集了但没有专门处理

力数据经历了三重"未使用":Franka 硬件力矩传感器K_F_ext_hat_K (6D)↓ franka_server.py: ROS 回调self.force [:3], self.torque [:3]↓ franka_env.py: _get_obs()"tcp_force": (3,), "tcp_torque": (3,)↓ SERLObsWrapper: 展平…

2026/7/6 2:37:52 阅读更多 →
临界分词的存在性与最优性:从统计临界态到神经语言模型的双语实证检验

临界分词的存在性与最优性:从统计临界态到神经语言模型的双语实证检验

一项关于"自然语言分词是否存在内禀临界点,以及该点是否最优"的可证伪研究。 含 n-gram 统计分析(中/英)与线性 SSM 语言模型(FRSMASH v3.6,~8M 参数)双语验证。摘要 本文把"临界分词"…

2026/7/6 2:37:52 阅读更多 →
WIN11 64位系统编译ameba-rtos-d,260705

WIN11 64位系统编译ameba-rtos-d,260705

这次调试确实经历了相当漫长曲折的过程,帮你做一个完整的问题清单和修改记录,方便你以后归档或者需要在别的电脑上重新配置环境时参考。问题一:32位 Cygwin 检测被拦截现象: Makefile 检测到当前 Cygwin/bash 环境是 64 位&#x…

2026/7/6 2:35:52 阅读更多 →
多人格的记忆,有共用有不共用

多人格的记忆,有共用有不共用

最近听到一个多人格案例,引起我的兴趣。大意是某人考试时切换到考试人格,考完再切换回来。我的兴趣在哪里?在于记忆。主人格切换到后台(暂停),相当于睡了一觉。所以主人格对于副人格的做事经历,…

2026/7/6 2:33:52 阅读更多 →
【嵌入式C语言】07.二级指针+函数

【嵌入式C语言】07.二级指针+函数

一、二级指针1.概念概念:二级指针也是个指针,该指针用来存放另外一个一级指针在内存中的地址(指向指针的指针)二级指针解引用一次,变成一级指针2.定义二级指针int a88;int *p&a;int **q&p;3.使用二级指针*q --》二级指针解引用一次&a…

2026/7/6 2:31:52 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻