0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

英特尔物联网 来源:英特尔物联网 2024-07-26 09:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:杨亦诚

英特尔 AI 软件工程师

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

5babc0c4-4a6a-11ef-b8af-92fbcf53809c.png

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

Qwen-Agent 是一个 AI 智能体的开发框架。开发者可基于本框架开发 Agent 应用,充分利用基于通义千问模型(Qwen)的指令遵循、工具使用、规划、记忆能力。同时该框架也提供了浏览器助手、代码解释器、自定义助手等示例应用。近期 OpenVINO 工具套件也作为 Qwen-Agent 的大语言模型推理后端,被集成到 llm 组件中,接下来就让我们一起看下如何在 Intel 硬件平台上通过 OpenVINO 和 Qwen2 构建一个纯本地运行的 AI 智能体。

1转化压缩 Qwen2 模型

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

pip install optimum[openvino]
optimum-cli export openvino --model Qwen/Qwen2-7B-Instruct--task text-generation-with-past --trust-remote-code --weight-format int4 {model_path}

2构建工具

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)

3创建基于 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")

4完整示例和实现效果

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

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

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

5bc2510e-4a6a-11ef-b8af-92fbcf53809c.png

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

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

5总结

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英特尔
    +关注

    关注

    61

    文章

    10277

    浏览量

    179416
  • AI
    AI
    +关注

    关注

    90

    文章

    38274

    浏览量

    297330
  • 模型
    +关注

    关注

    1

    文章

    3656

    浏览量

    51753
  • OpenVINO
    +关注

    关注

    0

    文章

    117

    浏览量

    721

原文标题:基于Qwen-Agent与OpenVINO™ 构建本地AI智能体丨开发者实战

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Intel OpenVINO™ Day0 实现阿里通义 Qwen3 快速部署

    本文将以 Qwen3-8B 为例,介绍如何利用 OpenVINO 的 Python API 在英特尔平台(GPU, NPU)Qwen3 系列模型。
    的头像 发表于 05-11 11:36 1412次阅读
    Intel <b class='flag-5'>OpenVINO</b>™ Day0 实现阿里通义 <b class='flag-5'>Qwen</b>3 快速部署

    名单公布!【书籍评测活动NO.55】AI Agent应用与项目实战

    日程预测性地调整了今天的工作安排。 在近日的Agent OpenDay上,智谱AI展示了在AI Agent智能
    发表于 01-13 11:04

    AI Agent 应用与项目实战》第1-2章阅读心得——理解Agent框架与Coze平台的应用

    Agent各司其职又紧密配合,大大提升了分析效率和质量。这种分布式智能的理念启发我们思考:在构建AI系统时,不应该追求单一模型的全能性,而是要设计合理的分工机制,让每个
    发表于 02-19 16:35

    AI Agent应用与项目实战》阅读体验--跟着迪哥学Agent

    感谢电子发烧友的这次活动,让我有幸抽中了《AI Agent应用与项目实战》(以下简称《Agent》)这本书的赠送。 收到书本之后我就迫不及待地学习书本中的知识。如果说依靠各种平台上的文章了解关于
    发表于 03-02 12:28

    AI Agent 应用与项目实战》----- 学习如何开发视频应用

    再次感谢发烧友提供的阅读体验活动。本期跟随《AI Agent 应用与项目实战》这本书学习如何构建开发一个视频应用。AI Agent是一种
    发表于 03-05 19:52

    AI Agent 应用与项目实战》阅读心得3——RAG架构与部署本地知识库

    、响应速度等多个因素。RAG技术已经成为构建新一代AI应用的重要基础,掌握这一技术对于开发高质量的智能系统至关重要。本书毕竟重点还是在于对Agent技术的入门引导,RAG技术栈讲解并不
    发表于 03-07 19:49

    名单公布!【书籍评测活动NO.59】零基础开发AI Agent——手把手教你用扣子做智能

    的新技术实践指南,助你把握科技大势。 ▊《零基础开发AI Agent——手把手教你用扣子做智能》 叶涛管锴张心雨 著 不懂编程也可以开发Ag
    发表于 03-10 16:29

    《零基础开发AI Agent——手把手教你用扣子做智能

    《零基础开发AI Agent——手把手教你用扣子做智能》是一本为普通人量身打造的AI开发指南。它不仅深入浅出地讲解了
    发表于 03-18 12:03

    请求赠阅《零基础开发AI Agent——手把手教你用扣子做智能

    博主好!致敬叶涛 管锴 张心雨三位AI具身智能-智能方面的专家、导师! 《零基础开发AI Agent
    发表于 04-10 12:16

    【「零基础开发AI Agent」阅读体验】+初品Agent

    期待中的《零基础开发AI Agent——手把手教你用扣子做智能》终于寄到了,该书由叶涛、 管锴、张心雨完成,并由电子工业出版社出版发行。 全书分为三个部分,即入门篇、工具篇及实践篇。
    发表于 04-22 11:51

    【「零基础开发AI Agent」阅读体验】+ 入门篇学习

    4.智能具有自主规划和行动的能力 5.大模型分为3个层次:基础层(心脏)、垂直/行业层(动脉)、应用层(毛细血管) 6.AI Agent具备更显著的去中心化特点,能够充分满足每个人
    发表于 05-02 09:26

    【「零基础开发AI Agent」阅读体验】+Agent的工作原理及特点

    时长,因而Agent提出问题:“你早上在家有哪些准备?所需时间有多久?” 若回答:“洗漱和用餐约30分钟”,则Agent给出在何时响闹钟的决策。 这就是“智能”被赋予自主规划和行动的
    发表于 05-11 10:24

    【「零基础开发AI Agent」阅读体验】+读《零基础开发AI Agent》掌握扣子平台开发智能方法

    收到发烧友网站寄来的《零基础开发AI Agent》这本书已经有好些天了,这段时间有幸拜读了一下全书,掌握了一个开发智能的方法。 该书充分从零基础入手,先阐述了
    发表于 05-14 19:51

    利用OpenVINO搭建本地智能流水线

    智能 AI Agent 作为大模型的衍生应用,具有对任务的理解、规划与行动能力。它可以通过将一个复杂的用户请求拆分成不同的子任务,并依次调用外部工具来解决这些任务,并将其中每个任务步
    的头像 发表于 10-25 16:01 982次阅读

    中软国际入选中国信通院AI Agent智能产业图谱1.0

    近日,中国信息通信研究院(以下简称“中国信通院”)《AI Agent智能产业图谱1.0》正式发布。该图谱是国内系统性梳理智能
    的头像 发表于 07-14 14:55 1255次阅读