OpenMMLab 书生·浦语大模型实战 笔记/作业6 agent智能体

Lagent & AgentLego 智能体应用搭建_哔哩哔哩_bilibili

目录

概念

智能体组成

智能体范式

AutoGPT

ReWoo

ReAct

Lagent & AgentLego

Lagent

AgentLego

实践

Lagent Web Demo

 AgentLego

直接作为算法库使用 AgentLego

作为智能体能调用的工具给LLM使用


概念

为什么要用智能体?智能体能通过工具调用增强LLM的能力,吴恩达就很看好智能体

智能体的三个特点:感知环境,采取动作影响环境,运用推理能力理解信息 解决问题 推断 执行动作

智能体组成

大脑:控制器,记忆 思考 决策

感知:感知环境的各种信息

动作:执行工具

智能体范式

流行的agent 如,autoGPT, ReWoo, ReAct

AutoGPT

用户输入任务,将任务发送给对应的agent,执行后将任务和结果存入记忆,发送给另一个agent用于创建新的子任务,如此循环直到任务完成

ReWoo

拆分用户输入分成子任务,各种工具之间的依赖形成DAG图,按计划执行直到任务完成

ReAct

接收用户输入后,选择工具并执行,然后思考是否需要继续选择下一个工具,直到任务完成

Lagent & AgentLego

Lagent

一个轻量级agent框架,高效构建LLM智能体,支持多种智能体范式(autogpu,react)和工具(搜索,python解释器)

AgentLego

多模态工具箱,简单组装自己的智能体,支持多个框架(Lagent, LangChain),提供大量前沿算法

如果LLM决定需要调用工具,进入Lagent逻辑,调用工具,有的多模态工具可以由AgentLego工具箱提供,最后得到工具的输出

实践

Lagent Web Demo

先启动模型:

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

 再启动 streamlit web demo,在仓库代码的这个路径下 lagent/examples

streamlit run internlm2_agent_web_demo.py --server.address 0.0.0.0 --server.port 7860

 

 AgentLego

AgentLego 算法库既可以直接使用,也可以作为智能体工具使用

直接作为算法库使用 AgentLego

直接使用时 agentlego就相当于一个算法库 或者 工具箱

下载 demo 文件: wget http://download.openmmlab.com/agentlego/road.jpg

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

写个脚本 direct_use.py 使用模板检测算法检测图片

import re

import cv2
from agentlego.apis import load_tool

# load tool
tool = load_tool('ObjectDetection', device='cuda')

# apply tool
visualization = tool('/root/agent/road.jpg')
print(visualization)

# visualize
image = cv2.imread('/root/agent/road.jpg')

preds = visualization.split('\n')
pattern = r'(\w+) \((\d+), (\d+), (\d+), (\d+)\), score (\d+)'

for pred in preds:
    name, x1, y1, x2, y2, score = re.match(pattern, pred).groups()
    x1, y1, x2, y2, score = int(x1), int(y1), int(x2), int(y2), int(score)
    cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 1)
    cv2.putText(image, f'{name} {score}', (x1, y1), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 1)

cv2.imwrite('/root/agent/road_detection_direct.jpg', image)

还要先下载模型:

 模型下载好就有输出了:

作为智能体能调用的工具给LLM使用

还是上面一样的LLM模型:

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

先在这里改下模型名字 agentlego/webui/modules/agents/lagent_agent.py 

def llm_internlm2_lmdeploy(cfg):
    url = cfg['url'].strip()
    llm = LMDeployClient(
-         model_name='internlm2-chat-20b',
+         model_name='internlm2-chat-7b',
        url=url,
        meta_template=INTERNLM2_META,
        top_p=0.8,
        top_k=100,
        temperature=cfg.get('temperature', 0.7),
        repetition_penalty=1.0,
        stop_words=['<|im_end|>'])
    return llm

在这个目录下:agentlego/webui,执行 python one_click.py

进入web页面先设置一下 Agent:

再设置一下 tools:

设置完 就可以chat 了

上传图片后,说检测图片中的物体:

agentlego 感觉不错,赞 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值