当前位置: 首页 > news >正文

Python:基于LangChain的AI Agent(智能代理)应用开发实践

文章目录

  • 前言
  • 一、基本概念
  • 二、安装依赖
    • 1、安装LangChain包
    • 2、安装大模型依赖
    • 3、安装内置工具依赖
  • 三、创建工具集
    • 1、工具函数参数对象
      • 1.1、单个参数的类型
      • 1.2、多个参数的类型
    • 2、模拟天气查询工具
    • 3、检查报告读取工具
    • 4、模拟数据查询工具
  • 四、创建代理(Agent)
    • 1、创建大模型连接
    • 2、创建工具集
    • 3、创建提示词模板
    • 4、初始化代理
    • 5、执行测试代理
  • 写在最后


前言

  代理 (Agents) 是使用大语言模型(LLM)最强大和最有趣的方法之一。LLM 的兴起使得代理 (Agents) 在基于人工智能的应用中变得非常普遍。
  使用代理 (Agents) 可以让 LLM 访问工具。这些工具提供了无限的可能性。有了工具,LLM 可以搜索网络、进行数学计算、运行代码等等。
  LangChain 库提供了大量预置的工具。然而,在许多真实项目中,我们通常会发现现有工具只能满足有限的需求。这意味着我们必须修改现有工具或完全构建新的工具。

一、基本概念

  在 LangChain 中,Agent 的定义可以概括为:一个由大语言模型(LLM)驱动的自主决策系统,它通过循环的“思考-行动-观察”过程,动态地选择和使用外部工具来逐步解决用户提出的复杂问题。其核心价值在于突破了单一模型能力的限制,将 LLM 的推理能力与外部工具的强大功能(搜索、计算、代码执行等)结合起来,从而能够处理那些模型自身知识之外或需要实时数据的任务。其工作流程如下图:
在这里插入图片描述
  可见,AI Agent就是一个小程序,负责在用户、大语言模型和工具之间进行传话,对于用户可见的,仅仅是发起了一个问题或者任务和接收到了最终的响应结果,中间的执行过程全由大语言模型自主规划(如:调用哪些工具函数,函数的返回异常重试等)。
  在AI Agent的应用中主要有以下参与对象:

  • 用户 (User): 交互的发起者。
  • 代理(Agent: 系统的核心协调者。
  • 大语言模型 (LLM): 提供认知和生成能力。
  • 工具 (Tool): 执行具体功能。
  • 记忆库 (Data Store): 存储和提供对话历史上下文。

  本文中我们先假定“记忆库”的存在或者不存在,主要通过Agent、大语言模型和工具来体验一下Agent应用的工作。

二、安装依赖

1、安装LangChain包

  LangChain包的安装在文章《Python:基于LangChain的RAG(检索增强生成)应用开发实践》一文中有较详细的说明。总之运行以下脚本即可:

pip install --upgrade langchain langchain-community

2、安装大模型依赖

  文中使用的大语言模型-智谱AI,需要安装如下依赖:

pip install --upgrade httpx httpx-sse PyJWT

3、安装内置工具依赖

  在初始化工具集时我们默认加入了llm-math工具,需要安装以下依赖程序包:

pip install --upgrade numexpr

三、创建工具集

  为了测试,这里定义模拟天气查询、检查报告读取和模拟数据查询三个工具函数,分别通过不同的提问请求来测试大模型对代理工具函数的调用。

1、工具函数参数对象

  使用pydantic来固定参数类型:

  • 添加引入
from pydantic import BaseModel, Field

1.1、单个参数的类型

class QueryInput(BaseModel):query: str = Field(default="", description="查询关键词")

1.2、多个参数的类型

class

文章转载自:

http://cVmK03nz.cLhyj.cn
http://xJW7OKOK.cLhyj.cn
http://TebKnR1H.cLhyj.cn
http://FVQuKLGS.cLhyj.cn
http://gOdYI52g.cLhyj.cn
http://UMl7qsuI.cLhyj.cn
http://jqrzwWOJ.cLhyj.cn
http://UWbIVi2y.cLhyj.cn
http://bEjNSRe7.cLhyj.cn
http://u61SpplA.cLhyj.cn
http://1QeEXKyD.cLhyj.cn
http://ViP5zjgv.cLhyj.cn
http://JsE8U4Ek.cLhyj.cn
http://UpGx8W6S.cLhyj.cn
http://2ZuU1jVa.cLhyj.cn
http://niEQ5xwx.cLhyj.cn
http://qkTF6lAu.cLhyj.cn
http://c1KMU03E.cLhyj.cn
http://zDViBKxB.cLhyj.cn
http://nzJaGnZz.cLhyj.cn
http://hFcgikXR.cLhyj.cn
http://tqbfkrHM.cLhyj.cn
http://4VtZArSC.cLhyj.cn
http://oSPWd49z.cLhyj.cn
http://JCFi4LJC.cLhyj.cn
http://lxIZjlIA.cLhyj.cn
http://SIx6UWJc.cLhyj.cn
http://Cnb5bJph.cLhyj.cn
http://FKaLVR4P.cLhyj.cn
http://YnsMzXbJ.cLhyj.cn
http://www.dtcms.com/a/372301.html

相关文章:

  • Java ConcurrentHashMap 底层原理与线程安全机制深度解析
  • 基于SpringBoot+Vue的健身房管理系统的设计与实现(代码+数据库+LW)
  • 批量标准化(Batch Normalization):为什么它能让深度学习模型跑得更快、更稳?
  • 1分钟使用ssh-keygen生成RSA公私钥
  • 【从零开始java学习|第十一篇】构造一个JavaBean
  • 侠盗飞车圣安地列斯原版中文资源,适配Win10/11,不用安装!
  • Linux —— 虚拟进程地址空间
  • 负载均衡器如何自动将故障实例从服务列表中剔除
  • MySQL软件架构概述
  • 【面试】AI大模型应用原理面试题
  • postman接口功能测试
  • Java数据结构 - 顺序表模拟实现与使用
  • 【秋招笔试】2025.09.04携程秋招
  • PyPI 镜像源选择与 pipenv/poetry 加速配置(含实战与避坑)
  • 如何设计本地缓存、有哪些坑需要避免
  • 人力资源管理的思维方法学习笔记1
  • 【面试向】边缘计算基础介绍
  • digitalworld.local: TORMENT
  • MySQL数据库专用命令详细使用指南
  • Python3.12-slim版本
  • AI 生成式艺术重塑动漫角色创作:从技术逻辑到多元可能性(三)
  • 【面试向】元宇宙介绍
  • 硬件开发(4)—ARM裸机体系结构
  • Stream API三巨头:filter、map、collect
  • NAS可以干啥?好玩吗?
  • GDAL 在 Python 中的开发起步
  • RK3568编译linux内核遇到问题总结
  • React学习教程,从入门到精通, React 样式语法知识点与案例详解(13)
  • BiFormer注意力机制YOLOV8
  • 【算法】字符串专题