智能体构建与应用开发(Python+LangChain)(微课版)课件 项目5-8 构建Agent智能体与工具系统- 部署和发布智能体_第1页
智能体构建与应用开发(Python+LangChain)(微课版)课件 项目5-8 构建Agent智能体与工具系统- 部署和发布智能体_第2页
智能体构建与应用开发(Python+LangChain)(微课版)课件 项目5-8 构建Agent智能体与工具系统- 部署和发布智能体_第3页
智能体构建与应用开发(Python+LangChain)(微课版)课件 项目5-8 构建Agent智能体与工具系统- 部署和发布智能体_第4页
智能体构建与应用开发(Python+LangChain)(微课版)课件 项目5-8 构建Agent智能体与工具系统- 部署和发布智能体_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目5构建Agent智能体与工具系统时间:2026/05/01项目5构建Agent智能体与工具系统目录CONTENTS01项目描述02任务5-1智能体调用工具03任务5-2智能体调用MCP服务01项目描述项目5构建Agent智能体与工具系统项目背景与目标在AI应用开发中,仅实现基础对话功能已不足以满足复杂业务场景需求。本项目基于LangChain框架,通过Agent智能体与Tool工具系统深度集成,使大模型具备执行具体任务的能力。项目内容结构首先介绍工具的定义和调用方法,调用本地定义的工具;然后介绍智能体通过MCP协议调用外部工具。项目5任务思维导图展示了智能体构建与应用开发的完整任务路径。02任务5-1智能体调用工具学习目标知识目标掌握工具的基本概念,掌握广义智能体和狭义智能体的概念区别,了解大语言模型工具调用能力的发展历程。技能目标能够使用@tool装饰器创建自定义功能工具,使用create_agent方法构建智能体并装配工具列表,通过自然语言指令驱动智能体正确调用工具并解析返回结果。素养目标通过复杂任务分解培养系统工程思维,通过调试智能体的工具选择与参数传递培养工程实践能力。5.1.1任务描述任务描述在成功为AI助手赋予记忆能力,使其能连贯处理多轮对话后,技术主管要求王亮探索LangChain框架的智能体模块,学习创建工具、构建智能体,实现一个能听懂要求、选择工具、执行操作、返回结果的智能工作流,让AI不仅能对话,还能像专家一样执行具体任务。5.1.2必备知识工具的基本概念工具是智能体实现具体功能的核心执行单元,为智能体提供超越纯文本对话的专业能力延伸。每个工具是封装特定操作的标准化功能模块,输入输出接口严格定义,以便智能体准确调用并解析结果。广义智能体广义智能体是完整的端到端AI代理系统,包含大语言模型、智能体框架和专业工具集。三者深度融合,形成能独立理解复杂意图、规划多步任务并驱动工具完成实际工作的自主系统。狭义智能体狭义智能体特指AI架构中的协调与执行框架层,不包含大语言模型的认知能力,也不包含具体工具的实现,是一个纯粹的工作流引擎,负责将外部大模型的智能决策转化为具体的工具调用序列。大语言模型调用工具能力的发展历程包括工程化探索期(提示词约定与格式解析、生成并执行代码)、接口标准化期(OpenAI推出FunctionCall功能)、智能化协作期(引入智能体架构实现自主工作流引擎)三个阶段。5.1.3构建工具新建项目打开PyCharm创建项目5,导入LangChain核心依赖,安装langchain、langchain-openai、langchain-community和python-dotenv。拷贝project4中的.env文件和model.py文件到项目5根目录下。创建省会查询工具使用@tool装饰器将普通Python函数转化为AI可调用的智能工具。通过三引号文档字符串说明工具功能、参数要求、返回值和使用示例,定义省份数据字典并增强输入处理。创建数学计算工具并测试通过@tool装饰器将calculator函数转换为AI可调用的工具,使用eval()进行数学计算并通过try-except结构实现完整错误处理。将所有工具整合到all_tools列表中便于统一管理和调用。5.1.4构建智能体并调用工具创建智能体通过create_agent函数创建具有工具调用能力的智能体,将大语言模型的推理能力与外部工具的执行能力有机结合。常用参数包括model、tools和system_prompt,构建用户与大语言模型、工具集之间的智能协调者。调用工具并返回结果实现包含过程可视化的智能体交互系统。通过交互式while循环构建命令行问答界面,通过agent.invoke()触发完整推理执行工作流,通过show_process函数深度解析消息流,实现智能体内部操作过程的可视化。03任务5-2智能体调用MCP服务学习目标知识目标与技能目标掌握MCP协议的核心功能和MCP架构的核心组件。能够开发运行高德MCP服务端的程序,能够开发高德MCP客户端程序,实现智能体与外部服务的标准化集成。素养目标通过智能体集成MCP服务,培养学生构建标准化、可复用智能体工具的架构与集成能力。通过遵循MCP协议标准进行开发,培养学生理解和使用接口规范的职业习惯。5.2.1任务描述任务描述王亮在开发一个具备天气和地理查询功能的智能体后,无法获取真实的天气和地理数据,技术主管要求他为该智能体集成高德地图的MCP服务能力,实现从申请开发者密钥、运行MCP服务器、开发MCP客户端到最终智能体集成的完整链路,确保智能体能够理解用户自然语言中的查询需求,调用高德地图API并返回精准结果。5.2.2必备知识MCP协议的核心功能MCP是一个开放通用的协议标准,旨在为大语言模型提供统一的外部资源访问接口,使其能够动态调用工具和获取实时数据。MCP作为一种标准协议,就像为AI大模型提供了一个万能接口,使得AI模型能够与多种数据源和工具进行无缝连接。MCP架构的核心组件MCP采用客户端-服务器模式,包括MCP主机、MCP客户端、MCP服务器、本地资源和远程资源五个部分。MCP主机是智能应用程序,客户端负责协议通信,服务器封装特定功能,本地资源和远程资源提供数据支持。5.2.3在高德开放平台上申请开发密钥登录高德开放平台使用浏览器打开高德开放平台,使用短信登录或手机扫描二维码登录方式进行登录。首次登录时按照提示使用支付宝和邮箱进行实名验证,登录成功后单击控制台链接进入控制台。创建新应用进入控制台后选择应用管理下的我的应用,单击创建新应用按钮。输入应用名称为MCP,选择应用类型为旅游,单击新建按钮成功创建名称为MCP的应用。添加Key在MCP应用中选择添加Key链接,输入Key名称为MCP_Agent,选择服务平台为Web服务,勾选阅读并同意高德开放平台服务协议和高德开放平台隐私权政策,单击提交按钮成功创建Key开发密钥。查看配额成功创建Key后,可以选择右侧查看配额链接。高德开放平台为认证用户提供了免费的调用服务,足够学习使用。该密钥将用于后续MCP服务器的环境变量配置。5.2.4本地运行MCP服务器01查询高德MCP服务器软件包安装node.js软件,查看npm包管理工具的版本信息和默认仓库地址。使用npm查询包含amap的软件包,发现高德MCP服务器的软件包名称为@amap/amap-maps-mcp-server,其中@amap表示命名空间,是高德官方认证的包。02编写运行高德MCP服务器代码MCP服务端和客户端的通信包括stdio、Socket、SSE等方式,本任务采用Socket通信方式。导入和定义MCPServerTCP类,编写主启动函数启动MCP服务进程、建立TCP网络服务、启动工作线程。03客户端连接管理与输出转发编写客户端连接管理代码实现多客户端并发处理能力,编写MCP输出转发代码实现数据广播功能。通过持续监听MCP进程输出,将数据转发给所有连接的客户端,实现TCP网络传输的标准格式转换。5.2.5开发MCP客户端与智能体集成MCP客户端任务客户端需要完成三个核心任务:建立连接并初始化协议,查询可用工具列表,调用工具并处理结果。连接建立后按照MCP协议规范发送初始化请求,完成协议握手和会话建立。编写高德MCP客户端代码实现连接配置与初始化、底层通信处理、获取工具列表、工具调用和结果解析等功能。通过_send方法封装底层TCP连接管理、数据序列化、网络传输、响应接收和JSON解析等完整通信流程。智能体集成MCP客户端完成建立连接、智能体构建与能力集成、交互执行与闭环管理三个核心任务。通过@tool装饰器定义weather_tool和geo_tool两个核心工具函数,将远程能力封装成智能体可直接调用的本地函数接口。测试智能体启动MCP服务器端程序后运行智能体程序,输入问题北京今天的天气,智能体调用weather_tool工具获取实时天气信息。输入问题沈阳市的经度和纬度,智能体调用geo_tool工具获取经纬度信息,实现完整服务闭环。项目5构建Agent智能体与工具系统-小结项目5系统介绍了智能体与工具系统的集成演进路径。任务5-1中介绍了本地工具的定义与调用方法,让智能体掌握基础执行能力。任务5-2进一步引入了MCP(模型上下文协议)标准,讲解了通过协议化的方式发现、封装和调用外部工具服务,实现智能体能力从本地到云端、从封闭到开放的关键跨越。感谢您的观看THANK

YOU

FOR

WATCHING汇报人:时间:2026/05/01项目6实现RAG检索增强生成汇报人:时间:2026/05/01项目6实现RAG检索增强生成目录CONTENTS01项目描述与任务思维导图02任务6-1处理和检索文档03任务6-2持久化存储向量数据01项目描述与任务思维导图项目6实现RAG检索增强生成项目背景与目标随着企业级应用中知识库问答、智能客服等需求的增长,如何让大模型突破训练数据局限,准确高效利用外部私有或实时数据成为关键技术挑战。核心技术路线本项目首先对原始文档进行预处理与向量化表示;然后实现基于关键字匹配和语义相似度的混合检索策略;最后利用专业向量数据库对海量向量化数据进行持久化存储与高效检索。02任务6-1处理和检索文档任务6-1处理和检索文档知识目标理解文档切分的不同策略及其适用场景;了解向量化处理文档的作用;掌握关键字检索和语义检索的区别。技能目标能够将文档分割为合适的文本块;能够使用嵌入模型将文本转换为向量表示;能够实现基于关键词的精确匹配检索功能;能够实现基于向量相似度的语义检索功能。素养目标通过合理设计文档切分策略,培养学生"平衡粒度、保留语义"的信息处理思维;通过对比不同检索方法的效果,培养学生的数据驱动决策意识和优化能力。6.1.1任务描述任务需求王亮完成智能体任务开发后,技术主管提出了新的需求:为使AI助手能有效处理公司内部的专业知识查询,需构建一套文档智能处理系统,将各类内部文档(如产品手册、技术文档等)转化为结构化的可检索知识库,具体完成文档结构化切分、文本向量化表示、基于关键词和语义的检索等任务。6.1.2必备知识文档切分的不同策略及其适用场景固定长度切分与按句子切分固定长度切分按预设字符数或token数等长切割,实现简单、处理速度快,但可能切断语义单元。按句子切分基于语法规则,按句号、问号、感叹号等分割,保持语法和语义完整性。按结构切分与重叠切分按结构切分依据文档固有组织形式,如章节、段落、列表项等,适合处理高度结构化文档。重叠切分让相邻文本块保留10%-20%重叠内容,为后续处理提供关键上下文信息。按语义/主题切分按语义或主题切分通过分析文本内容结构,在主题转换或语义变化边界处分割,确保每个文本块语义相对完整和独立,适合处理结构清晰、逻辑分明的文档。策略选择要点不同切分策略各有优劣:固定长度适合标准化输入场景;句子切分适合问答系统;结构切分适合法律合同、产品说明书;重叠切分适合上下文依赖性强的场景;语义切分需要借助NLP技术识别边界。6.1.2必备知识向量化处理文档的作用实现文本的数学化表示向量化将非结构化自然语言文本转化为结构化数学向量,每个文档被映射为高维空间中的点,坐标位置编码了文本单元的语义信息,使文本处理转变为几何运算和数学分析。支持高效的语义相似度计算向量化使语义相似度计算简化为向量间距离度量,如余弦相似度、欧氏距离。语义相似的文档在向量空间中位置相近,即使使用不同词汇表达相同概念也能被识别。赋能高级人工智能任务文档向量化是RAG系统、文本分类、聚类任务的基础技术支撑。在检索增强生成系统中,向量化是连接用户查询与相关知识文档的关键桥梁。提升处理效率与可扩展性向量化后的文档表示形式统一、维度固定,便于并行计算和批量处理。可采用专门优化的向量数据库进行管理,支持快速近似最近邻搜索,构建大规模知识库和搜索引擎。6.1.2必备知识关键字检索和语义检索的区别关键字检索关键字检索的核心在于精确匹配,主要服务于目标明确的查找需求。通过比对用户输入的词汇与文档中出现的字面内容,快速返回所有包含该关键词的结果。优点是响应速度快、实现简单、技术成熟稳定;缺点是依赖字面匹配而缺乏语义理解,无法处理同义词或相关概念,检索准确性受限。语义检索语义检索的核心在于理解意图与关联,主要服务于探索性和概念性的信息需求。通过深度理解查询和文档的含义来寻找相关内容,擅长知识问答、内容推荐、学术研究等需要智能联想的场景。优点是能够深入理解语言含义,处理同义词替换、概念扩展等复杂语言现象;缺点是技术要求复杂、计算资源消耗大、响应速度通常较慢。6.1.3切分文档新建项目与固定长度切分打开PyCharm创建项目6,导入LangChain核心依赖。固定长度切分按预设字符数机械分割,示例代码设置块大小为20个字符,通过滑动窗口遍历文本,但会在语义中间切断文本。按句子切分文档基于语言标点边界进行语义分割,通过识别句号、问号等标点符号确保每个文本块都是完整语义单元。示例代码使用sentence_split函数逐个字符遍历,利用中文句号作为句子边界标识进行智能分割。按结构切分文档基于文档固有逻辑结构进行分割,通过识别换行符、标题等格式标记确保每个文本块是完整主题单元。示例代码通过识别连续空行(\n\n)将文档切分成多个独立段落单元。重叠切分文档基于滑动窗口机制进行语义增强,设定固定文本块大小和相邻块之间的重叠区域。示例代码先按标点将文本切分为独立语义单元,再采用滑动窗口组合成更大文本块,确保上下文信息在切分边界处得以保留。6.1.4向量化处理文档文档向量化概念文档向量化是通过数学表示方法将非结构化的文本内容转换为机器可处理的数值向量,运用特征提取、编码转换或模型映射等手段,构建支持相似性计算、聚类分析和高效检索的数学表示系统。示例代码结构示例代码包含数据准备、转换函数、向量化结果三个部分。词汇表word_list定义六个中文词汇,sentence_to_Vector函数将句子转换为二进制向量,通过遍历词汇表检查单词是否存在来构建向量表示。相似度比较分析句子1"猫喜欢鱼"和句子2"狗喜欢骨头"只有一个共同特征,不太相似;句子1和句子3"猫讨厌鱼"有两个共同特征但情感相反;句子1和句子4完全相同,所有特征都相同,因此完全相似。6.1.5实现关键字检索关键字检索技术概述关键字检索是通过用户提供的关键词或短语在文档中定位相关信息的搜索技术,运用文本匹配、索引构建和排序算法等手段,实现从用户查询到目标文档的定向定位过程。优缺点分析优点是响应速度快且实现简单,能够快速从海量文档中定位包含特定词汇的信息,技术成熟稳定。缺点是依赖字面匹配而缺乏语义理解,无法处理同义词、一词多义等语言现象,检索准确性受限。代码实现要点示例代码包含文档加载、文档内容显示、关键字检索、结果输出四个部分。使用TextLoader加载文档,按换行符分割为独立信息单元,采用双重循环结构进行关键字匹配检索。检索结果分析提问"上班时间"和"联系"能够正确回答,因为文档某行包含用户提问内容。但提问"公司在哪里"无法返回正确结果,因为程序只是做关键字的包含匹配,无法理解用户输入问题的语义。6.1.6实现语义检索01语义检索技术概述语义检索是通过理解用户查询意图和文档内容含义来进行信息匹配的智能搜索技术,运用语义理解、向量表示和深度学习等手段,建立从概念意图到语义空间的知识映射关系,实现智能匹配过程。02优缺点分析优点是能够深入理解语言含义而非简单字面匹配,可以处理同义词替换、概念扩展和上下文关联等复杂语言现象。缺点是技术要求复杂且计算资源消耗大,在特定专业领域因训练数据不足而表现不佳,响应速度通常比传统关键字检索慢。03代码实现核心示例代码包含初始化、创建模型类、文档解析、数据处理、语义匹配算法、输出结果六个部分。使用SiliconFlowEmbeddings类调用硅基流动API,采用余弦相似度算法计算向量相似度,阈值设为0.3,实现了从关键词匹配到语义理解的跨越。03任务6-2持久化存储向量数据任务6-2持久化存储向量数据01学习目标知识目标:掌握持久化向量数据的常用方法;掌握FAISS向量数据库的存储机制。技能目标:能够使用FAISS数据库持久化向量数据;能够查询FAISS数据库中的向量数据。素养目标:培养学生处理非结构化数据的工程化能力和系统化解决复杂问题的能力。02任务背景王亮在开发企业内部信息查询功能智能体时,每次查询都需要对文档进行向量化处理,导致响应速度慢且资源消耗大。技术主管要求他实现向量数据库的持久化存储与查询能力。03核心需求将公司文档一次性向量化并持久化存储为本地向量数据库;当智能体启动时快速加载已持久化的向量索引;确保用户使用自然语言查询时能准确返回相关文档信息。6.2.2必备知识持久化向量数据的常用方法主要包括文件系统存储、专用向量数据库、传统数据库扩展、云存储服务和混合存储架构五种方案。文件系统存储因简单直接成为最常用的方法,常用工具包含开源的FAISS、Annoy、Hnswlib,以及功能更完整的Chroma、Qdrant等。专用向量数据库如Pinecone、Weaviate、Milvus等提供分布式存储、实时更新、复杂过滤和自动缩放能力。FAISS向量数据库的存储机制FAISS是Facebook开源的向量数据库,专注于高维向量的高效相似性搜索和聚类。采用索引与元数据分离的双文件架构,索引文件存储量化编码的向量数据及检索结构,元数据文件存储向量ID到原始文档的映射关系。持久化基于faiss.write_index()和faiss.read_index()函数对实现,支持内存映射加载模式,可通过索引合并技术实现增量存储管理。6.2.3使用向量数据库存储数据功能实现流程五个阶段:连接搭建阶段配置硅基流动API连接;数据预处理阶段将数据封装为Document对象;向量转换阶段通过BAAI/bge-large-zh-v1.5模型生成向量;检索结构构建阶段利用FAISS组织成高效索引;持久化存储阶段将向量检索结构序列化为本地文件。核心代码结构导入FAISS、requests、Embeddings、Document等五个核心组件;定义SiliconEmbeddings类继承Embeddings抽象基类;创建VectorDatabaseManager类封装构建和持久化操作;定义create_documents函数构建公司信息文档集合;主程序入口实现完整的构建与持久化流程。运行结果程序向量化处理文档后,FAISS向量数据库持久化向量数据,保存到当前项目的company目录。生成索引文件和元数据文件,实现检索系统能力从临时计算到永久存储、从内存检索到持久化查询的关键跨越。6.2.4检索向量数据库功能实现流程与代码结构五个阶段:构建模型阶段加载相同嵌入模型配置;数据库加载阶段从本地文件读取已序列化的向量检索结构;查询向量化阶段将用户问题转换为查询向量;相似度匹配阶段进行近似最近邻搜索;结果返回阶段格式化输出相关知识片段。代码导入requests、FAISS、Embeddings、List四个核心组件,定义SiliconEmbeddings类,主程序通过FAISS.load_local加载数据库,使用similarity_search执行相似度搜索。测试结果与项目总结查询系统能够根据语义相似度从FAISS向量数据库中检索到与用户问题最相关的文档内容,实现了基于向量匹配的智能问答功能。项目6系统介绍了RAG检索增强生成系统的构建与优化路径,任务6-1掌握从非结构化文本中提取和查找信息的能力,任务6-2实现检索系统能力从临时计算到永久存储、从内存检索到持久化查询的关键跨越。项目6实现RAG检索增强生成-小结项目6系统介绍了RAG检索增强生成系统的构建与优化路径。任务6-1中介绍了文档处理与检索的核心技术,让系统掌握从非结构化文本中提取和查找信息的能力。任务6-2引入向量化持久存储方案,通过向量数据库实现检索数据的长期化存储,实现检索系统能力从临时计算到永久存储、从内存检索到持久化查询的关键跨越。感谢您的观看THANK

YOU

FOR

WATCHING汇报人:时间:2026/05/01项目7综合项目:设计开发个人智能学习助手汇报人:时间:2026/05/01项目7综合项目:设计开发个人智能学习助手目录CONTENTS01项目7综合项目:设计开发个人智能学习助手02任务7-1搭建项目框架并实现基础界面03任务7-2设计开发智能模块04项目小结05项目练习与思考01项目7综合项目:设计开发个人智能学习助手项目7综合项目:设计开发个人智能学习助手项目概述本项目运用项目3到项目6所学的LangChain核心技术,设计并开发一款功能完整的个人智能学习助手应用,整合ModelIO模型调用、提示词工程、对话记忆管理、Agent智能体与工具系统以及RAG检索增强生成等关键技术。项目目标构建一个具备完整前后端交互能力的智能化学习平台,通过本项目的实施,读者将深入掌握LangChain框架在实际应用开发中的综合运用能力,实现从理论学习到工程实践的转化。02任务7-1搭建项目框架并实现基础界面任务7-1搭建项目框架并实现基础界面01任务背景王亮在完成单项技能训练后,技术主管提出综合项目要求。为使智能学习助手具备完整的Web服务能力,需搭建项目基础框架并实现前后端交互界面。02核心任务完成项目目录结构组织、依赖安装、准备前端静态页面、Flask后端服务初始化等具体任务,为后续智能模块开发提供完整的运行环境和交互基础。03工程意义该任务是整个综合项目的基础环节,实现从本地脚本到Web项目服务化改造的关键工程实践,推动系统从临时进程向持久化、有状态的产品化形态转化。学习目标知识目标理解将LangChain应用从本地脚本到Web项目服务化改造的工程意义;掌握Flask框架的路由请求处理机制。技能目标能够搭建个人智能学习助手的项目目录架构;能够准备并组织前端静态页面,实现前后端基础交互;能够使用版本控制工具管理项目依赖,形成规范的开发流程。素养目标通过从零搭建完整项目框架,培养模块解耦、逐步集成的系统工程思维;通过项目目录结构的规范组织,养成结构清晰、命名规范的工程化编码习惯。能力培养本任务旨在培养读者的工程实践能力,使其能够将LangChain技术从实验环境迁移到生产环境,具备构建可交付Web应用的综合能力。7.1.1任务描述任务描述王亮在完成单项技能训练后,技术主管提出了综合项目:设计开发个人智能学习助手。在本任务中,为使智能学习助手具备完整的Web服务能力,需搭建项目基础框架并实现前后端交互界面,完成项目目录结构组织、依赖安装、准备前端静态页面、Flask后端服务初始化等具体任务。该任务是整个综合项目的基础环节,为后续智能模块的开发提供完整的运行环境和交互基础。7.1.2必备知识服务化改造的工程意义能力交付方式升级:从个人工具演变为公共服务;并发处理能力突破:支持海量请求并发处理;系统架构质变:从临时进程演进为持续运行的守护服务,从内存级临时数据升级为持久化存储,从无状态单次调用扩展为带会话管理的连续交互。Flask路由请求处理机制路由定义机制使用@app.route()装饰器,支持静态路由和动态路由;请求匹配流程按照路由注册顺序进行URL模式匹配;请求对象封装为request全局对象,包含方法、参数、表单、JSON、文件等;响应返回方式支持字符串、jsonify()、send_from_directory()、render_template()等多种类型。7.1.3搭建项目基础框架01创建项目目录启动PyCharm,将项目保存到d:\langchain\project7下。将项目5中的.env文件和model.py文件拷贝到project7目录,建立data/目录存储程序运行数据、static/目录存储前端静态页面文件、utils/目录包含四个核心功能模块、app.py作为Flask后端服务文件、requirements.txt记录项目依赖。02安装依赖优势requirements.txt管理依赖的核心价值:确保环境一致性,锁定精确版本号消除兼容性问题;提升部署效率,通过pipinstall-rrequirements.txt快速重建环境;便于维护管理,集中呈现所有第三方依赖,支持版本追溯和自动化构建。03配置依赖版本核心依赖包括:flask==3.1.2、flask-cors==6.0.2、langchain==1.2.9、langchain-community==0.4.1、langchain-openai==1.1.7、python-dotenv==1.2.1。通过终端执行pipinstall-rrequirements.txt命令完成安装,确保开发、测试、生产环境完全一致。7.1.4启动Flask后端服务器准备前端静态页面前端通过HTML搭建页面结构,CSS美化视觉样式,JavaScript实现与后端API的异步交互。3个前端页面文件(index.html、style.css、script.js)从教材资源下载并拷贝到static目录。编写启动服务代码导入依赖模块、创建Flask应用实例、配置静态首页路由@app.route('/')返回index.html、配置静态资源路由@app.route('/<<path:filename>')返回CSS/JS/图片等资源文件。增加API接口定义四个POST接口:/api/upload文件上传接口、/api/ask智能问答接口、/api/plan学习计划接口、/api/timer计时器工具接口,均使用pass占位待后续实现。启动测试服务通过app.run(host='',port=5000,debug=True)启动开发服务器。本地访问地址:5000,远程访问地址05:5000,可查看首页、智能问答、学习计划、学习工具四个页面。03任务7-2设计开发智能模块任务7-2设计开发智能模块任务背景在构建了Web服务框架后,技术主管要求王亮将LangChain的RAG检索增强生成、对话记忆管理、智能体与工具系统等关键技术落地为可交付的功能模块,将分散的技术点整合为具有实际业务价值的完整功能。核心模块具体包括:实现文档的上传和切分、开发基于关键词匹配的知识问答能力、配置会话记忆的持久化存储机制、生成个性化学习计划、封装定时器工具并集成到智能体,体现从学习到应用的转化能力。学习目标知识目标理解Web服务层与业务逻辑层的关系;掌握前后端与业务逻辑三层数据传递机制,明确各层职责边界和数据流转规则。技能目标能够开发基于RAG的智能问答模块,实现上下文感知的精准回答;能够实现基于JSON文件的会话持久化存储;能够开发个性化学习计划生成模块;能够构建智能体工具系统,实现定时器功能。素养目标通过RAG系统的完整构建,培养数据驱动、检索先行的智能问答系统设计思维;在完整智能模块的开发实践中,塑造问题分解、逐步迭代的工程攻关能力。7.2.1任务描述任务描述在构建了Web服务框架后,技术主管要求王亮将LangChain的RAG检索增强生成、对话记忆管理、智能体与工具系统等关键技术落地为可交付的功能模块,具体包括:实现文档的上传和切分、开发基于关键词匹配的知识问答能力、配置会话记忆的持久化存储机制、生成个性化学习计划、封装定时器工具并集成到智能体。该任务要求将分散的技术点整合为具有实际业务价值的完整功能模块,体现从学习到应用的转化能力。7.2.2必备知识Web服务层与业务逻辑层的关系Web服务层面向外部请求,核心职责是接收请求、转发参数、返回响应,app.py中所有路由函数属于此层;业务逻辑层面向内部能力,核心职责是封装算法、实现功能、维护状态,utils/目录下所有模块属于此层。分层本质是将易变部分与稳定部分分离,提升代码复用率和研发效率。三层数据传递机制前端到Web服务层:JavaScript将用户操作封装为HTTP请求;Web服务层到业务逻辑层:从request对象提取参数,完成类型转换与校验;业务逻辑层到Web服务层:返回Python对象;Web服务层到前端:封装为HTTP响应,JavaScript解析JSON并动态更新DOM。7.2.3上传处理文档功能实现流程分为五阶段:界面呈现、前端触发、后端接收、业务处理、前端反馈。用户选择.txt文件,script.js封装为FormData发送POST请求,后端进行三层校验后保存文件,业务层切分文档,前端显示处理结果。前端交互层index.html提供文件上传按钮、选择控件及状态展示容器;script.js执行文件校验、数据封装、异步请求发送,根据后端响应动态更新uploadResult容器内容。Web服务层upload_document函数进行文件存在性、文件名空值、格式三层校验,通过后保存至data/uploads/目录,读取内容调用rag_system.add_document(),返回JSON格式处理统计信息。业务逻辑层与测试rag.py中add_document()使用RecursiveCharacterTextSplitter(chunk_size=500,chunk_overlap=50)切分文本,封装为Document对象存入内存列表。测试upload.txt文档,返回已添加文档,新增1个片段,总计1个片段。

7.2.4实现智能问答与持久化记忆功能实现流程分为六阶段:用户输入、历史记录获取、业务检索、模型调用、记忆存储与响应返回、前端渲染。用户输入问题后,系统获取最近10条历史记录,RAG模块关键词检索文档片段,调用大模型生成回答,持久化存储对话,前端动态渲染问答结果。RAG智能问答机制rag.py中ask()方法提取问题关键词(长度>2),遍历文档片段进行匹配,取前3个相关片段拼接为上下文,构造提示词调用self.llm.invoke(prompt)生成简洁回答。文档库为空时返回请先上传学习文档提示。持久化记忆模块memory.py中ConversationMemory类通过内存缓存和文件持久化结合实现对话保存。包含load_memory()从JSON恢复历史、save_memory()写入文件、add_message()实时保存、get_history()查询记录、clear_memory()清空历史等方法,支持跨会话上下文记忆。7.2.5开发学习计划功能实现流程分为五阶段:用户输入主题和天数、后端接收校验、业务生成计划、异常处理、响应渲染。用户点击生成计划按钮,前端发送POST请求,后端调用planner.generate_plan(),模型按固定格式返回结构化学习计划。前端交互层index.html提供主题输入框、天数选择控件(默认7天,范围1-30)、生成按钮及planResult展示容器;script.js执行数据获取、异步请求发送,使用<pre>标签保留计划文本换行格式。Web服务层create_plan()函数解析topic和days参数,主题非空校验,调用planner.generate_plan(topic,days),将生成的计划文本封装为JSON响应返回前端,实现学习主题到结构化计划的转换。业务逻辑层与测试planner.py中StudyPlanner类构造结构化提示词,要求每天一个主题、包含学习和练习、适合初学者、输出格式为第X天:[主题]-[学习内容]-[练习任务]。测试输入python基础,7天,系统按预定格式成功返回学习计划。7.2.6开发智能计时器系统架构与交互流程用户输入定时指令如定一个25分钟倒计时,前端显示指令并发送POST请求,后端调用cess_request(),LangChain智能体识别意图自动调用start_timer工具,前端根据响应启动倒计时界面,实时更新MM:SS格式显示,计时结束显示完成状态。智能体工具实现agent.py中TimerToolAgent类维护timer_start、timer_duration、is_running三个状态变量,create_agent()创建智能体并注册start_timer工具,process_request()调用self.agent.invoke()处理指令,从消息列表提取AI回复。测试输入定30分钟,系统成功启动定时器并显示读秒倒计时。04项目小结项目小结任务7-1成果搭建前后端分离的项目基础框架,采用Flask构建后端服务,HTML/CSS/JavaScript实现前端界面,通过HTTP请求完成前后端数据交互,实现从本地脚本到Web服务化改造的工程实践。任务7-2成果整合RAG检索增强生成、对话记忆管理和多工具调用等核心技术,实现文档处理、上下文感知问答、个性化学习计划生成和智能计时器等四大核心功能,完成LangChain技术的综合应用。能力培养价值读者深入理解LangChain框架在实际应用开发中的综合运用方法,掌握Web服务化改造的工程实践,培养模块化设计和分层架构的系统工程思维,具备构建可交付智能应用的综合能力。05项目练习与思考项目练习与思考练习概述本项目提供完整的练习与思考环节,涵盖选择题、填空题和简答题三种题型,全面覆盖项目7的核心知识点和关键技能。通过完成这些练习,读者可以检验自己对LangChainWeb服务化改造、Flask框架路由机制、RAG检索增强生成、文档切分策略、对话记忆持久化、智能体工具调用等关键技术的理解程度,同时培养分析问题和解决问题的综合能力。选择题(1)题目内容将LangChain应用从本地脚本改造为Web服务的主要意义在于()。选项A:提高代码运行速度;选项B:降低开发难度;选项C:减少代码编写量;选项D:突破单用户限制,实现服务化交付。答案解析正确答案为D。本题考察对Web服务化改造核心工程意义的理解,重点在于认识到从本地脚本到Web服务的转变不仅是技术形式的改变,更是能力交付方式和系统架构的质变,能够实现多用户并发访问和公共服务化交付,突破单用户限制是核心价值所在。选择题(2)(3)01题目二在前后端分离架构中,前端与后端进行数据交互时常用的HTTP请求方式是()。选项A:TCP连接;选项B:WebSocket;选项C:FetchAPI;选项D:数据库直连。正确答案为C。02题目三关于文档切分时设置片段重叠(chunk_overlap)的作用,下列说法正确的是()。选项A:减少存储空间;选项B:提高上传速度;选项C:保持上下文连贯性,避免关键信息断裂;选项D:增加片段多样性。正确答案为C。03考察要点题目二考察前后端数据交互的技术实现方式,FetchAPI是现代浏览器标准的异步请求接口。题目三考察文档切分策略的核心设计目标,chunk_overlap通过保留相邻片段重叠内容,确保关键信息不会在分割边界处断裂。选择题(4)(5)01题目四在RAG智能问答系统中,从用户问题中提取关键词后进行文档检索的主要目的是()。正确答案为B:筛选出与问题相关的文档内容。02题目五对话记忆模块将对话历史持久化存储到JSON文件的主要目的是()。正确答案为A:实现跨会话的上下文记忆。03RAG检索原理关键词检索是RAG系统的核心环节,通过筛选相关文档片段,将无关内容过滤,避免传递给模型导致幻觉回答,确保生成答案基于准确的知识来源。04记忆持久化价值JSON文件持久化使对话历史跨越单次会话生命周期,用户关闭浏览器后重新访问仍能恢复历史记录,实现真正的连续对话体验,是智能助手人性化的关键设计。填空题(1)(2)(3)题目内容(1)在Flask项目目录结构中,____目录通常用于存放前端静态页面文件。答案:static。(2)Flask框架通过____机制将URL路径与处理函数建立映射关系。答案:路由。(3)RAG系统中,将长文档切分为适当大小的文本片段,这一过程称为____。答案:文档分割。考察要点本题考察项目目录结构规范、Flask核心机制名称以及RAG技术流程中的专业术语。static目录是Flask约定存放CSS/JS/HTML的标准位置;路由机制是Flask框架的核心设计,通过装饰器实现URL到函数的映射;文档分割是RAG系统构建知识库的基础步骤,直接影响后续检索质量和问答效果。填空题(4)(5)题目四用户通过自然语言指令控制定时器,体现了____技术在人机交互中的应用。答案:智能体。该技术使系统能够理解用户意图并自动调用相应工具函数,实现自然语言到系统操作的智能转换。题目五学习计划生成模块根据用户输入的主题和天数,生成结构化的每日学习安排,这种动态适配的学习路径规划称为____。答案:个性化学习计划生成。该功能体现AI技术在教育领域的个性化应用价值。核心概念智能体(Agent)是LangChain框架的核心组件,具备理解指令、决策规划、工具调用的综合能力。个性化学习计划生成体现动态适配特征,根据用户输入参数实时调整输出内容,满足不同学习者的差异化需求。简答题(1)能力交付方式升级本地脚本模式下LangChain能力仅限开发者本机使用,每次运行需手动执行命令行,无法对外提供服务。Web服务化改造将AI能力封装为标准HTTP接口,使智能应用从个人工具演变为公共服务,显著提升能力的可触达性。并发处理能力突破本地脚本顺序执行,同一时刻仅能服务单一用户。Web架构基于多线程/异步机制,支持海量请求并发处理,使LangChain应用具备承载多用户同时访问的工业级能力,满足真实生产环境的核心诉求。系统架构质变Web服务化改造不仅是接口形式的转变,更是系统架构的全面升级:从单次运行的临时进程,演进为持续运行的守护服务;从内存级临时数据,升级为持久化存储;从无状态单次调用,扩展为带会话管理的连续交互。简答题(2)Web服务层职责核心职责是接收请求、转发参数、返回响应。面向外部请求,关注如何与浏览器、客户端进行通信,负责理解HTTP协议、解析路由、提取用户输入、处理跨域问题,将清洗后的参数传递给业务逻辑层。业务逻辑层职责核心职责是封装算法、实现功能、维护状态。面向内部能力,关注做什么和怎么做,负责文档如何切分、检索如何执行、记忆如何存储、计划如何生成、工具如何调用,只关心能力如何构建。分层本质价值将易变的部分与稳定的部分分离。Web框架可能更换、API风格可能调整、前端技术可能迭代,这些变化被隔离在Web服务层;检索算法可能升级、模型版本可能更新、记忆策略可能优化,这些变化被限定在业务逻辑层。可复用性优势当业务逻辑从Web框架中剥离后,便获得脱离HTTP环境独立运行的能力。开发者可在命令行中直接调用业务模块验证功能,无需启动Web服务;其他项目需要类似能力时,可直接复用utils/目录下的业务逻辑文件,无需重复开发。项目7综合项目:设计开发个人智能学习助手-小结项目7系统介绍了智能学习助手平台的完整构建过程与功能实现路径。任务7-1中搭建了前后端分离的项目基础框架,采用Flask构建后端服务,HTML/CSS/JavaScript实现前端界面,通过HTTP请求完成前后端数据交互。任务7-2中整合了RAG检索增强生成、对话记忆管理和多工具调用等核心技术,实现文档处理、上下文感知问答、个性化学习计划生成和智能计时器等四大核心功能。感谢您的观看THANK

YOU

FOR

WATCHING汇报人:时间:2026/05/01项目8部署和发布智能体汇报人:时间:2026/05/01目录CONTENTS01项目8部署和发布智能体02任务8-1部署智能体到Linux服务器03任务8-2容器化部署智能体04任务8-3部署使用OpenClaw智能体05项目小结01项目8部署和发布智能体项目8部署和发布智能体项目背景与目标本项目基于项目7开发的个人智能学习助手,将其部署到真实的Linux服务器环境,实现从本地开发到生产部署的完整工程化实践,构建可稳定运行的智能化学习服务平台。核心技术整合系统整合Linux服务器配置、Python生产环境搭建、systemd服务管理、防火墙配置、Docker容器化部署等关键技术,深入掌握Web应用从开发到部署的全流程工程实践能力。02任务8-1部署智能体到Linux服务器学习目标知识目标了解开发环境与生产环境的本质区别,掌握生产环境常用操作系统的特点与选型依据,理解服务器部署的核心概念。技能目标能够使用Xshell工具登录远程服务器,在Linux系统上配置Python运行环境,将应用部署为系统服务实现后台运行。素养目标通过规范化部署流程养成工程化运维习惯,通过完整实践培养环境解耦的系统工程思维,提升专业运维能力。8.1.1任务描述部署任务要求技术主管要求将个人智能学习助手部署到公司Linux服务器,实现7×24小时稳定运行,提供生产级别服务能力。具体完成服务器环境配置、项目文件上传、Python依赖安装、应用后台运行配置以及防火墙端口开放等全流程实践任务。8.1.2必备知识运行模式不同开发环境以调试模式运行,支持热重载,错误信息详细显示;生产环境关闭调试模式,错误信息仅记录在日志中,防止敏感信息泄露。访问范围不同开发环境监听或localhost仅供本地访问;生产环境监听并开放防火墙端口,支持外部用户访问。可用性要求不同开发环境可随时手动重启调试;生产环境要求7×24小时持续运行,服务器重启或程序崩溃必须自动恢复。数据安全要求不同开发环境使用临时测试数据;生产环境数据必须持久化保存并定期备份,API密钥等敏感信息通过环境变量配置。8.1.3登录服务器并上传项目使用Xshell登录服务器通过VMware运行Linux服务器,使用Xshell新建会话,输入主机地址28,以root用户和密码abc@123.com登录openEuler服务器。配置Xshell工具调整配色方案为ANSIColorsonWhite,设置字体大小为16号,优化终端显示效果,提升远程操作的可读性和舒适度。上传解压缩项目修改script.js中API_BASE为/api,压缩项目为project.zip,使用rz命令上传,unzip解压缩,ls-a查看完整目录结构。8.1.4部署并测试智能应用安装依赖与运行项目检查Python3.11.6版本,使用pip3install-rrequirements.txt安装依赖,通过nohuppython3project7/app.py&命令实现后台持久运行。防火墙配置与访问测试使用firewall-cmd--permanent--add-port=5000/tcp永久放行端口,reload重启防火墙,浏览器访问28:5000测试上传文档和智能问答功能。03任务8-2容器化部署智能体学习目标01知识目标掌握Docker容器技术的三要素,了解Dockerfile的基础语法结构,理解容器化部署的核心原理与优势。02技能目标能够熟练运维Docker镜像和容器,使用Dockerfile制作项目镜像,完成容器化部署的全流程操作。03素养目标通过运维Docker镜像和容器培养学习能力与独立思考精神,通过制作项目镜像培养刻苦钻研并解决问题的品质。8.2.1任务描述容器化部署任务技术主管介绍更现代化的容器化部署方式,容器技术将应用及其依赖环境打包成标准化镜像,实现一次构建、随处运行。本任务学习使用Docker容器引擎,通过编写Dockerfile将智能学习助手打包成镜像,基于镜像运行容器并测试项目。8.2.2必备知识Docker三要素镜像Image是容器的只读模板,包含应用及其依赖;容器Container是镜像的实例,拥有独立的文件系统、网络和进程空间;仓库Repository用于存储和管理镜像,包括公共和私有仓库。Dockerfile基础语法FROM定义基础镜像,RUN执行构建命令,COPY复制本地文件,WORKDIR设置工作目录,CMD设置默认启动命令,ENTRYPOINT指定必须执行的命令,EXPOSE声

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论