Files
agentUniverse/docs/guidebook/zh/开始使用/9.进阶技巧-多模态智能体.md
2025-03-11 15:30:32 +08:00

6.2 KiB
Raw Permalink Blame History

文档说明

在本例中我们将进一步向大家介绍如何构建并运行多模态智能体,根据传入的图片或音频进行智能问答。

样例工程地址:multimodal_app

多模态智能体

多模态智能体: multimodal_agent.py multimodal_agent.yaml

aU构建多模态demo智能体配置prompt/多模态模型/智能体记忆。

多模态模型

千问多模态模型: qwen_multimodal_llm.yaml

我们通过aU内置的QWenOpenAIStyleLLM构建千问多模态智能体使用qwen-vl做视觉理解使用qwen-audio做音频理解使用qwen-omni做全模态理解。

使用说明

视觉理解

在agent运行时传入image_urls参数图片的url地址例如

from agentuniverse.agent.agent import Agent
from agentuniverse.agent.agent_manager import AgentManager

instance: Agent = AgentManager().get_instance_obj('multimodal_agent')
output_object = instance.run(input="图中描绘的是什么景象?", image_urls=[
    'https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg'])

aU框架在agentuniverse.prompt.chat_prompt.ChatPrompt.generate_image_prompt方法中会读取agent传入的image_urls参数并组装成标准的多模态prompt格式。

image_urls参数支持两种类型

  1. image_urls传入标准的http or https urlaU会直接拼装多模态prompt格式。
  2. image_urls传入本地文件路径aU会读取图片文件并转换为base64编码再拼装多模态prompt格式。

音频理解

在agent运行时传入audio_url参数音频的url地址例如

from agentuniverse.agent.agent import Agent
from agentuniverse.agent.agent_manager import AgentManager

instance: Agent = AgentManager().get_instance_obj('multimodal_agent')
output_object = instance.run(input='帮我完成音频里的任务内容?',
                             audio_url='https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20240916/kvkadk/%E6%8E%A8%E8%8D%90%E4%B9%A6.wav')

aU框架在agentuniverse.prompt.chat_prompt.ChatPrompt.generate_audio_prompt方法中会读取agent传入的audio_url参数并组装成标准的多模态prompt格式。

audio_url参数支持单一类型传入标准的http or https urlaU会直接拼装多模态prompt格式。

运行测试

运行 multimodal_agent.py

视觉理解

通过传入agent input用户问题和image_urls图片的url地址进行多轮智能问答。

运行测试:

from agentuniverse.base.agentuniverse import AgentUniverse
from agentuniverse.agent.agent import Agent
from agentuniverse.agent.agent_manager import AgentManager

AgentUniverse().start(config_path='../../config/config.toml', core_mode=True)


def chat_with_images():
    instance: Agent = AgentManager().get_instance_obj('multimodal_agent')
    output_object = instance.run(input="图中描绘的是什么景象?", image_urls=[
        'https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241022/emyrja/dog_and_girl.jpeg'])
    res_info = f"\n图中描绘的景象是:\n"
    res_info += output_object.get_data('output')
    print(res_info)

执行结果为:

图中描绘的景象是:
图中描绘的是一幅海滩上的温馨景象。具体细节如下:

- 一个人和一只狗坐在沙滩上,背景是广阔的海洋和明亮的天空。
- 人穿着格子衬衫和短裤,面带微笑,与狗互动。
- 狗戴着彩色项圈,前爪抬起,似乎在与人握手或玩耍。
- 沙滩上有明显的脚印和波浪痕迹,显示出海边的自然环境。
- 海洋在远处延伸,海浪轻轻拍打着岸边。
- 天空明亮,阳光照射下来,给整个场景增添了一种温暖的氛围。

音频理解

通过传入agent input用户问题和audio_url音频的url地址进行多轮智能问答。

音频内容为: 我想读一些文学类的书,有什么推荐吗?

运行测试:

from agentuniverse.base.agentuniverse import AgentUniverse
from agentuniverse.agent.agent import Agent
from agentuniverse.agent.agent_manager import AgentManager

AgentUniverse().start(config_path='../../config/config.toml', core_mode=True)


def chat_with_audio():
    instance: Agent = AgentManager().get_instance_obj('multimodal_agent')
    output_object = instance.run(input='帮我完成音频里的任务内容?',
                                 audio_url='https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20240916/kvkadk/%E6%8E%A8%E8%8D%90%E4%B9%A6.wav')
    res_info = f"\nagent运行结果是:\n"
    res_info += output_object.get_data('output')
    print(res_info)

执行结果为:

agent运行结果是:
根据您的需求,以下是几本文学类书籍推荐:

1. 《百年孤独》 - 加西亚·马尔克斯
   - 这是一部魔幻现实主义的经典之作,讲述了布恩迪亚家族七代人的传奇故事,融合了神话传说、历史事件和个人命运,展现了拉丁美洲一个世纪的兴衰史。

2. 《平凡的世界》 - 路遥
   - 描绘了中国70年代中期到80年代中期的社会变迁以孙少平和孙少安两兄弟为中心展现了普通人在大时代历史进程中所走过的艰难曲折的道路。

3. 《红楼梦》 - 曹雪芹
   - 讲述了贾宝玉、林黛玉等人的爱情悲剧,揭示了封建社会的种种弊病,是中国古代小说的巅峰之作。

4. 《活着》 - 余华
   - 通过主人公福贵的一生,反映了中国近现代以来的历史沧桑巨变,表达了生命的意义在于经历苦难后依然坚强地活下去的主题。

5. 《骆驼祥子》 - 老舍
   - 叙述了一个勤劳善良的车夫祥子三起三落的人生经历,深刻揭露了旧中国城市底层人民生活的艰辛和社会黑暗。