pocketflow/README.md

95 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div align="center">
<img src="./assets/title.png" width="600"/>
</div>
![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)
[![Docs](https://img.shields.io/badge/docs-latest-blue)](https://the-pocket.github.io/PocketFlow/)
Pocket Flow: A [100-line](pocketflow/__init__.py) minimalist LLM framework for ([Multi-](https://the-pocket.github.io/PocketFlow/design_pattern/multi_agent.html))[Agents](https://the-pocket.github.io/PocketFlow/design_pattern/agent.html), [Workflow](https://the-pocket.github.io/PocketFlow/design_pattern/workflow.html), [RAG](https://the-pocket.github.io/PocketFlow/design_pattern/rag.html), etc.
- Install via ```pip install pocketflow```, or just copy the [source code](pocketflow/__init__.py) (only 100 lines).
- To learn more, check out the [documentation](https://the-pocket.github.io/PocketFlow/). For an in-depth design dive, read the [essay](https://github.com/The-Pocket/.github/blob/main/profile/pocketflow.md).
# Why Pocket Flow?
For a new development paradigmn: **Build LLM Apps by Chatting with LLM agents, Not Coding**!
- 🧑 Human **describe LLM App requirements** in a design doc.
- 🤖 The agent (like Cursor AI) **implements App** your code automatically.
<br>
<div align="center">
<a href="https://youtu.be/0Pv5HVoVBYE" target="_blank">
<img src="./assets/youtube.png" width="500" alt="IMAGE ALT TEXT" style="cursor: pointer;">
</a>
</div>
<br>
### How does Pocket Flow compare to other frameworks?
<div align="center">
<img src="./assets/meme.jpg" width="400"/>
</div>
Pocket Flow is *purpose-built for LLM Agents*:
1. **🫠 LangChain-like frameworks** overwhelm Cursor AI with *complex* abstractions, *deprecated* functions and *irritating* dependency issues.
2. 😐 **Without a framework**, code is *ad hoc*—suitable only for immediate tasks, *not modular or maintainable*.
3. **🥰 With Pocket Flow**: (1) Minimal and expressive—easy for Cursor AI to pick up. (2) *Nodes and Flows* keep everything *modular*. (3) A *Shared Store* decouples your data structure from compute logic.
In short, the **100 lines** ensures LLM Agents follows *solid coding practices* without sacrificing *flexibility*.
### How to set up Pocket Flow for LLM agents?
- **For quick questions**: Use the [GPT assistant](https://chatgpt.com/g/g-677464af36588191b9eba4901946557b-pocket-flow-assistant) (note: it uses older models not ideal for coding).
- **For one-time LLM task**: Create a [ChatGPT](https://help.openai.com/en/articles/10169521-using-projects-in-chatgpt) or [Claude](https://www.anthropic.com/news/projects) project; upload the [docs](docs) to project knowledge.
- **For LLM App development**: Use [Cursor AI](https://www.cursor.com/).
- If you want to start a new project, check out the [project template](https://github.com/The-Pocket/PocketFlow-Template-Python).
- If you already have a project, copy [.cursorrules](.cursorrules) to your project root as [Cursor Rules](https://docs.cursor.com/context/rules-for-ai).
## What can Pocket Flow build?
Below are examples LLM Apps and tutorials
<div align="center">
| App Name | Difficulty | Learning Objectives |
| :------------- | :------------- | :--------------------- |
| [Youtube ELI5 Summarizer](https://github.com/The-Pocket/Tutorial-Youtube-Made-Simple) | ★☆☆ *Beginner* | [Map Reduce](https://the-pocket.github.io/PocketFlow/design_pattern/mapreduce.html) |
| [AI Paul Graham](https://github.com/The-Pocket/Tutorial-YC-Partner) | ★☆☆ *Beginner* | [RAG](https://the-pocket.github.io/PocketFlow/design_pattern/rag.html) |
</div>
- Do you want to create your own Python project? Start with [this template](https://github.com/The-Pocket/PocketFlow-Template-Python)
## How does Pocket Flow work?
The [100 lines](pocketflow/__init__.py) capture what we believe to be the core abstraction of LLM frameworks:
- **Computation**: A *graph* that breaks down tasks into nodes, with *branching, looping, and nesting*.
- **Communication**: A *shared store* that all nodes can read and write to.
<br>
<div align="center">
<img src="./assets/abstraction.png" width="600"/>
</div>
<br>
From there, its easy to implement popular design patterns like ([Multi-](https://the-pocket.github.io/PocketFlow/design_pattern/multi_agent.html))[Agents](https://the-pocket.github.io/PocketFlow/design_pattern/agent.html), [Workflow](https://the-pocket.github.io/PocketFlow/design_pattern/workflow.html), [RAG](https://the-pocket.github.io/PocketFlow/design_pattern/rag.html), etc.
<br>
<div align="center">
<img src="./assets/design.png" width="600"/>
</div>
<br>