创建CrewAI管道项目¶
欢迎使用创建新CrewAI管道项目的综合指南。本文档将指导您完成创建、自定义和运行CrewAI管道项目的步骤,确保您拥有开始所需的一切。
要了解更多关于CrewAI管道的信息,请访问CrewAI文档。
前提条件¶
在开始使用CrewAI管道之前,请确保您已通过pip安装了CrewAI:
与常规CrewAI项目一样,虚拟环境和代码IDE的相同前提条件适用。
创建新的管道项目¶
要创建新的CrewAI管道项目,您有两个选项:
- 对于基本管道模板:
- 对于包含路由器的管道示例:
这些命令将创建一个新项目文件夹,其结构如下:
│ └── <project_name>/
│ ├── __init__.py
│ ├── main.py
│ ├── crews/
│ │ ├── crew1/
│ │ │ ├── crew1.py
│ │ │ └── config/
│ │ │ ├── agents.yaml
│ │ │ └── tasks.yaml
│ │ ├── crew2/
│ │ │ ├── crew2.py
│ │ │ └── config/
│ │ │ ├── agents.yaml
│ │ │ └── tasks.yaml
│ ├── pipelines/
│ │ ├── __init__.py
│ │ ├── pipeline1.py
│ │ └── pipeline2.py
│ └── tools/
│ ├── __init__.py
│ └── custom_tool.py
└── tests/
自定义您的管道项目¶
要自定义您的管道项目,您可以:
- 修改
src/<project_name>/crews/中的crew文件,为每个crew定义您的agents和tasks。 - 修改
src/<project_name>/pipelines/中的管道文件,定义您的管道结构。 - 修改
src/<project_name>/main.py,设置并运行您的管道。 - 将您的环境变量添加到
.env文件中。
示例1:定义一个两阶段顺序管道¶
以下是如何在src/<project_name>/pipelines/pipeline.py中定义具有顺序阶段的管道的示例:
from crewai import Pipeline
from crewai.project import PipelineBase
from ..crews.research_crew.research_crew import ResearchCrew
from ..crews.write_x_crew.write_x_crew import WriteXCrew
@PipelineBase
class SequentialPipeline:
def __init__(self):
# 初始化crews
self.research_crew = ResearchCrew().crew()
self.write_x_crew = WriteXCrew().crew()
def create_pipeline(self):
return Pipeline(
stages=[
self.research_crew,
self.write_x_crew
]
)
async def kickoff(self, inputs):
pipeline = self.create_pipeline()
results = await pipeline.kickoff(inputs)
return results
示例2:定义一个两阶段并行执行管道¶
from crewai import Pipeline
from crewai.project import PipelineBase
from ..crews.research_crew.research_crew import ResearchCrew
from ..crews.write_x_crew.write_x_crew import WriteXCrew
from ..crews.write_linkedin_crew.write_linkedin_crew import WriteLinkedInCrew
@PipelineBase
class ParallelExecutionPipeline:
def __init__(self):
# 初始化crews
self.research_crew = ResearchCrew().crew()
self.write_x_crew = WriteXCrew().crew()
self.write_linkedin_crew = WriteLinkedInCrew().crew()
def create_pipeline(self):
return Pipeline(
stages=[
self.research_crew,
[self.write_x_crew, self.write_linkedin_crew] # 并行执行
]
)
async def kickoff(self, inputs):
pipeline = self.create_pipeline()
results = await pipeline.kickoff(inputs)
return results
注解¶
您在管道中使用的主要注解是@PipelineBase。这个注解用于装饰您的管道类,类似于@CrewBase用于crews的方式。
安装依赖项¶
要为您的项目安装依赖项,请使用Poetry:
运行您的管道项目¶
要运行您的管道项目,请使用以下命令:
这将初始化您的管道并开始执行main.py文件中定义的任务。
部署您的管道项目¶
管道可以与常规CrewAI项目以相同的方式进行部署。最简单的方法是通过CrewAI+,您可以在几次点击中部署您的管道。
请记住,在处理管道时,您正在编排多个crews以顺序或并行方式协同工作。这允许更复杂的工作流程和信息处理任务。