基于 Qwen-Agent 与 OpenVINO™ 构建本地 AI 智能体

简介: Qwen2 是阿里巴巴集团 Qwen 团队研发的大语言模型和大型多模态模型系列。Qwen2 具备自然语言理解、文本生成、视觉理解、音频理解、工具使用、角色扮演、作为 AI Agent 进行互动等多种能力。

Qwen2 是阿里巴巴集团 Qwen 团队研发的大语言模型和大型多模态模型系列。Qwen2 具备自然语言理解、文本生成、视觉理解、音频理解、工具使用、角色扮演、作为 AI Agent 进行互动等多种能力。

image.png

图:智能体中工具使用执行逻辑

Qwen-Agent 是一个 AI 智能体的开发框架。开发者可基于本框架开发 Agent 应用,充分利用基于通义千问模型(Qwen)的指令遵循、工具使用、规划、记忆能力。同时该框架也提供了浏览器助手、代码解释器、自定义助手等示例应用。

近期 OpenVINO™ 工具套件也作为 Qwen-Agent 的大语言模型推理后端,被集成到 llm 组件中,接下来就让我们一起看下如何在 Intel 硬件平台上通过 OpenVINO™ 和 Qwen2 构建一个纯本地运行的 AI 智能体。

转化压缩 Qwen2 模型

第一步我们需要安装 Optimum-intel 组件,以此来导出并量化原始的 Qwen2 模型,使用方法可以参考以下示例。

pip install optimum[openvino]
pip install modelscope
modelscope download --model=qwen/Qwen2-7B-Instruct --local_dir ./Qwen2-7B-Instruct
optimum-cli export openvino --model ./Qwen2-7B-Instruct --task text-generation-with-past --trust-remote-code --weight-format int4 ./Qwen2-7B-Instruct-int4

构建工具

Qwen-Agent 提供了注册工具的机制,例如,下面我们注册一个自己的图片生成工具:

  • 指定工具的name、description、和parameters,注意 @register_tool('my_image_gen') 中的 'my_image_gen' 会被自动添加为这个类的 .name 属性,将作为工具的唯一标识。
  • 实现 call(...) 函数

在这个例子中,我们定义了一个调用云端 API 工具,用来根据输入请求,生成图片。

@register_tool("image_generation")
class ImageGeneration(BaseTool):
    description = "AI painting (image generation) service, input text description, and return the image URL drawn based on text information."
    parameters = [{"name": "prompt", "type": "string", "description": "Detailed description of the desired image content, in English", "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)

创建基于 OpenVINO™的 AI 智能体

Qwen-Agent 中的 LLM 统一使用 get_chat_model(cfg: Optional[Dict] = None) -> BaseChatModel 接口来调用,参数传入 LLM 的配置文件,目前 OpenVINO™ 的 LLM  配置文件格式如下:

llm_cfg = {
    "ov_model_dir": model_path,
    "model_type": "openvino",
    "device": device.value,
    "ov_config": ov_config,
    "generate_cfg": {"top_p": 0.8},
}

其中各类参数的要求为:

  • ov_model_dir: 在第一步中得到的 OpenVINO™ 模型路径
  • model_type: 对应某个具体的llm类,这里需要指定为 “openvino”
  • device: Intel设备名称,目前支持”cpu”及“gpu”
  • ov_config: OpenVINO infer request中的可配置项
  • generate_cfg:模型生成时候的参数

Qwen-Agent 框架为我们提供了自带的智能体实现(如 class Assistant ),开发者可以直接将定义好的 OpenVINO™ LLM 配置文件传入该对象中,快速构建智能体应用,为此 Qwen-Agent 也提供了丰富的[代码示例]

( https://github.com/QwenLM/Qwen-Agent/tree/main/examples)

bot = Assistant(llm=llm_cfg, function_list=tools, name="OpenVINO Agent")

完整示例和实现效果

同时基于以上流程,我们也在OpenVINO Notebook 仓库中准备了完整示例供大家测试:

https://github.com/openvinotoolkit/openvino_notebooks/tree/latest/notebooks/llm-agent-functioncall

该示例会理解用户意图,并调用多种预先定义好的工具来完成任务,包括, wikipedia 查询工具,天气查询工具和绘图工具。以下截图便是该 notebook 示例在 Intel AIPC 上所呈现的本地部署效果:

image.png

图:Qwen-Agent与 OpenVINOTM智能体示例

可以看到在这个例子中,智能体首先会将用户的请求按任务进行拆解,并分别调用不同的工具获得对应的输出结果,并将这些输出结果合并后,作为最终答案反馈给用户。

总结

AI智能体作为通用人工智能的核心载体,可以模仿人类的思维逻辑,将复杂任务进行拆解,并借助外部工具解决任务。通过利用 OpenVINO™ 和 Qwen-Agent 这样的工具,我们可以非常快捷地在本地构建一个 AI 智能体应用,在保护用户数据隐私的同时,更快速地响应任务需求,简单任务调用本地工具处理,复杂任务调用云端资源处理。

参考资料:

相关文章
|
16天前
|
人工智能 开发框架 安全
Smolagents:三行代码就能开发 AI 智能体,Hugging Face 开源轻量级 Agent 构建库
Smolagents 是 Hugging Face 推出的轻量级开源库,旨在简化智能代理的构建过程,支持多种大语言模型集成和代码执行代理功能。
242 69
Smolagents:三行代码就能开发 AI 智能体,Hugging Face 开源轻量级 Agent 构建库
|
4天前
|
数据采集 人工智能 安全
1000多个智能体组成,AI社会模拟器MATRIX-Gen助力大模型自我进化
在人工智能领域,大型语言模型(LLMs)的发展迅速,但如何提升其指令遵循能力仍是一大挑战。论文提出MATRIX-Gen,一个基于多智能体模拟的AI社会模拟器。MATRIX-Gen通过模拟智能体交互生成多样化的现实场景,不依赖预定义模板,从而合成高质量指令数据。它包括MATRIX模拟器和MATRIX-Gen指令生成器,能生成监督微调、偏好微调及特定领域的数据集。实验表明,使用MATRIX-Gen合成的数据集微调后的模型在多个基准测试中表现出色,显著优于现有方法。然而,该方法也面临智能体和场景规模对数据质量的影响等挑战。
49 33
|
16天前
|
人工智能 API
MMedAgent:专为医疗领域设计的多模态 AI 智能体,支持医学影像处理、报告生成等多种医疗任务
MMedAgent 是专为医疗领域设计的多模态AI智能体,支持多种医疗任务,包括医学影像处理、报告生成等,性能优于现有开源方法。
86 19
MMedAgent:专为医疗领域设计的多模态 AI 智能体,支持医学影像处理、报告生成等多种医疗任务
|
7天前
|
人工智能 API UED
AI智能体再进化,工作流怎么玩?阿里云百炼上手教程
本次分享由讲师林粒粒呀介绍如何快速制作AI智能工具,特别是利用阿里云百炼平台创建工作流。通过简单的拖拽操作,小白用户也能轻松上手,实现从PPT主题到大纲的自动生成,并能一次性生成多个版本。借助API和Python脚本,还可以将Markdown格式的大纲转换为本地PPT文件。整个流程展示了AI智能体在实际应用中的高效性和实用性,帮助用户大幅提升工作效率。
79 31
|
21天前
|
人工智能 开发框架 算法
Qwen-Agent:阿里通义开源 AI Agent 应用开发框架,支持构建多智能体,具备自动记忆上下文等能力
Qwen-Agent 是阿里通义开源的一个基于 Qwen 模型的 Agent 应用开发框架,支持指令遵循、工具使用、规划和记忆能力,适用于构建复杂的智能代理应用。
311 10
Qwen-Agent:阿里通义开源 AI Agent 应用开发框架,支持构建多智能体,具备自动记忆上下文等能力
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
Gemini 2.0:谷歌推出的原生多模态输入输出 + Agent 为核心的 AI 模型
谷歌最新推出的Gemini 2.0是一款原生多模态输入输出的AI模型,以Agent技术为核心,支持多种数据类型的输入与输出,具备强大的性能和多语言音频输出能力。本文将详细介绍Gemini 2.0的主要功能、技术原理及其在多个领域的应用场景。
254 20
Gemini 2.0:谷歌推出的原生多模态输入输出 + Agent 为核心的 AI 模型
|
25天前
|
存储 人工智能 人机交互
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
PC Agent 是上海交通大学与 GAIR 实验室联合推出的智能 AI 系统,能够模拟人类认知过程,自动化执行复杂的数字任务,如组织研究材料、起草报告等,展现了卓越的数据效率和实际应用潜力。
138 1
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
|
7天前
|
人工智能
与 AI 智能体来一场“春节互动”
快来报名创建AI智能体,进行实时视频互动,讨论春节习俗如吃饺子、放鞭炮等。访问活动页面,按步骤部署并上传截图,即可获得限量蛇年抱枕,先到先得!活动时间:即日起至2025年2月14日16:00。
332 2
|
1月前
|
人工智能 API 语音技术
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
TEN Agent 是一个开源的实时多模态 AI 代理框架,集成了 OpenAI Realtime API 和 RTC 技术,支持语音、文本和图像的多模态交互,具备实时通信、模块化设计和多语言支持等功能,适用于智能客服、实时语音助手等多种场景。
181 15
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
|
14天前
|
人工智能 测试技术 决策智能
玩转智能体魔方!清华推出AgentSquare模块化搜索框架,开启AI智能体高速进化时代
清华大学研究团队提出模块化LLM智能体搜索(MoLAS)框架AgentSquare,将LLM智能体设计抽象为规划、推理、工具使用和记忆四大模块,实现模块间的轻松组合与替换。通过模块进化和重组机制,AgentSquare显著提升了智能体的适应性和灵活性,并在多个基准测试中表现出色,平均性能提高17.2%。此外,该框架还具备可解释性,有助于深入理解智能体架构对任务性能的影响。论文地址:https://arxiv.org/abs/2410.06153
60 10

热门文章

最新文章