当前位置: 首页 > news >正文

【Python】基于 qwen_agent 构建 AI 绘画智能助手

基于 qwen_agent 构建 AI 绘画智能助手

前言

近年来,大模型技术迅猛发展,AI 绘画也成为了热门应用之一。本文将介绍如何使用 qwen_agent 框架,结合自定义工具 my_image_gen,构建一个支持 AI 绘画和代码执行的智能助手。

代码参考来源:
https://github.com/QwenLM/Qwen-Agent/blob/main/README_CN.md

1. 安装依赖

首先,确保你的 Python 环境中安装了 qwen_agent 以及相关依赖。

pip install -U "qwen-agent[rag,code_interpreter,python_executor,gui]"

2. 编写自定义 AI 绘画工具

我们需要创建一个 my_image_gen 工具,它可以接收文本描述,并返回 AI 生成的图像 URL。

from qwen_agent.tools.base import BaseTool, register_tool
import json5
import urllib.parse

@register_tool('my_image_gen')
class MyImageGen(BaseTool):
    description = 'AI 绘画(图像生成)服务,输入文本描述,返回基于文本信息绘制的图像 URL。'
    parameters = [{
        'name': 'prompt',
        'type': 'string',
        'description': '期望的图像内容的详细描述',
        'required': True
    }]

    def call(self, params: str, **kwargs) -> str:
        prompt = json5.loads(params)['prompt']
        prompt = urllib.parse.quote(prompt)
        return json5.dumps(
            {'image_url': f'https://image.pollinations.ai/prompt/{prompt}'},
            ensure_ascii=False)

3. 配置 LLM

接下来,我们配置 qwen_agent 以使用 qwen2 作为大模型。

llm_cfg = {
    'model': 'qwen模型名称',
    'model_server': 'http://ip:8000/v1',  # base_url,也称为 api_base
    'api_key': 'EMPTY',

    'generate_cfg': {
        'top_p': 0.8
    }
}

4. 创建智能体

使用 Assistant 创建智能体,并设定系统提示,让 AI 在生成图像后执行 Python 代码下载并显示图片。

from qwen_agent.agents import Assistant

system_instruction = '''你是一个乐于助人的AI助手。
在收到用户的请求后,你应该:
- 首先绘制一幅图像,得到图像的URL,
- 然后运行代码 `request.get` 以下载该图像的URL,
用 `plt.show()` 展示图像。
你总是用中文回复用户。'''

tools = ['my_image_gen', 'code_interpreter']  # `code_interpreter` 是框架自带的工具,用于执行代码。
bot = Assistant(
    llm=llm_cfg,
    system_message=system_instruction,
    function_list=tools
)

5. 运行智能助手

方法 1:命令行聊天机器人

messages = []  # 这里储存聊天历史。
while True:
    query = input('\n用户请求: ')
    messages.append({'role': 'user', 'content': query})
    response = []
    response_plain_text = ''
    print('机器人回应:')
    for response in bot.run(messages=messages):
        response_plain_text += response
        print(response, end='', flush=True)
    messages.extend(response)

方法 2:Web 版聊天机器人

from qwen_agent.gui import WebUI
WebUI(bot).run()

6. 测试效果

运行后,用户可以输入诸如“熊猫”这样的指令,智能助手会返回相应的 AI 生成图片 URL,并下载显示。

在这里插入图片描述

在这里插入图片描述

结语

通过 qwen_agent 框架,我们可以快速搭建一个具备 AI 绘画和代码执行能力的智能助手,扩展 AI 在多种应用场景中的可能性。希望本文对你有所帮助!

http://www.dtcms.com/a/99856.html

相关文章:

  • Linux 文件存储和删除原理
  • Unity编辑器功能及拓展(2) —Gizmos编辑器绘制功能
  • Kafka消息丢失全解析!原因、预防与解决方案
  • 如何查看 SQL Server 的兼容性级别
  • 基于ruoyi快速开发平台搭建----超市仓库管理(修改记录1)
  • 《C++11:通过thread类编写C++多线程程序》
  • 编辑器场景视窗扩展
  • SpringBean模块(一)定义如何创建生命周期
  • 《C++Linux编程进阶:从0实现muduo 》-第6讲.C++死锁问题如何分析调试-原子操作,互斥量,条件变量的封装
  • 稻壳模板下载器(Windows):免费获取WPS稻壳模板的利器
  • Java中优先级队列的实现
  • 蓝桥杯备考------>双指针(滑动窗口)
  • 华为OD机试2025A卷 - 最大值(Java Python JS C++ C )
  • PyTorch 2.6.0没有对应的torch-sparse版本,不要下载pytorch最新版本,否则用不了图神经网络torch_geometric
  • vmware_unbantu刷新IP
  • EtherNet/IP转ProfiNet协议转换网关驱动西门子PLC与流量计的毫秒级压力同步控制
  • 洛谷题单1-P5706 【深基2.例8】再分肥宅水-python-流程图重构
  • MySQL单表查询、多表查询
  • linux实现rsync+sersync实时数据备份
  • Redis-快速入门
  • GPT Actions
  • 【硬件测试】基于FPGA的16QAM+帧同步系统开发与硬件片内测试,包含高斯信道,误码统计,可设置SNR
  • 【Find My全球市场观察:中国制造如何改写游戏规则?】
  • 游戏引擎学习第191天
  • 【Python】工作笔记:返回当月第一天、昨天;上月第一天、当天;全年节假日
  • 淘宝客户端动态化页面搭建
  • Linux课程学习一
  • 【区块链安全 | 第五篇】DeFi概念详解
  • Kubernetes比同规格虚拟机性能相差多少?
  • 《Express:Node.js 里的 “闪电侠”》