智能体构建与应用开发(Python+LangChain)(微课版)课件 项目5、6 构建Agent智能体与工具系统、实现RAG检索增强生成_第1页
智能体构建与应用开发(Python+LangChain)(微课版)课件 项目5、6 构建Agent智能体与工具系统、实现RAG检索增强生成_第2页
智能体构建与应用开发(Python+LangChain)(微课版)课件 项目5、6 构建Agent智能体与工具系统、实现RAG检索增强生成_第3页
智能体构建与应用开发(Python+LangChain)(微课版)课件 项目5、6 构建Agent智能体与工具系统、实现RAG检索增强生成_第4页
智能体构建与应用开发(Python+LangChain)(微课版)课件 项目5、6 构建Agent智能体与工具系统、实现RAG检索增强生成_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

项目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等五个

温馨提示

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

评论

0/150

提交评论