跳转至

创建CrewAI管道项目

欢迎使用创建新CrewAI管道项目的综合指南。本文档将指导您完成创建、自定义和运行CrewAI管道项目的步骤,确保您拥有开始所需的一切。

要了解更多关于CrewAI管道的信息,请访问CrewAI文档

前提条件

在开始使用CrewAI管道之前,请确保您已通过pip安装了CrewAI:

$ pip install crewai crewai-tools

与常规CrewAI项目一样,虚拟环境和代码IDE的相同前提条件适用。

创建新的管道项目

要创建新的CrewAI管道项目,您有两个选项:

  1. 对于基本管道模板:
$ crewai create pipeline <project_name>
  1. 对于包含路由器的管道示例:
$ crewai create pipeline --router <project_name>

这些命令将创建一个新项目文件夹,其结构如下:

<project_name>/
├── README.md
├── poetry.lock
├── pyproject.toml
├── src/
│   └── <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/

自定义您的管道项目

要自定义您的管道项目,您可以:

  1. 修改src/<project_name>/crews/中的crew文件,为每个crew定义您的agents和tasks。
  2. 修改src/<project_name>/pipelines/中的管道文件,定义您的管道结构。
  3. 修改src/<project_name>/main.py,设置并运行您的管道。
  4. 将您的环境变量添加到.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:

$ cd <project_name>
$ crewai install

运行您的管道项目

要运行您的管道项目,请使用以下命令:

$ crewai run

这将初始化您的管道并开始执行main.py文件中定义的任务。

部署您的管道项目

管道可以与常规CrewAI项目以相同的方式进行部署。最简单的方法是通过CrewAI+,您可以在几次点击中部署您的管道。

请记住,在处理管道时,您正在编排多个crews以顺序或并行方式协同工作。这允许更复杂的工作流程和信息处理任务。