Lagent 使用教程

Lagent 使用教程

lagent A lightweight framework for building LLM-based agents lagent 项目地址: https://gitcode.com/gh_mirrors/la/lagent

1. 项目介绍

Lagent 是一个轻量级框架,用于构建基于大型语言模型(LLM)的代理。它受到了 PyTorch 设计哲学的启发,期望通过神经网络层的类比,使得工作流程更加清晰直观。用户只需要专注于以 Pythonic 的方式创建层并定义它们之间的消息传递。

2. 项目快速启动

首先,您需要从源代码安装 Lagent。在您的命令行中执行以下命令:

git clone https://github.com/InternLM/lagent.git
cd lagent
pip install -e .

以下是一个简单的示例,展示了如何使用 Lagent 创建一个代理,并处理用户消息:

from typing import Dict, List
from lagent.agents import Agent
from lagent.schema import AgentMessage
from lagent.llms import VllmModel, INTERNLM2_META

# 初始化模型
llm = VllmModel(
    path='Qwen/Qwen2-7B-Instruct',
    meta_template=INTERNLM2_META,
    tp=1,
    top_k=1,
    temperature=1.0,
    stop_words=['<|im_end|>'],
    max_new_tokens=1024,
)

# 设置系统提示
system_prompt = '你的回答只能从“典”、“孝”、“急”三个字中选一个。'

# 创建代理
agent = Agent(llm, system_prompt)

# 创建用户消息
user_msg = AgentMessage(sender='user', content='今天天气情况')

# 代理响应
bot_msg = agent(user_msg)

# 打印代理的响应
print(bot_msg.content)  # 输出: 急

3. 应用案例和最佳实践

Lagent 可以用于创建多代理应用,下面是一个简单的聚合器实现,它可以接收少量示例(few-shot):

from typing import List, Union
from lagent.memory import Memory
from lagent.prompts import StrParser
from lagent.agents.aggregator import DefaultAggregator

class FewshotAggregator(DefaultAggregator):
    def __init__(self, few_shot: List[dict] = None):
        self.few_shot = few_shot or []

    def aggregate(self, messages: Memory, name: str, parser: StrParser = None, system_instruction: Union[str, dict, List[dict]] = None) -> List[dict]:
        _message = []
        if system_instruction:
            _message.extend(self.aggregate_system_intruction(system_instruction))
        _message.extend(self.few_shot)
        messages = messages.get_memory()
        for message in messages:
            if message.sender == name:
                _message.append(dict(role='assistant', content=str(message.content)))
            else:
                user_message = message.content
                if len(_message) > 0 and _message[-1]['role'] == 'user':
                    _message[-1]['content'] += user_message
                else:
                    _message.append(dict(role='user', content=user_message))
        return _message

# 使用自定义聚合器
agent = Agent(
    llm,
    aggregator=FewshotAggregator([
        {"role": "user", "content": "今天天气"},
        {"role": "assistant", "content": "【晴】"}
    ])
)

# 创建用户消息
user_msg = AgentMessage(sender='user', content='昨天天气')

# 代理响应
bot_msg = agent(user_msg)

# 打印代理的响应
print(bot_msg.content)  # 输出: 【多云转晴,夜间有轻微降温】

4. 典型生态项目

Lagent 框架可以应用于各种场景,包括但不限于对话系统、智能助手、自动化任务执行等。您可以查看 Lagent 的官方仓库和社区项目,以获取更多关于如何在实际应用中使用 Lagent 的灵感。

lagent A lightweight framework for building LLM-based agents lagent 项目地址: https://gitcode.com/gh_mirrors/la/lagent

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明咏耿Helena

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值