From 128872a4825d6c19df08ba2bb4cb885431de8252 Mon Sep 17 00:00:00 2001 From: Brandon Hancock Date: Tue, 24 Sep 2024 15:41:11 -0400 Subject: [PATCH] Update docs and add more examples --- docs/core-concepts/Flows.md | 17 ++- docs/index.md | 25 ++++ poetry.lock | 39 +++++- pyproject.toml | 1 + src/crewai/flow/flow.py | 101 +++++++++++++++ src/crewai/flow/flow_graph.png | Bin 0 -> 54627 bytes src/crewai/flow/large_flow.py | 119 ++++++++++++++++++ src/crewai/flow/structured_test_flow_and.py | 2 +- src/crewai/flow/structured_test_flow_or.py | 3 +- .../flow/structured_test_flow_router.py | 2 +- src/crewai/flow/unstructured_test_flow.py | 3 +- 11 files changed, 298 insertions(+), 14 deletions(-) create mode 100644 src/crewai/flow/flow_graph.png create mode 100644 src/crewai/flow/large_flow.py diff --git a/docs/core-concepts/Flows.md b/docs/core-concepts/Flows.md index 0aa00a9e4..57f432bc4 100644 --- a/docs/core-concepts/Flows.md +++ b/docs/core-concepts/Flows.md @@ -543,9 +543,14 @@ In this example, the `PoemFlow` class defines a flow that generates a sentence c ## Next Steps -- Recommend checking out our flow examples in the CrewAI Examples repository to see more use cases. -- Currently, there are 4 flow examples: - - email auto responder flow - - lead score flow - - Write a book flow - - Meeting assistant flow +If you're interested in exploring additional examples of flows, we have a variety of recommendations in our examples repository. Here are four specific flow examples, each showcasing unique use cases to help you match your current problem type to a specific example: + +1. **Email Auto Responder Flow**: This example demonstrates an infinite loop where a background job continually runs to automate email responses. It's a great use case for tasks that need to be performed repeatedly without manual intervention. [View Example](https://github.com/crewAIInc/crewAI-examples/tree/main/email_auto_responder_flow) + +2. **Lead Score Flow**: This flow showcases adding human-in-the-loop feedback and handling different conditional branches using the router. It's an excellent example of how to incorporate dynamic decision-making and human oversight into your workflows. [View Example](https://github.com/crewAIInc/crewAI-examples/tree/main/lead-score-flow) + +3. **Write a Book Flow**: This example excels at chaining multiple crews together, where the output of one crew is used by another. Specifically, one crew outlines an entire book, and another crew generates chapters based on the outline. Eventually, everything is connected to produce a complete book. This flow is perfect for complex, multi-step processes that require coordination between different tasks. [View Example](https://github.com/crewAIInc/crewAI-examples/tree/main/write_a_book_with_flows) + +4. **Meeting Assistant Flow**: This flow demonstrates how to broadcast one event to trigger multiple follow-up actions. For instance, after a meeting is completed, the flow can update a Trello board, send a Slack message, and save the results. It's a great example of handling multiple outcomes from a single event, making it ideal for comprehensive task management and notification systems. [View Example](https://github.com/crewAIInc/crewAI-examples/tree/main/meeting_assistant_flow) + +By exploring these examples, you can gain insights into how to leverage CrewAI Flows for various use cases, from automating repetitive tasks to managing complex, multi-step processes with dynamic decision-making and human feedback. diff --git a/docs/index.md b/docs/index.md index 3f8917dac..c0ee8f72e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -53,6 +53,11 @@ Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By Crews +
  • + + Flows + +
  • Pipeline @@ -193,6 +198,26 @@ Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By Landing Page Generator
  • +
  • + + Email Auto Responder Flow + +
  • +
  • + + Lead Score Flow + +
  • +
  • + + Write a Book Flow + +
  • +
  • + + Meeting Assistant Flow + +
  • diff --git a/poetry.lock b/poetry.lock index 88364ba0e..842db35ff 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1539,12 +1539,12 @@ files = [ google-auth = ">=2.14.1,<3.0.dev0" googleapis-common-protos = ">=1.56.2,<2.0.dev0" grpcio = [ - {version = ">=1.49.1,<2.0dev", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""}, {version = ">=1.33.2,<2.0dev", optional = true, markers = "python_version < \"3.11\" and extra == \"grpc\""}, + {version = ">=1.49.1,<2.0dev", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""}, ] grpcio-status = [ - {version = ">=1.49.1,<2.0.dev0", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""}, {version = ">=1.33.2,<2.0.dev0", optional = true, markers = "python_version < \"3.11\" and extra == \"grpc\""}, + {version = ">=1.49.1,<2.0.dev0", optional = true, markers = "python_version >= \"3.11\" and extra == \"grpc\""}, ] proto-plus = ">=1.22.3,<2.0.0dev" protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<6.0.0.dev0" @@ -1806,6 +1806,22 @@ cachetools = "*" numpy = "*" requests = "*" +[[package]] +name = "graphviz" +version = "0.20.3" +description = "Simple Python interface for Graphviz" +optional = false +python-versions = ">=3.8" +files = [ + {file = "graphviz-0.20.3-py3-none-any.whl", hash = "sha256:81f848f2904515d8cd359cc611faba817598d2feaac4027b266aa3eda7b3dde5"}, + {file = "graphviz-0.20.3.zip", hash = "sha256:09d6bc81e6a9fa392e7ba52135a9d49f1ed62526f96499325930e87ca1b5925d"}, +] + +[package.extras] +dev = ["flake8", "pep8-naming", "tox (>=3)", "twine", "wheel"] +docs = ["sphinx (>=5,<7)", "sphinx-autodoc-typehints", "sphinx-rtd-theme"] +test = ["coverage", "pytest (>=7,<8.1)", "pytest-cov", "pytest-mock (>=3)"] + [[package]] name = "greenlet" version = "3.1.0" @@ -4046,8 +4062,8 @@ files = [ [package.dependencies] numpy = [ - {version = ">=1.23.2", markers = "python_version == \"3.11\""}, {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, ] python-dateutil = ">=2.8.2" @@ -4546,6 +4562,19 @@ files = [ {file = "pyarrow-17.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:392bc9feabc647338e6c89267635e111d71edad5fcffba204425a7c8d13610d7"}, {file = "pyarrow-17.0.0-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:af5ff82a04b2171415f1410cff7ebb79861afc5dae50be73ce06d6e870615204"}, {file = "pyarrow-17.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:edca18eaca89cd6382dfbcff3dd2d87633433043650c07375d095cd3517561d8"}, + {file = "pyarrow-17.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7c7916bff914ac5d4a8fe25b7a25e432ff921e72f6f2b7547d1e325c1ad9d155"}, + {file = "pyarrow-17.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f553ca691b9e94b202ff741bdd40f6ccb70cdd5fbf65c187af132f1317de6145"}, + {file = "pyarrow-17.0.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:0cdb0e627c86c373205a2f94a510ac4376fdc523f8bb36beab2e7f204416163c"}, + {file = "pyarrow-17.0.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:d7d192305d9d8bc9082d10f361fc70a73590a4c65cf31c3e6926cd72b76bc35c"}, + {file = "pyarrow-17.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:02dae06ce212d8b3244dd3e7d12d9c4d3046945a5933d28026598e9dbbda1fca"}, + {file = "pyarrow-17.0.0-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:13d7a460b412f31e4c0efa1148e1d29bdf18ad1411eb6757d38f8fbdcc8645fb"}, + {file = "pyarrow-17.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9b564a51fbccfab5a04a80453e5ac6c9954a9c5ef2890d1bcf63741909c3f8df"}, + {file = "pyarrow-17.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32503827abbc5aadedfa235f5ece8c4f8f8b0a3cf01066bc8d29de7539532687"}, + {file = "pyarrow-17.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a155acc7f154b9ffcc85497509bcd0d43efb80d6f733b0dc3bb14e281f131c8b"}, + {file = "pyarrow-17.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:dec8d129254d0188a49f8a1fc99e0560dc1b85f60af729f47de4046015f9b0a5"}, + {file = "pyarrow-17.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:a48ddf5c3c6a6c505904545c25a4ae13646ae1f8ba703c4df4a1bfe4f4006bda"}, + {file = "pyarrow-17.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:42bf93249a083aca230ba7e2786c5f673507fa97bbd9725a1e2754715151a204"}, + {file = "pyarrow-17.0.0.tar.gz", hash = "sha256:4beca9521ed2c0921c1023e68d097d0299b62c362639ea315572a58f3f50fd28"}, ] [package.dependencies] @@ -4561,6 +4590,7 @@ description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs optional = false python-versions = ">=3.8" files = [ + {file = "pyasn1-0.6.1-py3-none-any.whl", hash = "sha256:0d632f46f2ba09143da3a8afe9e33fb6f92fa2320ab7e886e2d0f7672af84629"}, {file = "pyasn1-0.6.1.tar.gz", hash = "sha256:6f580d2bdd84365380830acf45550f2511469f673cb4a5ae3857a3170128b034"}, ] @@ -4571,6 +4601,7 @@ description = "A collection of ASN.1-based protocols modules" optional = false python-versions = ">=3.8" files = [ + {file = "pyasn1_modules-0.4.1-py3-none-any.whl", hash = "sha256:49bfa96b45a292b711e986f222502c1c9a5e1f4e568fc30e2574a6c7d07838fd"}, {file = "pyasn1_modules-0.4.1.tar.gz", hash = "sha256:c28e2dbf9c06ad61c71a075c7e0f9fd0f1b0bb2d2ad4377f240d33ac2ab60a7c"}, ] @@ -6992,4 +7023,4 @@ tools = ["crewai-tools"] [metadata] lock-version = "2.0" python-versions = ">=3.10,<=3.13" -content-hash = "0b03c4204e1f31a5bf692ba4585b88d5f6ad4028693fdbc4d9b1546450c9af5a" +content-hash = "80b7909ba10f19ffeeac6d6ce3c802158c75ff4328da0379549c28c054bd16eb" diff --git a/pyproject.toml b/pyproject.toml index a0aabdf34..2f84530f3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,6 +32,7 @@ json-repair = "^0.25.2" auth0-python = "^4.7.1" poetry = "^1.8.3" litellm = "^1.44.22" +graphviz = "^0.20.3" [tool.poetry.extras] tools = ["crewai-tools"] diff --git a/src/crewai/flow/flow.py b/src/crewai/flow/flow.py index ab561349f..4d3b421bf 100644 --- a/src/crewai/flow/flow.py +++ b/src/crewai/flow/flow.py @@ -2,6 +2,7 @@ import asyncio import inspect from typing import Any, Callable, Dict, Generic, List, Set, Type, TypeVar, Union +import graphviz from pydantic import BaseModel T = TypeVar("T", bound=Union[BaseModel, Dict[str, Any]]) @@ -250,3 +251,103 @@ class Flow(Generic[T], metaclass=FlowMeta): import traceback traceback.print_exc() + + def visualize(self, filename="flow_graph"): + dot = graphviz.Digraph(comment="Flow Graph", engine="dot") + dot.attr( + rankdir="TB", size="20,20", splines="curved" + ) # Changed to curved splines + + # Color scheme (using company colors) + colors = { + "bg": "#FFFFFF", + "start": "#FF5A50", + "method": "#333333", + "router_outline": "#FF5A50", + "edge": "#333333", + "text": "#FFFFFF", + } + + dot.attr(bgcolor=colors["bg"]) + + # Add nodes for each relevant method + for method_name, method in self._methods.items(): + if ( + hasattr(method, "__is_start_method__") + or method_name in self._listeners + or method_name in self._routers.values() + ): + shape = "rectangle" + style = "filled,rounded" + fillcolor = colors["method"] + + if hasattr(method, "__is_start_method__"): + fillcolor = colors["start"] + + dot.node( + method_name, + method_name, + shape=shape, + style=style, + fillcolor=fillcolor, + fontcolor=colors["text"], + penwidth="2", + ) + + # Add edges and enhanced router representation + for method_name, method in self._methods.items(): + if method_name in self._listeners: + condition_type, trigger_methods = self._listeners[method_name] + for trigger in trigger_methods: + if condition_type == "AND": + dot.edge( + trigger, + method_name, + color=colors["edge"], + style="dashed", + penwidth="2", + ) + else: # OR condition + dot.edge( + trigger, method_name, color=colors["edge"], penwidth="2" + ) + + if method_name in self._routers.values(): + for trigger, router in self._routers.items(): + if router == method_name: + # Create a subgraph for the router and its outputs + subgraph_name = f"cluster_{method_name}" + subgraph = graphviz.Digraph(name=subgraph_name) + subgraph.attr( + label="", + style="filled,rounded", + color=colors["router_outline"], + fillcolor=colors["method"], + penwidth="3", + ) # Changed to solid line and increased penwidth + + # Router label (method name) and outputs + label = f"{method_name}\\n\\nPossible outcomes:\\n• Success\\n• Failure" + subgraph.node( + method_name, + label, + shape="plaintext", + fontcolor=colors["text"], + ) + + # Add the subgraph to the main graph + dot.subgraph(subgraph) + + # Connect trigger to router (to the border of the subgraph) + dot.edge( + trigger, + method_name, + color=colors["edge"], + style="solid", + penwidth="2", + lhead=subgraph_name, + ) + + # Render and save the graph + dot.render(filename, format="png", cleanup=True, view=True) + print(f"Graph saved as {filename}.png") diff --git a/src/crewai/flow/flow_graph.png b/src/crewai/flow/flow_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..a031ab3ec1b7415bf4f0bc8da175650209b325f5 GIT binary patch literal 54627 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