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

news/2024/9/24 13:13:03/

文章目录

  • 概述
  • 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_44">AgentLego:组装智能体“乐高”

目标检测工具为例

AgentLego_46">直接使用AgentLego

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

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

image.png

AgentLego_53">作为智能体工具使用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_73">用AgentLego自定义工具

基于AgentLego自定义工具步骤

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

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

参考资料

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

http://www.ppmy.cn/news/1454040.html

相关文章

88、动态规划-乘积最大子数组

思路: 首先使用递归来解,从0开始到N,每次都从index开始到N的求出最大值。然后再次递归index1到N的最大值,再求max。代码如下: // 方法一:使用递归方式找出最大乘积public static int maxProduct(int[] num…

【数据结构】最小生成树(Prim算法、Kruskal算法)解析+完整代码

5.1 最小生成树 定义 对一个带权连通无向图 G ( V , E ) G(V,E) G(V,E),生成树不同,每棵树的权(即树中所有边上的权值之和)也可能不同。 设R为G的所有生成树的集合,若T为R中边的权值之和最小的生成树,则T称…

Linux查看某一个程序的安装路径

前提 这一方法的前提条件是:必须是运行着的程序。 方法 这里以查找运行的nginx的安装目录为例。 查看nginx运行进程,查看当前进程的PID,例子中的PID就是7992。 nginps -aux|grep nginx执行ls -l /proc/进程号/exe,然后会打印…

使用docker-compose编排Lnmp(dockerfile) 完成Wordpress

目录 一、 Docker-Compose 1.1Docker-Compose介绍 1.2环境准备 1.2.1准备容器目录及相关文件 1.2.2关闭防火墙关闭防护 1.2.3下载centos:7镜像 1.3Docker-Compose 编排nginx 1.3.1切换工作目录 1.3.2编写 Dockerfile 文件 1.3.3修改nginx.conf配置文件 1.4Docker-Co…

代码随想录算法训练营Day27 | 39. 组合总和40.组合总和II 131.分割回文串

代码随想录算法训练营Day27 | 39. 组合总和40.组合总和II 131.分割回文串 LeetCode 39. 组合总和 题目链接&#xff1a;LeetCode 39. 组合总和 思路&#xff1a; 收集元素&#xff0c;起点为i&#xff0c;而不是i1 class Solution { public:vector<int> path;vector&…

ELK Stack 8 接入ElasticFlow

介绍 Netflow v5 / v9 / v10&#xff08;IPFIX&#xff09;&#xff0c;支持大部分网络厂商及VMware的分布式交换机。 NetFlow是一种数据交换方式。Netflow提供网络流量的会话级视图&#xff0c;记录下每个TCP/IP事务的信息。当汇集起来时&#xff0c;它更加易于管理和易读。…

【Mac】Mac安装软件常见问题解决办法

前言 刚开始用Mac系统的小伙伴或者在更新系统版本后运行App的朋友会经常碰到弹窗提示「xxx已损坏&#xff0c;无法打开&#xff0c;您应该将它移到废纸篓」、「打不开xxx&#xff0c;因为Apple无法检查其是否包含恶意软件」、「打不开xxx&#xff0c;因为它来自身份不明的开发…

2024年最新全球AI工具数据榜揭秘

一、AI产品数据 国内总榜 百度文心一言以1479万的访问量稳居榜首&#xff0c;而Kimi智能助手也以1218万的访问量紧随其后&#xff0c;展现出了其强大的市场吸引力。秘塔AI搜索以669万的访问量位居第三&#xff0c;其5.14的相对2月增长率更是令人瞩目。 02 AI产品数据 全球总榜…