From 1f159ed749f61c873ba3b39825038adde758fba1 Mon Sep 17 00:00:00 2001 From: fuzhongyun <15339891972@163.com> Date: Fri, 21 Nov 2025 18:31:04 +0800 Subject: [PATCH] remove --- 课件资料/0.大纲.md | 88 ----------- 课件资料/0.开场白.md | 34 ----- 课件资料/1.承上启下-技术演进与主题定位.md | 20 --- 课件资料/2.融合方案-Agent与工作流.md | 30 ---- 课件资料/3.场景识别与技术选型.md | 28 ---- 课件资料/4.实战落地-架构传输与成本.md | 30 ---- 课件资料/WPS-PPT-提示文档.md | 124 --------------- 课件资料/代码.md | 174 ---------------------- 8 files changed, 528 deletions(-) delete mode 100644 课件资料/0.大纲.md delete mode 100644 课件资料/0.开场白.md delete mode 100644 课件资料/1.承上启下-技术演进与主题定位.md delete mode 100644 课件资料/2.融合方案-Agent与工作流.md delete mode 100644 课件资料/3.场景识别与技术选型.md delete mode 100644 课件资料/4.实战落地-架构传输与成本.md delete mode 100644 课件资料/WPS-PPT-提示文档.md delete mode 100644 课件资料/代码.md diff --git a/课件资料/0.大纲.md b/课件资料/0.大纲.md deleted file mode 100644 index 6c94552..0000000 --- a/课件资料/0.大纲.md +++ /dev/null @@ -1,88 +0,0 @@ -# 总大纲:AI应用落地(Agent + 工作流融合实战) - -总时长:72分钟(1.2小时) - -## 0 开场与目标(3分钟) - -- 主题与目标:让后端 Go 团队“又快又稳”做出可用的 AI 应用 -- 一句话定位:Agent 负责“聪明与解释”,工作流保障“稳定与规模” -- 贯穿案例:订单诊断(降低 MTTR/人工接管率、提升稳定性) - -## 1 概念与融合(10分钟) - -- 什么是 Agent:意图识别、工具选择、策略决策、结果解释与对话管理 -- 什么是工作流:确定性算子编排、状态与数据管理、幂等与重试、失败回退、审计与监控 -- 优缺点对比: - - Agent:灵活、可解释;成本不稳定、可能不一致 - - 工作流:稳定、可控、低成本;表达复杂判断困难、解释弱 -- 融合方案(职责边界与组合模式): - - 入口路由:Agent 基于意图调用不同工作流 - - 工作流内嵌决策:复杂判断节点由 Agent 决策,其余节点确定性执行 - - 管理者-执行者:Manager Agent 分配任务,工作流封装工具完成 -- 常见坑:多 Agent 过度设计、记忆与任务状态混淆、工具幂等缺失 - -## 2 技术演进(6分钟) - -- 手工时代 → 智能体时代 → 工业化时代(精简版) -- 结论:从能用到好用,标准化与可观测是必经之路(不单设页面) - -## 3 需求识别(12分钟) - -- 三招判断:频次、复杂度、容错 -- 适用与不适用:规则清晰/100%准确/一次性工作不适合 AI -- 场景映射:订单诊断、商品分析、文库问答 -- 回退策略:从 AI 回退为代码/规则引擎的判断标准 - -## 4 选型建议(12分钟) - -- 部署方式:供应商(API/Agent/工作流) vs 私有化(云/本地) -- 语言选择:阶段化策略(原型优先 Python;生产优先 Go),纯 Go 团队可直接上 Go -- 框架推荐: - - Python:LangChain/LangGraph(原型与功能全) - - Go:Eino、LangChainGo(生产与性能) -- 硬件与模型容量: - - 7B:16G 显存可行(量化更稳) - - 14B:建议 24–48G 显存;16G 需重度量化且质量折衷 -- 私有化阈值(简易测算):月 API 费用 ≈ 硬件折旧/月 + 运维人力/月 + 合规需求 → 达到阈值再考虑自建 - -## 5 实战演示(24分钟) - -- Python 快速原型(10分钟): - - 用 LangChain/LangGraph 搭“订单诊断”工作流:订单查询→支付网关→风控规则→异常解释 - - 监控:LangSmith 指标与问题定位 -- Go 生产化(10分钟): - - 框架:Eino / LangChainGo;HTTP 层(Gin/Hertz) - - 目录结构: - - `cmd/` 服务入口 - - `internal/agent/` 意图识别与解释 - - `internal/workflow/` 节点编排、重试与回退 - - `internal/tools/` 订单/支付/风控等工具封装 - - `internal/observability/` 指标、日志、trace - - `pkg/` 通用库;`api/` 接口定义(OpenAPI/gRPC) - - 工程要点:幂等、错误码、超时/熔断、重试与任务重放 -- 传输与体验(4分钟): - - 流式对比:SSE(浏览器友好、单向) vs WebSocket(双向、状态管理) vs HTTP Streaming(解析复杂) vs gRPC 流(强类型、需网关) - - 选择建议:前端优先 SSE;双向需 WebSocket;内网优先 gRPC/HTTP2 - - 降低等待焦虑:预热与缓存、渐进式输出(先要点后细节)、并行查询与最慢支路降级、心跳与重连 - -## 6 成本评估与阶段化私有化(4分钟) - -- 在线指标:成功率、P95 延迟、令牌用量、调用成本、重试次数、人工接管率 -- 监控盲点:上下文与工具调用的隐性令牌、未分场景/版本统计 -- 阶段化决策:先供应商跑通 + 完整监控 → 达阈值再私有化;含合规与数据敏感评估 - -## 7 总结(1分钟) - -- 选择 > 实现,适合 > 先进;Agent + 工作流是通用融合方案 -- 一套模板 + 一套度量与监控 → 快速落地、可持续优化 - -## 8 相关资源(1分钟) - -- LangChain: -- LangGraph: -- Eino 框架: -- LangChainGo: -- Coze(可视化): -- Coze Studio(本地部署): -- Coze Loop(监控): -- 内部模板与评测集:公司知识库/代码模板(按团队链接补充) diff --git a/课件资料/0.开场白.md b/课件资料/0.开场白.md deleted file mode 100644 index 3be27ba..0000000 --- a/课件资料/0.开场白.md +++ /dev/null @@ -1,34 +0,0 @@ -# 开场白 - -**【承上启下,建立技术演进的连贯性】** - -前面我们学习了AI原理和部署实践, -那今天呢?我想和大家聊聊:AI到底该怎么'用好'? - -**【痛点共识】** - -- 算法懂了、模型也能跑,但落地时到底该用 Agent 还是工作流? -- SSE、WebSocket、HTTP 流到底怎么选,用户等待体验怎么优化? -- 供应商 vs 私有化怎么权衡,成本到什么阶段再自建? - -**【今天我们做什么】** - -- 用一个真实案例(订单诊断)贯穿:Agent 负责意图与解释,工作流负责确定性执行与回退重试 -- 给出阶段化选型:原型用 Python,生产用 Go(Eino/LangChainGo),并给出目录模板与工程要点 -- 拆解流式传输与体验优化:选择建议、并行与降级、渐进式输出 -- 评估成本与私有化阈值:用数据而不是感觉做决定 - -**【你将带走】** - -- 可直接复用的 Go 项目目录模板与 Python 原型示例 -- 流式传输最佳实践与选择建议 -- 一套成本评估与私有化决策表 -- 常见坑清单与规避方法(幂等、错误码、记忆与状态分离) - -**【一句话总结】** - -选择 > 实现,适合 > 先进;聪明交给 Agent,稳定交给工作流。 - -**【开始吧】** - -接下来 72 分钟,我们用融合方案把“能用”变成“好用、可持续”。 diff --git a/课件资料/1.承上启下-技术演进与主题定位.md b/课件资料/1.承上启下-技术演进与主题定位.md deleted file mode 100644 index 093f774..0000000 --- a/课件资料/1.承上启下-技术演进与主题定位.md +++ /dev/null @@ -1,20 +0,0 @@ -# 承上启下:技术演进与主题定位 - -## 技术演进三阶段 -- 手工时代:Prompt 手工打造,结果不稳定、不可复制 -- 智能体时代:能记忆与调工具,但仍是作坊式、效率有限 -- 工业化时代:标准化流程、质量可控、批量复制 - -## 主题定位(一句话) -- 聪明交给 Agent,稳定交给工作流;两者融合,既好用又可规模复制 - -## 课程收益与贯穿案例 -- 收益:更快选型、更稳上线、更好用户体验、更清晰成本评估 -- 案例:订单诊断(降低 MTTR、减少人工接管率) - -## 今日路线图 -- Python 快速原型 → Go 生产化 → 传输与体验优化 → 成本评估与私有化阈值 -## 一句话总结 -主题定位:Agent 负责聪明与解释,工作流保障稳定与规模。 -## 一句话引出 -进入“融合方案”,明确职责边界与组合模式。 \ No newline at end of file diff --git a/课件资料/2.融合方案-Agent与工作流.md b/课件资料/2.融合方案-Agent与工作流.md deleted file mode 100644 index 597db1d..0000000 --- a/课件资料/2.融合方案-Agent与工作流.md +++ /dev/null @@ -1,30 +0,0 @@ -# 融合方案:Agent × 工作流 - -## Agent 的职责 -- 意图识别与对话管理 -- 工具选择与策略性决策 -- 结果解释与可解释性输出 - -## 工作流的职责 -- 确定性算子编排与数据读写 -- 状态管理、幂等、重试与失败回退 -- 审计与监控、指标采集 - -## 组合模式 -- 入口路由:Agent 基于意图调用不同工作流 -- 工作流内嵌决策:复杂判断节点由 Agent 决策,其余确定性执行 -- 管理者-执行者:Manager Agent 分配任务,工作流执行工具 - -## 边界与协作 -- 记忆 vs 任务状态分离:避免业务状态污染对话记忆 -- 工具接口规范:输入输出、错误码、幂等与超时/熔断 -- 回退与人机协同:失败分支、人工接管入口、任务重放 - -## 常见坑与规避 -- 多 Agent 过度设计 → 一个入口 Agent + 工作流主干 -- 幂等缺失与错误码混乱 → 无法重试与回退 -- 监控缺失 → 无法定位问题与评估成本 -## 一句话总结 -边界清晰、模式够用、契约完备,才能让融合方案在生产可控。 -## 一句话引出 -下节将把融合范式映射到具体场景与选型。 \ No newline at end of file diff --git a/课件资料/3.场景识别与技术选型.md b/课件资料/3.场景识别与技术选型.md deleted file mode 100644 index eb48fac..0000000 --- a/课件资料/3.场景识别与技术选型.md +++ /dev/null @@ -1,28 +0,0 @@ -# 场景识别与技术选型 - -## 三招判断适配度 -- 频次:是否每天出现 -- 复杂度:是否需要看多个因素 -- 容错:是否允许偶尔错误 - -## 不适用的边界 -- 规则清晰 → 用代码/规则引擎更稳更便宜 -- 要求 100% 准确 → AI 不合适 -- 一次性工作 → 人工处理即可 - -## 部署选型 -- 供应商(API/Agent/工作流):验证快、维护省心、需评估数据外流 -- 私有化(云/本地):数据可控、长期成本可控、需工程与运维投入 - -## 语言与框架 -- 原型:Python(LangChain、LangGraph) -- 生产:Go(Eino、LangChainGo) -- 团队策略:纯 Go 团队可直接 Go,但建议保留原型快速验证 - -## 私有化阈值与硬件预算 -- 模型容量:7B≈16G 显存;14B建议 24–48G 显存(16G 需重度量化) -- 阈值测算:月 API 费用 ≈ 硬件折旧/月 + 运维人力/月 + 合规需求 -## 一句话总结 -先用数据选场景与方案,原型快跑,生产稳落,达到阈值再私有化。 -## 一句话引出 -随后进入“实战落地”,用订单诊断完成端到端演示。 \ No newline at end of file diff --git a/课件资料/4.实战落地-架构传输与成本.md b/课件资料/4.实战落地-架构传输与成本.md deleted file mode 100644 index df59dff..0000000 --- a/课件资料/4.实战落地-架构传输与成本.md +++ /dev/null @@ -1,30 +0,0 @@ -# 实战落地:架构、传输与成本评估 - -## 案例流程(订单诊断) -- 节点:订单查询 → 支付网关 → 风控规则 → 异常解释 -- 分支:失败回退、重试策略、人工接管入口 - -## Python 原型要点 -- LangChain/LangGraph 搭建工作流 -- LangSmith 指标与问题定位 - -## Go 生产要点 -- 框架:Eino / LangChainGo;HTTP 层(Gin/Hertz) -- 目录结构:`cmd/`、`internal/agent`、`internal/workflow`、`internal/tools`、`internal/observability`、`pkg/`、`api/` -- 工程要点:幂等、错误码、超时/熔断、重试与任务重放 - -## 传输与体验 -- SSE:浏览器友好、单向推送、实现简单 -- WebSocket:双向、低延迟、需心跳与状态管理 -- HTTP Streaming:保持 HTTP 语义,前端解析更复杂 -- gRPC 流:双向流、性能好、Web 需网关 -- 降低等待焦虑:预热与缓存、渐进式输出、并行查询与最慢支路降级、心跳与重连 - -## 成本与度量 -- 在线指标:成功率、P95 延迟、令牌用量、调用成本、重试次数、人工接管率 -- 监控盲点:上下文与工具调用的隐性令牌、未分场景/版本统计 -- 阶段化私有化:先供应商 + 完整监控 → 达阈值再自建 -## 一句话总结 -用融合方案跑通端到端,并以指标闭环驱动体验与成本优化。 -## 一句话引出 -最后收束到“课程总结与资源”,附行动清单与评测模板。 \ No newline at end of file diff --git a/课件资料/WPS-PPT-提示文档.md b/课件资料/WPS-PPT-提示文档.md deleted file mode 100644 index 5e81bcb..0000000 --- a/课件资料/WPS-PPT-提示文档.md +++ /dev/null @@ -1,124 +0,0 @@ -# WPS 智能PPT生成提示文档:AI应用落地(Agent × 工作流融合实战) - -## 全局参数 -- 听众画像:后端 Go 开发,具备基础 AI 应用认知 -- 目标:理解并掌握“Agent + 工作流”融合范式,能快速原型与稳定生产化 -- 风格:简洁、工程化、数据驱动;少段落,多要点;配图清晰 -- 配色:主色蓝灰(#2F5D8A / #4A4A4A),强调色橙(#F59E0B) -- 字体:中文用思源黑体/微软雅黑,英文字体用 Inter/Roboto -- 页数建议:18–20 页;每页遵循“标题/一句话金句/三要点/图示建议”结构 -- 图形偏好:流程图、架构图、对比表;避免花哨背景与过多动画 -- 术语一致:Agent、工作流、SSE、WebSocket、HTTP Streaming、gRPC、MTTR、P95、令牌 - -## 目录与每页内容 -1. 标题页 - - 金句:选择 > 实现,适合 > 先进 - - 要点:主题、讲师、时间 - - 图示:主题封面图(抽象线路/节点) - -2. 开场与目标 - - 金句:聪明交给 Agent,稳定交给工作流 - - 要点:听众画像、课程目标、贯穿案例(订单诊断) - - 图示:课程目标图标组 - -3. 承上启下:技术演进 - - 金句:从手工到工业化,核心是标准化与可观测 - - 要点:手工→智能体→工业化;问题与改进;度量意识 - - 图示:时间轴 - -4. 融合方案总览 - - 金句:边界清晰、模式够用、契约完备 - - 要点:Agent 职责;工作流职责;融合收益 - - 图示:双层架构图(Agent 外层、工作流主干) - -5. 组合模式与职责边界 - - 金句:入口路由、内嵌决策、管理者-执行者 - - 要点:三种模式;适用场景;边界约束(记忆vs状态) - - 图示:三模式示意图 - -6. 常见坑与规避 - - 金句:少而精的 Agent + 可观测工作流 - - 要点:过度多Agent;幂等与错误码缺失;监控缺失 - - 图示:问题→对策表 - -7. 场景识别三招 - - 金句:频次、复杂度、容错三步筛选 - - 要点:三招定义;通过案例映射;回退边界 - - 图示:打勾/打叉列表 - -8. 不适用边界 - - 金句:能编程就别用 AI;必须 100% 准确也别用 - - 要点:规则清晰、100%准确、一次性工作 - - 图示:红线边界卡片 - -9. 部署选型 - - 金句:先供应商跑通,达阈值再私有化 - - 要点:供应商(API/Agent/工作流);私有化(云/本地)优缺点 - - 图示:对比表 - -10. 语言与框架 - - 金句:原型 Python,生产 Go;纯 Go 团队可直接 Go - - 要点:LangChain/LangGraph;Eino/LangChainGo;生态与工程取舍 - - 图示:栈对比图 - -11. 私有化阈值与硬件预算 - - 金句:用数据而不是感觉做决定 - - 要点:月 API 费测算;自建=硬件折旧+运维+合规;显存容量:7B≈16G,14B建议24–48G(16G重度量化) - - 图示:简易成本公式与条形图 - -12. 架构总览(订单诊断) - - 金句:入口 Agent + 主干工作流,端到端闭环 - - 要点:输入/输出;节点与分支;回退与人工接管 - - 图示:端到端流程图 - -13. 传输与体验(对比) - - 金句:前端优先 SSE;双向用 WebSocket;内网优先 gRPC/HTTP2 - - 要点:SSE/WebSocket/HTTP Streaming/gRPC 优劣;心跳与重连;渐进式输出与并行降级 - - 图示:对比表 + 时序图 - -14. Python 原型演示 - - 金句:快速搭建、可观测、可回放 - - 要点:LangChain/LangGraph;LangSmith 监控;评测集与回放 - - 图示:原型架构与监控截图占位 - -15. Go 生产化演示 - - 金句:目录清晰、契约完备、稳定可扩展 - - 要点:Eino/LangChainGo;`cmd/`、`internal/*`、`pkg/`、`api/`;幂等/错误码/重试/熔断 - - 图示:目录结构树与依赖图 - -16. 工程要点(可靠性) - - 金句:幂等与错误码是重试与回退的根基 - - 要点:超时/熔断;任务重放;死信与恢复策略 - - 图示:容错链路图 - -17. 成本与度量 - - 金句:指标闭环驱动优化与私有化决策 - - 要点:成功率、P95、令牌、成本、重试、人工接管率;监控盲点与分维度统计 - - 图示:指标仪表盘占位 - -18. 总结与行动清单 - - 金句:模板 + 度量与监控 → 快速落地、可持续优化 - - 要点:选一个场景;填选型表;套模板;算成本账 - - 图示:清单卡片 - -19. 相关资源 - - 金句:拿来即用的外部文档与内部模板 - - 要点:LangChain、LangGraph、Eino、LangChainGo、Coze、Coze Studio、Coze Loop、内部知识库链接 - - 图示:资源链接卡片 - -## 版式与生成要求 -- 每页结构:主标题(不超过14字)+ 一句话金句(不超过20字)+ 三要点(每条不超过18字)+ 图示建议(一句话) -- 避免长段落;对比用表格;流程用箭头;术语保持一致 -- 所有英语缩写保留原文:SSE、gRPC、HTTP/2、MTTR、P95 -- 优先白底深色文字;强调色仅用于关键字或数据 - -## 演讲备注(可选) -- 强调“融合范式”的方法论与工程可操作性 -- 贯穿案例用“订单诊断”,度量指标贯穿始终 -- 传输体验与成本评估是实战关键,不可略过 - -## 生成后校对清单 -- 术语统一;硬件容量数字正确(14B→24–48G 显存建议) -- SSE/WebSocket/gRPC 对比无缺项;有心跳与重连要点 -- 目录结构页包含 `cmd/`、`internal/agent`、`internal/workflow`、`internal/tools`、`internal/observability`、`pkg/`、`api/` -- 成本页包含公式与分维度指标 \ No newline at end of file diff --git a/课件资料/代码.md b/课件资料/代码.md deleted file mode 100644 index 4f91d94..0000000 --- a/课件资料/代码.md +++ /dev/null @@ -1,174 +0,0 @@ -# 代码示例 - -langchain生态 - -- Chain - -```python -async def main(): - prompt = ChatPromptTemplate.from_messages([ - ("system", "你是一个友好、专业的AI助手。"), - ("human", "{input}") - ]) - - # 2) 定义模型(按你本地 Ollama 配置调整) - model = ChatOllama( - model="qwen3:8b", # 或你的实际模型名 - base_url="http://localhost:11434" - ) - - # 3) 定义输出解析器,将 AIMessage 转字符串 - parser = StrOutputParser() - - # 4) 组合为表达式管道 - chain = prompt | model | parser - - # 非流式调用 - text = await chain.ainvoke({"input": "请用一句话做自我介绍"}) - print("非流式:", text) - - # 流式调用 - print("流式:", end="", flush=True) - async for chunk in chain.astream({"input": "讲一个简短的笑话"}): - print(chunk, end="", flush=True) -``` - -- Graph - -```python -# 创建状态图 -async def main(): - workflow = StateGraph(WorkflowState) - - # 添加节点 - workflow.add_node("intent_analysis", self._intent_analysis_wrapper) - workflow.add_node("order_diagnosis", self._order_diagnosis_wrapper) - workflow.add_node("natural_chat", self._natural_chat_wrapper) - - # 设置入口点 - workflow.set_entry_point("intent_analysis") - - # 添加条件边 - workflow.add_conditional_edges( - "intent_analysis", - self._route_after_intent_analysis, - { - "order_diagnosis": "order_diagnosis", - "natural_chat": "natural_chat", - "end": END - } - ) - - # 添加结束边 - workflow.add_edge("order_diagnosis", END) - workflow.add_edge("natural_chat", END) - - # 编译图 - agent = workflow.compile() - - messages = [HumanMessage(content="Add 3 and 4.")] - messages = agent.invoke({"messages": messages}) - for m in messages["messages"]: - print(m.content) -``` - -对应流程图(Mermaid) - -```mermaid -flowchart TD - IA[intent_analysis] --> ROUTE{判断意图} - ROUTE -->|order_diagnosis| OD[order_diagnosis] - ROUTE -->|natural_chat| NC[natural_chat] - ROUTE -->|end| END((END)) - - OD --> END - NC --> END -``` - -说明:当意图分析结果为空或不满足条件时,视为“否”分支,进入 `natural_chat`。 - -- Agent - -```python -from langchain.agents import create_agent - -def get_weather(city: str) -> str: - """Get weather for a given city.""" - return f"It's always sunny in {city}!" - -agent = create_agent( - model="claude-sonnet-4-5-20250929", - tools=[get_weather], - system_prompt="You are a helpful assistant", -) - -# Run the agent -agent.invoke( - {"messages": [{"role": "user", "content": "what is the weather in sf"}]} -) -``` - -Go生态 - -- chain - -```go -package main - -import ( - "context" - "fmt" - "os" - - "github.com/cloudwego/eino/compose" - "github.com/cloudwego/eino/components/prompt" - "github.com/cloudwego/eino/schema" - "github.com/cloudwego/eino-ext/components/model/openai" -) - -func main() { - ctx := context.Background() - - // 1) 定义 ChatTemplate(输入键:query),使用 Jinja2 格式 - pt := prompt.FromMessages( - schema.Jinja2, - schema.SystemMessage("你是一个友好的AI助手。请用中文回答。"), - schema.UserMessage("用户问题:{{query}}"), - ) - - // 2) 创建 ChatModel(以 OpenAI 为例,按需替换为其他提供商) - cm, err := openai.NewChatModel(ctx, &openai.ChatModelConfig{ - APIKey: os.Getenv("OPENAI_API_KEY"), - BaseURL: os.Getenv("OPENAI_BASE_URL"), // 可选,自建或代理时设置 - Model: os.Getenv("MODEL_NAME"), // 例如:"gpt-4o-mini" - }) - if err != nil { - fmt.Println("初始化模型失败:", err) - return - } - - // 3) 组合并编译 Chain:模板 -> 模型 - chain, err := compose.NewChain[map[string]any, *schema.Message](). - AppendChatTemplate(pt). // prompt - AppendChatModel(cm). // model - // AppendBranch 分支 - // AppendPassthrough 空透传节点 - // AppendParallel 并行节点 - // AppendGraph 子图节点 - // AppendLambda 自定义函数节点 - Compile(ctx) // 编译链 - if err != nil { - fmt.Println("编译链失败:", err) - return - } - - // 4) 调用链(非流式) - msg, err := chain.Invoke(ctx, map[string]any{"query": "简要介绍一下 Eino 的 Chain"}) - if err != nil { - fmt.Println("调用失败:", err) - return - } - - fmt.Println("回复:", msg.Content) -} -```