❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
原文链接:https://mp.weixin.qq.com/s/Xz111tPIAANjKdyTaZe6VA
🚀 快速阅读
- 功能:支持指令遵循、工具使用、记忆能力、函数调用、代码解释器和多代理框架。
- 技术:基于大语言模型(LLM)、工具集成、智能代理架构和 RAG 算法。
- 应用:适用于客户服务、个人助理、教育学习、内容创作、技术支持和数据分析等场景。
正文(附运行示例)
Qwen-Agent 是什么
Qwen-Agent 是基于通义千问模型(Qwen)的开源 Agent 开发框架,支持开发者利用 Qwen 模型的指令遵循、工具使用、规划和记忆能力构建智能代理应用。Qwen-Agent 支持函数调用、代码解释器和 RAG(检索增强生成)等功能,能够处理从 8K 到 100 万 tokens 的文档,超越传统长上下文模型。
Qwen-Agent 提供了大模型和工具的原子组件,以及智能体的高级抽象组件,使开发者能够快速开发和部署复杂的 AI 代理应用。无论是构建客户服务机器人、个人助理,还是进行内容创作和数据分析,Qwen-Agent 都能提供强大的支持。
Qwen-Agent 的主要功能
- 指令遵循:Qwen-Agent 能理解和执行用户的指令。
- 工具使用:支持智能体调用外部工具完成任务。
- 记忆能力:Qwen-Agent 具备记忆上下文的能力,能在对话中保持状态。
- 函数调用:支持智能体调用预定义的函数或 API。
- 代码解释器:内置代码解释器,支持智能体执行和解释代码。
- 多代理框架:支持构建和管理多个智能代理。
Qwen-Agent 的技术原理
- 大语言模型(LLM):基于大型预训练语言模型,如 Qwen,处理复杂的语言任务。
- 工具集成:集成各种工具,包括 API、脚本或外部程序,智能体。
- 智能代理架构:用智能代理架构,智能体能继承自
Agent
类,实现具体的应用逻辑。 - RAG 算法:用 RAG 算法处理长文档,将文档分割成小块,保留最相关的部分,提升上下文处理能力。
如何运行 Qwen-Agent
安装
pip install -U "qwen-agent[gui,rag,code_interpreter,python_executor]"
# 或者使用 `pip install -U qwen-agent` 安装最小依赖。
开发自定义 Agent
以下示例展示了如何创建一个能够读取 PDF 文件并使用工具的 Agent:
import pprint
import urllib.parse
import json5
from qwen_agent.agents import Assistant
from qwen_agent.tools.base import BaseTool, register_tool
# 步骤 1(可选):添加自定义工具 `my_image_gen`
@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)
# 步骤 2:配置使用的 LLM
llm_cfg = {
'model': 'qwen-max',
'model_server': 'dashscope',
'generate_cfg': {
'top_p': 0.8
}
}
# 步骤 3:创建 Agent
system_instruction = '''你是一个有用的助手。
在收到用户的请求后,你应该:
- 首先绘制图像并获取图像 URL,
- 然后运行代码 `request.get(image_url)` 下载图像,
- 最后从给定的文档中选择一个图像操作来处理图像。
请使用 `plt.show()` 显示图像。'''
tools = ['my_image_gen', 'code_interpreter']
files = ['./examples/resource/doc.pdf']
bot = Assistant(llm=llm_cfg,
system_message=system_instruction,
function_list=tools,
files=files)
# 步骤 4:运行 Agent
messages = []
while True:
query = input('用户查询: ')
messages.append({
'role': 'user', 'content': query})
response = []
for response in bot.run(messages=messages):
print('助手响应:')
pprint.pprint(response, indent=2)
messages.extend(response)
资源
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦