【书生·浦语大模型实战营第二期】Lagent AgentLego 智能体应用搭建——学习笔记6

文章目录

  • 概述
  • Lagent: 轻量级智能体框架
    • Lagent Web Demo
    • 用Lagent自定义工具
  • AgentLego:组装智能体“乐高”
    • 直接使用AgentLego
    • 作为智能体工具使用AgentLego
    • 用AgentLego自定义工具
  • 参考资料

概述

Lagent是什么
一个轻量级开源智能体框架,提供了一些典型工具以增强大语言模型的能力,目前已支持包括 AutoGPT、ReAct 等在内的多个经典智能体范式

AgentLego是什么
一个提供了多种开源工具 API 的多模态工具包,提供了如下表展示的工具
image.png

Lagent和AgentLego的关系
Lagent 是一个智能体框架,而 AgentLego 是作为工具包,在相关智能体的功能支持模块发挥作用
image.png

Lagent: 轻量级智能体框架

Lagent Web Demo

  1. 使用LMDeploy部署:
lmdeploy serve api_server /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b --server-name 127.0.0.1 --model-name internlm2-chat-7b --cache-max-entry-count 0.1

image.png

  1. 使用Lagent Web Demo:
streamlit run internlm2_agent_web_demo.py --server.address 127.0.0.1 --server.port 7860

image.png

  1. lagent启动成功!

image.png

试验结果展示
image.png

用Lagent自定义工具

使用Lagent自定义工具的步骤

  1. 继承BaseAction类
  2. 实现简单工具的run方法,实现工具包内每个子工具的功能
  3. 简单工具的 run 方法可选被 tool_api 装饰;工具包内每个子工具的功能都需要被 tool_api 装饰

创建天气查询的工具文件->获取API KEY->使用LMDeploy部署服务->启动web-demo
image.png

AgentLego:组装智能体“乐高”

以目标检测工具为例

直接使用AgentLego

安装目标检测工具(基于 mmdet (MMDetection) 算法库中的 RTMDet-Large 模型)的依赖

pip install openmim==0.3.9
mim install mmdet==3.3.0

image.png

作为智能体工具使用AgentLego

使用LMDeploy进行api_server部署
api_server启动

lmdeploy serve api_server /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b --server-name 127.0.0.1 --model-name internlm2-chat-7b --cache-max-entry-count 0.1

image.png

启动AgentLego WebUI
使用AgentLego WebUI
配置Agent
image.png

配置Tools
image.png

结果展示
image.png

用AgentLego自定义工具

基于AgentLego自定义工具步骤

  1. 继承 BaseTool 类
  2. 修改 default_desc 属性(工具功能描述)
  3. 如有需要,重载 setup 方法(重型模块延迟加载)
  4. 重载 apply 方法(工具功能实现)

工具文件创建-> 注册新工具->使用AgentLego进行体验
“请帮我生成一幅描述山东威海的油画”
image.png
虽然效果不是那么好,但也是能看的,u1s1,这真的好像元宵喜乐会的网图啊!

参考资料

  1. Lagent & AgentLego 智能体应用搭建

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/590193.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计python在线交友系统django+vue

Flask 是一个轻量级的 Web 框架,使用 Python 语言编写,较其他同类型框架更为灵活、轻便且容易上手,小型团队在短时间内就可以完成功能丰富的中小型网站或 Web 服务的实现。 本在线交友系统管理员功能有个人中心,用户管理&#xff…

面试经典150题——Z 字形变换

面试经典150题 day22 题目来源我的题解方法一 使用StringBuilder数组模拟矩阵方法二 找规律直接构造 题目来源 力扣每日一题;题序:6 我的题解 方法一 使用StringBuilder数组模拟矩阵 如果numRows是1,则直接返回s。 否则,创建nu…

【数据结构】算法的效率(时间复杂度和空间复杂度)

目录 一.算法的效率 二.时间复杂度 1.概念 2.大O的渐进表示法 3.常见时间复杂度计算举例 三.空间复杂度 四.常见复杂度对比 五. 复杂度的oj练习 1.消失的数字 2.轮转数字: 一.算法的效率 算法在编写成可执行程序后,运行时需要耗费时间资源和空…

区块链 | IPFS:Merkle DAG(进阶版)

🦊原文:Merkle DAGs: Structuring Data for the Distributed Web 🦊写在前面:本文属于搬运博客,自己留存学习。 1 Merkle DAG 当我们在计算机上表示图时,必须通过提供节点和边的具体表示来编码我们的数据…

黑马点评项目个人笔记+项目优化调整

博客须知 本篇博客内容来源与黑马点评项目实战篇-16.用户签到-实现签到功能_哔哩哔哩_bilibili,作者对视频内容进行了整合,由于记笔记时图片使用的是本地路径,所以导致博客的图片无法正常显示,如果有图片需求可以下载上方的pdf须…

给thinkpadP15V加装固态硬盘的TIPS

O(∩_∩)O首先要先恭喜小编,终于舍得给咱们的小伙伴加固态硬盘了 1、确定固态硬盘的类型: M.2接口NVMe协议, Pcie通道( Peripheral company interconnect express)(3.0第三代1gb每秒,4.0第四代2 gb每秒)x4…

PDF中伪代码、原理示意图等导出为矢量图

需求:将 LaTeX 中生成的伪代码 PDF 转换成 svg 或 emf 格式的矢量图,然后插入 word 或 ppt 中。 1 伪代码PDF导出为矢量图 1.1 通过 Adobe Illustrator 处理将 先新建一个空白的PDF,然后文件-->置入导入PDF; 2.选中这个图片…

k8s部署maven项目

failed to verify certificate: x509: certificate signed by unknown authority 今天在执行kubectl get nodes的时候报的证书验证问题,看了一圈首次搭建k8s的都是高频出现的问题。 couldn’t get current server API group list: Get “https://kubernetes.docker…

SwiftUI 5.0(iOS 17.0,macOS 14.0+)新 Inspector 辅助视图之趣味漫谈

概览 在 SwiftUI 开发中,苹果为我们提供了多种辅助视图用来显示额外信息从而极大丰富了应用的表现力,比如:Alert、Sheet、ContextMenu 等等。 从 SwiftUI 5.0(iOS 17+)开始, 又增加了一种全新的辅助视图:Inspector。 在本篇博文中,您将学到如下内容: 概览1. Inspe…

[笔试训练](十一)

目录 031:游游的水果大礼包 032:买卖股票的最好时机(二) 033:倒置字符串 031:游游的水果大礼包 游游的水果大礼包 (nowcoder.com) 题目: 题解: 枚举:依次枚举1号礼…

连接一个 IP 不存在的主机时,会发生什么?(面试)

一、IP 不存在时 如果 IP 在局域网内,会发送 N 次 ARP 请求获得目的主机的 MAC 地址,同时不能发出 TCP 握手消息。 如果 IP 在局域网外,会将消息通过路由器发出,但因为最终找不到目的地,触发 TCP 重试流程。 二、IP…

React 第十五章 Ref

React ref 是 React 中一个用于访问组件中 DOM 元素或者类实例的方式。它允许我们直接操作 DOM,而不需要通过 state 或 props 来更新组件。 过时 API:String 类型的 Refs 在最最早期的时候,React 中 Ref 的用法非常简单,类似于 …

设计模式: 工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。 工厂模式属于创建型…

如何用 Redis 实现延迟队列?

延迟队列是一种常见的消息队列模式,用于处理需要延迟执行的任务或消息。Redis 是一种快速、开源的键值对存储数据库,具有高性能、持久性和丰富的数据结构,因此很适合用于实现延迟队列。在这篇文章中,我们将详细讨论如何使用 Redis…

数据库(MySQL)基础:多表查询(一)

一、多表关系 概述 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种:…

【STM32+HAL】SDIO+DMA模式读写SD卡

一、准备工作 有关CUBEMX的初始化配置,参见我的另一篇blog:【STM32HAL】CUBEMX初始化配置 二、所用工具 1、芯片: STM32F407ZGT6 2、IDE: MDK-Keil软件 3、库文件:STM32F4xxHAL库 三、实现功能 实现用SDIODMA读写S…

【Linux系统编程】第十二弹---编辑器gcc/g++使用

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、什么是gcc/g 2、gcc/g编辑器的安装 3、gcc/g编译的四个步骤 2.1、预处理 2.2、编译 2.3、汇编 2.4、链接 4、函数库 …

平衡有序二叉树的构建(AVL树,一步一步讲解,看完不会来砍我)

序 纸上得来终觉浅&#xff0c;觉知此事要躬行 读者只有自己一步一步的跟着做&#xff0c;才能真正学会&#xff0c;看是看不会的 平衡有序二叉树的构建 平衡二叉树 整棵树任意一个节点的左右子树高度差值的绝对值<1&#xff08;高度相等或相差1&#xff09; demo1 根…

java中的字节流和File类

目录 正文&#xff1a; 1.File类 1.1概述 1.2常用方法 2.FileInputStream 2.1概述 2.2常用方法 3.FileOutputStream 3.1概述 3.2常用方法 总结&#xff1a; 正文&#xff1a; 1.File类 1.1概述 File类是Java中用来表示文件或目录的类&#xff0c;它提供了一系列方…

【C++语言】字符串String类的深拷贝与浅拷贝

深浅拷贝定义 拷贝对象时&#xff0c;需要创建相同的字节序、类型、和资源。 经典的string类问题 // 为了和标准库区分&#xff0c;此处使用String class String { public:/*String():_str(new char[1]){*_str \0;}*///String(const char* str "\0") 错误示范//…