6.2 KiB
文档说明
在本例中我们将进一步向大家介绍如何构建并运行多模态智能体,根据传入的图片或音频进行智能问答。
样例工程地址: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参数支持两种类型:
- image_urls传入标准的http or https url,aU会直接拼装多模态prompt格式。
- 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 url,aU会直接拼装多模态prompt格式。
运行测试
视觉理解
通过传入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. 《骆驼祥子》 - 老舍
- 叙述了一个勤劳善良的车夫祥子三起三落的人生经历,深刻揭露了旧中国城市底层人民生活的艰辛和社会黑暗。