近年来,大模型技术迅猛发展,AI 绘画也成为了热门应用之一。本文将介绍如何使用 qwen_agent
框架,结合自定义工具 my_image_gen
,构建一个支持 AI 绘画和代码执行的智能助手。
代码参考来源:
https://github.com/QwenLM/Qwen-Agent/blob/main/README_CN.md
首先,确保你的 Python 环境中安装了 qwen_agent
以及相关依赖。
pip install -U "qwen-agent[rag,code_interpreter,python_executor,gui]"
我们需要创建一个 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)
接下来,我们配置 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
}
}
使用 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
)
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)
from qwen_agent.gui import WebUI
WebUI(bot).run()
运行后,用户可以输入诸如“熊猫”这样的指令,智能助手会返回相应的 AI 生成图片 URL,并下载显示。
通过 qwen_agent
框架,我们可以快速搭建一个具备 AI 绘画和代码执行能力的智能助手,扩展 AI 在多种应用场景中的可能性。希望本文对你有所帮助!