Update README.md

This commit is contained in:
Zachary Huang 2025-02-21 18:37:08 -05:00 committed by GitHub
parent ba3f604590
commit 968156004f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 52 additions and 67 deletions

119
README.md
View File

@ -17,92 +17,77 @@ A [100-line](pocketflow/__init__.py) minimalist LLM framework for ([Multi-](http
- If the 100 lines feel terse and youd prefer a friendlier intro, [check this out](https://chatgpt.com/share/678564bd-1ba4-8000-98e4-a6ffe363c1b8)
- **💡 Pro tip!!** Build LLM apps with LLMs assistants (ChatGPT, Claude, Cursor.ai, etc.)
<details>
<summary><b>(🫵 Click to expand) Use Claude to build LLM apps</b></summary>
- Create a [project](https://www.anthropic.com/news/projects) and upload the [docs](docs) to project knowledge
- Set project custom instructions. For example:
```
1. check "tool.md" and "llm.md" for the required functions.
2. design the high-level (batch) flow and nodes in artifact using mermaid
3. design the shared memory structure: define its fields, data structures, and how they will be updated.
Think out aloud for above first and ask users if your design makes sense.
4. Finally, implement. Start with simple, minimalistic codes without, for example, typing. Write the codes in artifact.
```
- Ask it to build LLM apps (Sonnet 3.5 strongly recommended)!
```
Help me build a chatbot based on a directory of PDFs.
```
<div align="center">
<img src="./assets/claude_project.gif"/>
</div>
</details>
<details>
<summary><b>(🫵 Click to expand) Use ChatGPT to build LLM apps</b></summary>
- Try the [GPT assistant](https://chatgpt.com/g/g-677464af36588191b9eba4901946557b-mini-llm-flow-assistant). However, it uses older models, which are good for explaining but not that good at coding.
<div align="center">
<img src="./assets/gpt_store.gif"/>
</div>
- For stronger coding capabilities, consider sending the [docs](docs) to more advanced models like O1.
- Paste the docs link (https://github.com/the-pocket/PocketFlow/tree/main/docs) to [Gitingest](https://gitingest.com/).
- Then, paste the generated contents into your O1 prompt, and ask it to build LLM apps.
</details>
Documentation: https://the-pocket.github.io/PocketFlow/
## Why Pocket Flow?
Pocket Flow is designed to be **the framework used by LLMs**. In the future, LLM projects will be *self-programmed* by LLMs themselves: Users specify requirements, and LLMs will design, build, and maintain. Current LLMs are:
Pocket Flow is designed to be **the framework used by LLMs**. In the future, LLM projects will be *self-programmed* by LLMs themselves: Users specify requirements, and LLMs will design, build, and maintain.
To build LLM projects with LLMs assistants (ChatGPT, Claude, Cursor.ai, etc.):
1. **👍 Good at Low-level Details:** LLMs can handle details like *wrappers, tools, and prompts*, which don't belong in a framework. Current frameworks are over-engineered, making them hard for humans (and LLMs) to maintain.
<details>
<summary><b>(🫵 Click to expand) Use Claude to build LLM apps</b></summary>
2. **👎 Bad at High-level Paradigms:** While paradigms like *MapReduce, Task Decomposition, and Agents* are powerful, LLMs still struggle to design them elegantly. These high-level concepts should be emphasized in frameworks.
- Create a [project](https://www.anthropic.com/news/projects) and upload the [docs](docs) to project knowledge
The ideal framework for LLMs should (1) **strip away low-level implementation details**, and (2) **keep high-level programming paradigms**. Hence, we provide this minimal (100-line) framework that allows LLMs to focus on what matters.
- Set project custom instructions. For example:
```
1. check "tool.md" and "llm.md" for the required functions.
2. design the high-level (batch) flow and nodes in artifact using mermaid
3. design the shared memory structure: define its fields, data structures, and how they will be updated.
Think out aloud for above first and ask users if your design makes sense.
4. Finally, implement. Start with simple, minimalistic codes without, for example, typing. Write the codes in artifact.
```
- Ask it to build LLM apps (Sonnet 3.5 strongly recommended)!
```
Help me build a chatbot based on a directory of PDFs.
```
Pocket Flow is also a *learning resource*, as current frameworks abstract too much away.
<div align="center">
<img src="./assets/claude_project.gif"/>
</div>
</details>
| Framework | Computation Models | Communication Models | App-Specific Models | Vendor-Specific Models | Lines Of Codes | Package + Dependency Size |
|:--------------:|:------------------:|:--------------------:|:-------------------------------------------------------:|:--------------------------------------------------------:|:-----------------:|:---------------------------:|
| LangChain | Agent, Chain | Message | Many | Many | *405K* | *+166MB* |
| CrewAI | Agent, Chain | Message, Shared | Many | Many | *18K* | *+173MB* |
| SmolAgent | Agent | Message | Some | Some | *8K* | *+198MB* |
| LangGraph | Agent, Graph | Message, Shared | Some | Some | *37K* | *+51MB* |
| AutoGen | Agent | Message | Some | Many | *7K* | *+26MB* |
| **PocketFlow** | **Graph** | **Shared** | **None** | **None** | **100** | **+56KB** |
<details>
<summary><b>(🫵 Click to expand) Use ChatGPT to build LLM apps</b></summary>
- Try the [GPT assistant](https://chatgpt.com/g/g-677464af36588191b9eba4901946557b-mini-llm-flow-assistant). However, it uses older models, which are good for explaining but not that good at coding.
<div align="center">
<img src="./assets/gpt_store.gif"/>
</div>
- For stronger coding capabilities, consider sending the [docs](docs) to more advanced models like O1.
- Paste the docs link (https://github.com/the-pocket/PocketFlow/tree/main/docs) to [Gitingest](https://gitingest.com/).
- Then, paste the generated contents into your O1 prompt, and ask it to build LLM apps.
</details>
## How Does it Work?
The [100 lines](pocketflow/__init__.py) capture what we see as the core abstraction of most LLM frameworks: **Nested Directed Graph** that breaks down tasks into multiple (LLM) steps, with branching and recursion for agent-like decision-making.
## How does it work?
The [100 lines](pocketflow/__init__.py) capture what we see as the core abstraction of LLM frameworks: a **Graph** that breaks down tasks into multiple (LLM) steps, with branching and recursion for agent-like decision-making, and a **Shared Store** that communicates across graph nodes.
<br>
<div align="center">
<img src="./assets/abstraction.png" width="700"/>
<img src="./assets/abstraction.png" width="600"/>
</div>
<br>
From there, its easy to layer on more complex features like ([Multi-](https://the-pocket.github.io/PocketFlow/multi_agent.html))[Agents](https://the-pocket.github.io/PocketFlow/agent.html), [Prompt Chaining](https://the-pocket.github.io/PocketFlow/decomp.html), [RAG](https://the-pocket.github.io/PocketFlow/rag.html), etc.
From there, its easy to implement popular design patterns ike ([Multi-](https://the-pocket.github.io/PocketFlow/multi_agent.html))[Agents](https://the-pocket.github.io/PocketFlow/agent.html), [Prompt Chaining](https://the-pocket.github.io/PocketFlow/decomp.html), [RAG](https://the-pocket.github.io/PocketFlow/rag.html), etc.
<br>
<div align="center">
<img src="./assets/paradigm.png" width="700"/>
<img src="./assets/paradigm.png" width="600"/>
</div>
<br>
- To learn more details, please check out the [documentation](https://the-pocket.github.io/PocketFlow/)
- For a more in-depth dive on the design choices, check out the [essay](https://github.com/The-Pocket/.github/blob/main/profile/pocketflow.mdb)
- To learn more details, please check out documentation: https://the-pocket.github.io/PocketFlow/
- Beginner Tutorial: [Text summarization for Paul Graham Essay + QA agent](https://colab.research.google.com/github/the-pocket/PocketFlow/blob/main/cookbook/demo.ipynb)
- More coming soon ... Let us know youd love to see!