【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,并下载显示。

【Python】基于 qwen_agent 构建 AI 绘画智能助手_第1张图片

【Python】基于 qwen_agent 构建 AI 绘画智能助手_第2张图片

结语

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

你可能感兴趣的:(Python,人工智能,人工智能,python,开发语言)