使用CrewAIGroq和Replicate AI创建多模态智能体
介绍
在这里,我们将构建一个多模态AI代理,能够执行多种任务,包括文本转语音、从文本生成图像、描述图像和网络搜索。我们将利用CrewAI框架来协调一组专业代理,每个代理都有自己的工具和能力。为了实现快速推理,我们将在Groq硬件加速器上运行这些代理,使用Replicate AI的模型。
系统架构
系统将由以下组件组成:
- CrewAI:用于定义代理、他们的角色、目标、工具和协作工作流程。
- Replicate AI:提供预训练的多模态语言模型,支持代理根据文本描述进行图像生成和基于图像的问题回答。
- Groq:快速的AI推理,采用LPU™ AI推理技术,提供快速、经济和节能的AI。
- Tavily-Python:用于网络搜索和信息检索的开源库。
代理将被组织成一个团队,每个代理被分配特定的角色和工具集。他们将通过在需要时相互委派来协作执行多步骤任务。
代理角色和能力
- 文本转语音代理
- 角色:将输入文本转换为自然声音的语音
- 工具:Replicate AI 文本转语音模型
- 能力:以文本作为输入,输出音频文件
- 模型:cjwbw/seamless_communication
- 图像生成代理
- 角色:根据文本描述生成图像
- 工具:Replicate AI 图像生成模型
- 能力:以文本提示作为输入,输出生成的图像
- 模型:xlabs-ai/flux-dev-controlnet
- 图像转文本描述代理
- 角色:用自然语言描述图像内容
- 工具:Replicate AI 图像描述模型
- 能力:以图像作为输入,输出文本描述
- 模型:yorickvp/llava-13b
- 网络搜索代理
- 角色:从网络中检索相关信息以回答查询
- 工具:Tavily-Python 网络搜索库
- 能力:以查询作为输入,输出相关信息的摘要
工作流实施步骤
- 用户向代理提供指令。
- 根据用户的指示,路由代理决定进一步的行动方案。
- 根据路由代理的响应,检索代理通过调用相应的工具执行最终任务。
- 如果路由代理的响应是‘text2image’,则检索代理将调用图像生成工具。
- 如果路由代理的响应是’image2text’,则检索代理将调用描述图像的工具。
- 如果路由代理的响应是’text2speech’,则检索代理将调用将文本转换为音频的工具。
- 如果路由代理的响应是’web_search’,则检索代理将调用网页搜索工具生成响应。
代码实现
安装所需依赖
1 | !pip install -qU langchain langchain_community tavily-python langchain-groq groq replicate |
设置 API 密钥
1 | import os |
创建网页搜索工具辅助函数
1 | from langchain_community.tools.tavily_search import TavilySearchResults |
创建辅助函数以创建文本到语音工具
1 | ## 文本到语音工具 |
辅助函数从文本描述创建图像
1 | # 创建文本到图像 |
辅助函数处理提供的图像信息
1 | ## 文本到图像 |
设置路由工具
1 | from crewai_tools import tool |
设置检索工具
1 |
|
设置 LLM
1 | from langchain_groq import ChatGroq |
设置路由代理
1 | from crewai import Agent |
设置检索代理
1 | ## 检索代理 |
设置路由任务
1 | from crewai import Task |
设置检索任务
1 | retriever_task = Task( |
设置团队
1 | from crewai import Crew,Process |
图像生成任务
启动团队
1 | inputs ={"question":"根据以下文本生成图像:一位美丽的印度模特女性的特写组合照片,完美的眼睛,明亮的工作室灯光,散景,50mm 照片,霓虹粉色遮阳帽","image_url":" "} |
1 | result.raw |
显示生成的图像
1 | import requests |

启动团队根据用户指令描述图像
1 | inputs ={"question":"提供详细描述。","image_url":"https://images.unsplash.com/photo-1470770903676-69b98201ea1c?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1740&q=80.jpg"} |
1 | result.raw |
显示代理提供描述的图像
1 | import requests |

启动语音生成团队
1 | inputs_speech ={"question":"为以下文本生成演讲:图像中有一只小白狗在泥土小路上奔跑。狗在奔跑时开心地微笑,小路两旁开满了美丽的蓝色花朵。","image_url":" "} |
1 | result.raw |
播放音频
1 | from IPython.display import Audio |
启动团队以展示来自网络的结果
1 | inputs = {"question":"印度的旅游目的地。","image_url":" "} |
1 | result.raw |
结论
通过结合CrewAI、Replicate AI、Groq、Replicate.ai和Tavily-Python的力量,我们构建了一个能够执行涉及多种模式的复杂任务的多模态AI代理。CrewAI框架的模块化和协作特性使得扩展和定制变得简单。该项目展示了多代理系统解决复杂AI问题的潜力。
参考文献
- 标题: 使用CrewAIGroq和Replicate AI创建多模态智能体
- 作者: Barry
- 创建于 : 2024-08-26 00:57:10
- 更新于 : 2024-08-31 06:59:45
- 链接: https://wx.role.fun/2024/08/26/b999a10ac96645ee87e1862ff9e4a3e5/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。