1. 活动介绍

看到最后有福利,点击立即报名
在这里插入图片描述
在这里插入图片描述

2. 部署方法

2.1 环境准备

LazyLLM 基于 Python 开发,我们需要保证系统中已经安装好了 Python(3.10-3.12), Pip 和 Git。如果没有,请准备好
本次实验手册基于 python 3.10 操作, python 3.13 可能不兼容
IDE 可以选用:Trae 、Pycharm、VSCode 等等等

2.2 配置虚拟环境

在 IDE 中新建一个本次项目的文件夹例如agentLazyLLM,并在终端中打开
在这里插入图片描述
在终端中创建一个虚拟环境名为lazyllm-venv并激活:

python3 -m venv lazyllm-venv
source lazyllm-venv/bin/activate

如果正常运行,你可以在命令行的开头看到 (lazyllm-venv) 的提示。接下来我们的操作都在这个虚拟环境中进行。
在这里插入图片描述

2.3 从 pip 安装 LazyLLM

在控制台中输入pip3 install lazyllm -i https://pypi.tuna.tsinghua.edu.cn/simple ,等待安装结束
在这里插入图片描述

2.4 配置模型

LazyLLM 支持线上调用和本地调用
本文演示方法为线上调用,需要提供相应平台的API Key。LazyLLM框架提供了自动调用平台API Key的功能,使用前需要将API Key设置为环境变量,并在调用时指定平台和模型名称,即可实现线上模型的调用。
LazyLLM目前支持以下平台:

平台 需要设置的环境变量 官方获取链接
日日新 LAZYLLM_SENSENOVA_API_KEY, LAZYLLM_SENSENOVA_SECRET_KEY 日日新API密钥获取
OpenAI LAZYLLM_OPENAI_API_KEY OpenAI API密钥获取
智谱 LAZYLLM_GLM_API_KEY 智谱API密钥获取
Kimi LAZYLLM_KIMI_API_KEY Kimi API密钥获取
通义千问 LAZYLLM_QWEN_API_KEY 通义千问API密钥获取
豆包 LAZYLLM_DOUBAO_API_KEY 豆包API密钥获取

下面演示如何在商汤大装置(SenseCore)平台申请API Key:
官网链接:https://console.sensecore.cn/home

  1. 进入sensecore官网注册页面并进行账号注册:
  2. 进入万象模型开发平台
    在这里插入图片描述
  3. 点击立即体验 -服务管理 开通需要的模型
    在这里插入图片描述
    在这里插入图片描述
  4. 在 API 管理中保存好 你的 API Key
    在这里插入图片描述
  5. 设置环境变量
    (1) macos/linux 配置方法
# macos/linux
vi ~/.zshrc
按 e 进入编辑模式,再按 i 进入插入状态

在这里插入图片描述

用方向键移动光标,插入下面的语句,YOUR-API-KEY替换为上面保存的 API-KEY
export LAZYLLM_SENSENOVA_API_KEY='YOUR-API-KEY'

插入后 按键盘的Esc ,再输入:wq!,保存并退出
再输入 source ~/.zshrc 使命令永久生效

(2)windows 配置方法

   - 右键点击"此电脑""我的电脑",选择"属性"
   - 点击"高级系统设置"
   - 在"系统属性"窗口中点击"环境变量"
   - 在"系统变量""用户变量"区域点击"新建"
   - 输入变量名(如`LAZYLLM_SENSENOVA_API_KEY`)和变量值(您的"API密钥")
   - 点击"确定"保存
   - 点击"确定"关闭所有窗口
   - 重新启动命令提示符或PowerShell以使更改生效

2.5 恭喜你 一切准备就绪

尝试在刚刚创建的的虚拟环境下运行以下代码:

import lazyllm

chat = lazyllm.OnlineChatModule(source='sensenova',model='DeepSeek-V3-1')
while True:
    query = input("query(enter 'quit' to exit): ")
    if query == "quit":
        break
    res = chat.forward(query)
    print(f"answer: {res}")                      

运行后就可以进行模型的调用,结果如下
在这里插入图片描述

2.6 创建一个天气查询工具

您可以使用外部API查询天气(例如高德天气(基础 API 文档-开发指南-Web服务 API | 高德地图API)),也可以使用LazyLLM提供的天气工具。
这里我们为了方便演示,构造了一个dict来模拟天气示例,使用3个城市对应晴天、阴天和雨天

# 天气数据字典
WEATHER_DATA = {
    "北京": {
        "province": "北京市",
        "city": "北京",
        "publish_time": "2024-01-15 08:00:00",
        "weather": "晴天",
        "wind": "西北风 3-4级",
        "sunriseSunset": "日出: 07:30, 日落: 17:20",
        "temperature": "5°C / -3°C"
    },
    "上海": {
        "province": "上海市",
        "city": "上海",
        "publish_time": "2024-01-15 08:00:00",
        "weather": "阴天",
        "wind": "东南风 2-3级",
        "sunriseSunset": "日出: 07:00, 日落: 17:30",
        "temperature": "12°C / 8°C"
    },
    "广州": {
        "province": "广东省",
        "city": "广州",
        "publish_time": "2024-01-15 08:00:00",
        "weather": "雨天",
        "wind": "南风 4-5级",
        "sunriseSunset": "日出: 07:10, 日落: 18:00",
        "temperature": "18°C / 15°C"
    }
}

用 Agent 组装实现

import json
from lazyllm import ReactAgent, fc_register, LOG, OnlineChatModule, WebModule

# 天气数据字典
WEATHER_DATA = {
    "北京": {
        "province": "北京市",
        "city": "北京",
        "publish_time": "2024-01-15 08:00:00",
        "weather": "晴天",
        "wind": "西北风 3-4级",
        "sunriseSunset": "日出: 07:30, 日落: 17:20",
        "temperature": "5°C / -3°C"
    },
    "上海": {
        "province": "上海市",
        "city": "上海",
        "publish_time": "2024-01-15 08:00:00",
        "weather": "阴天",
        "wind": "东南风 2-3级",
        "sunriseSunset": "日出: 07:00, 日落: 17:30",
        "temperature": "12°C / 8°C"
    },
    "广州": {
        "province": "广东省",
        "city": "广州",
        "publish_time": "2024-01-15 08:00:00",
        "weather": "雨天",
        "wind": "南风 4-5级",
        "sunriseSunset": "日出: 07:10, 日落: 18:00",
        "temperature": "18°C / 15°C"
    }
}

@fc_register("tool")
def get_weather(city: str):
    """
    天气查询。
    Args:
        city: 城市名(中文),当前仅支持北京、上海、广州
    Returns: 当地当天的天气信息
    """
    try:
        # 从字典中查找天气数据
        if city in WEATHER_DATA:
            res = WEATHER_DATA[city]
            return json.dumps(res_str, ensure_ascii=False)
        else:
            return f"抱歉,暂时无法查询到 {city} 的天气信息。目前支持的城市有:北京、上海、广州"
    except Exception as e:
        message = f"[Tool - get_weather] error occur, city: {city}, error: {str(e)[:512]}"
        LOG.error(message)
        return message

prompt = """
【角色】
你是一个出行建议助手,能够根据用户给定的城市名称主动查询天气信息,并给出出行建议。

【要求】
1. 根据用户的输入,调用工具查询当地天气情况
2. 城市名称为中文
3. 出行建议可以推荐一些活动
4. 目前支持的城市:北京(晴天)、上海(阴天)、广州(雨天)
"""

agent = ReactAgent(
    llm=OnlineChatModule(source='sensenova',stream=False,model='DeepSeek-V3-1'),
    tools=['get_weather'],
    prompt=prompt,
    stream=False
)

# 前端页面
w = WebModule(agent, port=8846, title="ReactAgent")
w.start().wait()

效果展示
在这里插入图片描述
至此已经完成

3. 领取奖励

看到这里的同学相信已经完成了 LazyLLM 的基本体验
福利时间到!
领取快速部署奖 点击提交使用 LazyLLM 的使用截图,10 月 25 日前,前 500 名完成的同学获得 B 站大会员月卡一张(2 周内小助手通过邮箱发放)

领取应用实践奖
点击 提交基于 LazyLLM 的创意作品(例如:日志分析、运维助手、科研助手 etc.),前 35 名可以获得200 元京东 E 卡。
应用实践奖 提交需要包含以下两项内容:

1.开源代码仓库
要求:作品必须是基于 LazyLLM 框架的原创应用或项目案例。
平台:将项目完整代码上传至任一公开的代码托管平台(如 GitHub、GitCode 等)。
2.CSDN 博客文章
要求:在 CSDN 博客平台发布一篇图文并茂的技术文章,详细介绍您的作品。
内容应包含:
项目简介:清晰说明项目的背景、目标和核心功能。
实现步骤:分步讲解应用的构建过程和技术细节。
核心代码:展示关键代码片段并附上必要解释。
效果展示:通过截图、GIF 或视频等形式直观展示项目成果。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐