总结模式的智能化升级

发布时间:2026/5/25 5:19:33

总结模式的智能化升级 本文目录一、前言二、从工具到智能系统的升级三、工具链完整演示四、智能总结Agent整合实战五、智能总结系统的核心价值六、总结与展望一、前言1.1 本节内容简介我们已经有了5个好用的总结工具但问题来了工具是死的怎么让它们活起来变成一个真正懂你需求的智能总结系统本文将展示如何把这些工具整合成一个智能总结系统它能根据你的需求自动选择合适的工具它能记住之前的对话上下文它能帮你高效处理信息看完你会明白总结模式如何让工具从能用变成好用1.2 为什么要学习本节内容理解升级从工具链到智能系统的本质区别用户体验如何让AI更懂你的需求完整闭环从工具开发到智能系统的完整实践二、从工具到智能系统的升级在开始写代码之前先让我们看看工具链和智能总结系统的区别。2.1 工具链模式被动响应就像我们的summarization_chain_demo.py那样用户分析这段对话 ↓ 工具链好的我按顺序来一遍 ↓ [工具1] 对话总结 → [工具2] 增量更新 → [工具3] 关键信息 → [工具4] 行动项 → [工具5] 文档分块 ↓ 输出5个结果特点✅ 功能完整可以做很多事❌ 每次都运行所有工具不管你需不需要❌ 没有上下文每次都是全新开始❌ 不够智能不知道该用哪个工具适用场景一次性的完整分析任务批量处理历史数据2.2 智能总结系统按需服务就像我们即将看到的那样用户帮我总结一下这段对话 ↓ Agent思考这个需求应该用对话总结工具 ↓ [工具1] conversation_summary ↓ 输出对话摘要 用户那里面有什么重要信息 ↓ Agent思考现在需要用关键信息提取工具 ↓ [工具3] key_info_extractor ↓ 输出关键信息特点✅ 按需调用不浪费✅ 有上下文知道之前做了什么✅ 自然语言交互用户友好⚠️ 需要大模型有一定成本适用场景用户自助查询系统智能文档助手需要灵活处理各种需求的场景2.3 对比总结表维度工具链模式智能总结系统调用方式每次都运行所有工具根据需求选择工具上下文无每次全新有记住之前操作用户体验需要懂技术自然语言交互灵活性低固定流程高按需选择三、工具链完整演示3.1 工具链流程图输入内容 ↓ [工具1] conversation_summary → 对话摘要 ↓ [工具2] incremental_summarizer → 增量更新 [工具3] key_info_extractor → 关键信息 [工具4] action_item_detector → 行动项 ↓ [工具5] document_chunker → 文档分块3.2 完整工具链代码import json import sys import os # 添加当前目录到路径确保能导入工具 sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from tool_1_conversation_summary import conversation_summary from tool_2_incremental_summarizer import incremental_summarizer from tool_3_key_info_extractor import key_info_extractor from tool_4_action_item_detector import action_item_detector from tool_5_document_chunker import document_chunker print( * 60) print(03 总结模式 - 工具链完整演示) print( * 60) # 内建示例对话 conversation [ {role: user, content: 你好我想了解一下如何做项目总结}, {role: assistant, content: 好的项目总结很重要。可以从完成情况、遇到的问题、经验教训这几个方面入手。}, {role: user, content: 对了下周开会前需要准备好报告}, {role: assistant, content: 没问题我可以帮你梳理报告结构。}, {role: user, content: 重要的是要包含预算分析和时间进度}, {role: assistant, content: 好的预算分析和时间进度会放在重要位置。} ] print(f\n已加载示例对话共 {len(conversation)} 条消息) print(\n * 60) print(步骤 1: 使用工具1 - 基础对话总结) print( * 60) summary_text conversation_summary.invoke({messages: conversation}) print(summary_text) with open(output_summary.txt, w, encodingutf-8) as f: f.write(summary_text) print(\n对话摘要已保存到 output_summary.txt) print(\n * 60) print(步骤 2: 使用工具3 - 关键信息提取) print( * 60) key_info_json key_info_extractor.invoke({messages: conversation}) print(key_info_json) with open(output_key_info.json, w, encodingutf-8) as f: f.write(key_info_json) print(\n关键信息已保存到 output_key_info.json) print(\n * 60) print(步骤 3: 使用工具4 - 行动项识别) print( * 60) action_items_json action_item_detector.invoke({messages: conversation}) print(action_items_json) with open(output_actions.json, w, encodingutf-8) as f: f.write(action_items_json) print(\n行动项已保存到 output_actions.json) print(\n * 60) print(工具链演示完成) print( * 60) print(\n生成的文件) print(- output_summary.txt (对话摘要)) print(- output_key_info.json (关键信息)) print(- output_actions.json (行动项))3.3 运行工具链cd 03_summarization ..\venv_py38\Scripts\python.exe summarization_chain_demo.py四、智能总结Agent整合实战4.1 前置要求安装并启动 Ollama访问 https://ollama.com拉取模型ollama pull qwen2.5:3b-instruct确保 Ollama 正在运行4.2 交互式智能总结Agent完整代码 交互式智能总结Agent - 简化可运行版 直接调用 Ollama API不依赖复杂框架 import requests import json import sys import os # 添加当前目录到路径 sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) # 导入我们的工具 from tool_1_conversation_summary import conversation_summary from tool_2_incremental_summarizer import incremental_summarizer from tool_3_key_info_extractor import key_info_extractor from tool_4_action_item_detector import action_item_detector from tool_5_document_chunker import document_chunker OLLAMA_URL http://localhost:11434/api/generate MODEL_NAME qwen2.5:3b-instruct class SummaryAssistant: 智能总结助手 - 简化版 def __init__(self): print( * 60) print(智能总结Agent - 初始化中...) print( * 60) # 对话历史存储 self.conversation_history [] print(✅ 智能总结Agent初始化完成) print() def call_ollama(self, prompt, max_tokens300): 调用 Ollama API try: response requests.post( OLLAMA_URL, json{ model: MODEL_NAME, prompt: prompt, stream: False, options: { temperature: 0.7, num_predict: max_tokens } }, timeout60 ) if response.status_code 200: return response.json().get(response, ) else: return f调用出错: {response.status_code} except Exception as e: return f连接出错: {e} def chat(self, user_input): 和用户对话 print(f\n用户: {user_input}) # 保存用户输入到历史 self.conversation_history.append({ role: user, content: user_input }) # 构造提示词 prompt self._build_prompt(user_input) # 调用模型生成回复 print(助手思考中..., end, flushTrue) try: assistant_reply self.call_ollama(prompt, max_tokens300) except Exception as e: assistant_reply f抱歉我遇到了问题{str(e)} print(\r * 20 \r, end) # 保存助手回复 self.conversation_history.append({ role: assistant, content: assistant_reply }) print(f助手: {assistant_reply}) return assistant_reply def _build_prompt(self, user_input): 构造提示词 # 构建历史对话文本 history_text for msg in self.conversation_history[:-1]: # 不包括当前这条 if msg[role] user: history_text f用户: {msg[content]}\n else: history_text f助手: {msg[content]}\n prompt f你是一个友好的智能总结助手。以下是对话历史 {history_text} 用户刚刚说: {user_input} 请友好地回应用户保持对话自然。你可以帮助用户总结对话、提取关键信息、识别行动项等。 return prompt def get_summary(self): 获取对话总结 if len(self.conversation_history) 0: return 暂无对话历史 return conversation_summary.invoke({messages: self.conversation_history}) def get_key_info(self): 获取关键信息 if len(self.conversation_history) 0: return 暂无对话历史 return key_info_extractor.invoke({messages: self.conversation_history}) def get_actions(self): 获取行动项 if len(self.conversation_history) 0: return 暂无对话历史 return action_item_detector.invoke({messages: self.conversation_history}) def get_history(self): 获取格式化对话历史 if len(self.conversation_history) 0: return 暂无对话历史 formatted [] for msg in self.conversation_history: prefix 用户 if msg[role] user else 助手 formatted.append(f{prefix}: {msg[content]}) return \n.join(formatted) def main(): 主函数 - 交互式对话 print() print( * 60) print(智能总结Agent - 交互式对话) print( * 60) print() print(指令:) print( - 直接输入内容与助手对话) print( - 输入 summary 查看对话总结) print( - 输入 keyinfo 查看关键信息) print( - 输入 actions 查看行动项) print( - 输入 history 查看完整对话历史) print( - 输入 quit 或 exit 退出) print() print( * 60) # 初始化Agent try: agent SummaryAssistant() except Exception as e: print(f初始化失败: {e}) print(\n提示: 请确保Ollama正在运行并且已拉取qwen2.5:3b-instruct模型) print(运行命令: ollama pull qwen2.5:3b-instruct) return print() print(开始对话吧) print() while True: try: user_input input( ).strip() if not user_input: continue # 处理特殊命令 if user_input.lower() in [quit, exit, 退出]: print(\n再见) print(\n * 60) print(对话总结:) print( * 60) print(agent.get_summary()) break if user_input.lower() summary: print(\n * 60) print(对话总结:) print( * 60) print(agent.get_summary()) print() continue if user_input.lower() keyinfo: print(\n * 60) print(关键信息:) print( * 60) print(agent.get_key_info()) print() continue if user_input.lower() actions: print(\n * 60) print(行动项:) print( * 60) print(agent.get_actions()) print() continue if user_input.lower() history: print(\n * 60) print(对话历史:) print( * 60) print(agent.get_history()) print() continue # 正常对话 agent.chat(user_input) except KeyboardInterrupt: print(\n\n再见) break except Exception as e: print(f\n发生错误: {e}) if __name__ __main__: main()4.3 运行智能总结Agentcd 03_summarization ..\venv_py38\Scripts\python.exe interactive_summary_agent.py4.4 智能总结Agent功能对话记忆记住之前的对话内容特殊命令支持summary查看对话总结keyinfo查看关键信息actions查看行动项history查看完整对话历史quit或exit退出4.4 实际交互演示以下是真实运行的交互记录展示智能总结Agent的能力 智能总结Agent - 交互式对话 指令: - 直接输入内容与助手对话 - 输入 summary 查看对话总结 - 输入 keyinfo 查看关键信息 - 输入 actions 查看行动项 - 输入 history 查看完整对话历史 - 输入 quit 或 exit 退出 [OK] 智能总结Agent初始化完成 开始对话吧 你好 用户: 你好 助手: 你好听起来我们还没有开始讨论哦。有什么问题或者需要帮忙的地方吗或者你只是想聊聊天呢随时告诉我吧 我想学习吉他 用户: 我想学习吉他 助手: 你好听起来你想开始学习吉他的计划。这是一个很好的决定学一门乐器不仅能丰富你的生活还能提升你的情绪和耐力呢 从我们的对话中看你现在最需要的是一个学习计划或者一些基本的指导来帮助你入门吧下面我来帮总结一下我们聊的重点 1. 你想学习吉他。 2. 可能还需要一些关于如何开始的基本信息。 如果你有任何具体问题或是想要了解更多细节请随时告诉我我可以帮你找到一些资源比如基础教程、视频教学或者是一些社区活动。 提供一些资源吧 用户: 提供一些资源吧 助手: 好的用户你提到了需要具体的资源来开始学习吉他。 根据我们的对话我们可以总结一下 1. 你想学习吉他。 2. 需要一些具体的学习资源和指导。 现在我找到了一些可以帮助你的资源希望能对你有帮助 - **基础教程**你可以从基础教程开始学习比如《吉他基础知识》视频系列它会教你如何正确地使用吉他、调音以及基本的乐理知识。 - **在线课程**还有一些在线平台提供基础的吉他课程如Udemy或Skillshare上的相关课程。这些课程通常包含详细的讲解和练习指南。 - **社区活动**你也可以考虑参加一些本地的音乐教室或者学习小组和有相同兴趣的人一起学习可以让你的学习过程更加有趣。 如果你有任何其他具体问题或是想要进一步的信息请随时告诉我 actions 行动项: { 总计行动项: 0, 行动项列表: [], 提示: 未检测到明确的行动项 } keyinfo 关键信息: { 需求信息: [ 我想学习吉他 ] } summary 对话总结: # 对话摘要 - 对话轮数: 3轮 - 用户主要询问: 我想学习吉他 - 其他关注点: 你好, 提供一些资源吧 - 对话主题: 学习需求 quit 再见五、智能总结系统的核心价值看到这里你可能会问智能总结系统不就是会自动调用工具吗有什么了不起的让我用一个真实的场景来说明智能总结系统的价值5.1 场景对比会议记录处理传统方式没有智能系统用户帮我看看这个会议记录 ↓ 员工好的我先通读一遍记录 ↓ 员工然后我来写个总结 ↓ 员工再提取一下重要信息 ↓ 员工最后列一下行动项 ↓ 需要人工操作耗时较长员工需要懂流程智能总结系统方式用户帮我看看这个会议记录 ↓ Agent自动调用对话总结工具 ↓ 用户有什么重要信息 ↓ Agent自动调用关键信息提取工具 ↓ 用户需要做什么 ↓ Agent自动调用行动项识别工具 ↓ 快速响应用户不需要懂技术5.2 智能总结系统的核心价值价值点说明降低使用门槛用户不需要知道该调用哪个工具用自然语言提问就行按需调用不会浪费资源调用不需要的工具只做必要的事自然交互可以处理模糊、不完整的需求不需要严格格式上下文理解可以基于之前的对话持续跟进处理复杂需求5.3 三种方式的对比特性工具链Agent工具模式智能总结系统单次任务✅ 适合✅ 适合✅ 适合灵活查询❌ 不适合⚠️ 有限支持✅ 完美支持上下文记忆❌ 无⚠️ 有限✅ 完整按需调用❌ 每次都运行所有工具✅ 智能选择✅ 智能选择5.4 什么时候需要智能总结系统✅ 适合用智能总结系统的场景个人专属文档助手会议记录智能分析客服对话自动总结需要长期处理各种信息的场景❌ 不适合的场景单次、固定流程的批量处理完全不需要交互的自动化任务六、总结与展望6.1 本系列要点总结要点说明✅ 理解了总结模式简化、提取、行动三位一体✅ 掌握了5个总结工具从基础总结到文档分块✅ 理解了工具链到系统的升级从功能到体验的质的飞跃✅ 实现了智能总结Agent让工具变成贴心的信息助手6.2 系列结束感谢你学习完本系列希望这些内容对你有帮助。记住工具只是手段让AI真正懂人、服务人才是总结模式的终极目标。 参考资源资源链接LangChain Summarization Docshttps://python.langchain.com/docs/modules/chains/popular/summarizeOllama官方网站https://ollama.com点赞 关注更新不迷路

相关新闻