PraisonAI 2.0.56__tar.gz → 2.0.58__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of PraisonAI might be problematic. Click here for more details.

Files changed (90) hide show
  1. praisonai-2.0.58/PKG-INFO +664 -0
  2. praisonai-2.0.58/README.md +573 -0
  3. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/deploy.py +1 -1
  4. {praisonai-2.0.56 → praisonai-2.0.58}/pyproject.toml +4 -4
  5. praisonai-2.0.56/PKG-INFO +0 -673
  6. praisonai-2.0.56/README.md +0 -582
  7. {praisonai-2.0.56 → praisonai-2.0.58}/LICENSE +0 -0
  8. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/__init__.py +0 -0
  9. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/__main__.py +0 -0
  10. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/agents_generator.py +0 -0
  11. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/api/call.py +0 -0
  12. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/auto.py +0 -0
  13. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/chainlit_ui.py +0 -0
  14. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/cli.py +0 -0
  15. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/inbuilt_tools/__init__.py +0 -0
  16. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  17. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/inc/__init__.py +0 -0
  18. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/inc/config.py +0 -0
  19. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/inc/models.py +0 -0
  20. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/public/android-chrome-192x192.png +0 -0
  21. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/public/android-chrome-512x512.png +0 -0
  22. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/public/apple-touch-icon.png +0 -0
  23. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/public/fantasy.svg +0 -0
  24. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/public/favicon-16x16.png +0 -0
  25. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/public/favicon-32x32.png +0 -0
  26. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/public/favicon.ico +0 -0
  27. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/public/game.svg +0 -0
  28. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/public/logo_dark.png +0 -0
  29. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/public/logo_light.png +0 -0
  30. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/public/movie.svg +0 -0
  31. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/public/praison-ai-agents-architecture-dark.png +0 -0
  32. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/public/praison-ai-agents-architecture.png +0 -0
  33. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/public/thriller.svg +0 -0
  34. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/setup/__init__.py +0 -0
  35. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/setup/build.py +0 -0
  36. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/setup/config.yaml +0 -0
  37. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/setup/post_install.py +0 -0
  38. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/setup/setup_conda_env.py +0 -0
  39. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/setup/setup_conda_env.sh +0 -0
  40. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/setup.py +0 -0
  41. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/test.py +0 -0
  42. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/train.py +0 -0
  43. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/README.md +0 -0
  44. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/agents.py +0 -0
  45. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/callbacks.py +0 -0
  46. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/chat.py +0 -0
  47. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/code.py +0 -0
  48. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/colab.py +0 -0
  49. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/colab_chainlit.py +0 -0
  50. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/components/aicoder.py +0 -0
  51. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/.chainlit/config.toml +0 -0
  52. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/.chainlit/translations/bn.json +0 -0
  53. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/.chainlit/translations/en-US.json +0 -0
  54. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/.chainlit/translations/gu.json +0 -0
  55. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/.chainlit/translations/he-IL.json +0 -0
  56. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/.chainlit/translations/hi.json +0 -0
  57. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/.chainlit/translations/kn.json +0 -0
  58. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/.chainlit/translations/ml.json +0 -0
  59. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/.chainlit/translations/mr.json +0 -0
  60. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/.chainlit/translations/ta.json +0 -0
  61. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/.chainlit/translations/te.json +0 -0
  62. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/.chainlit/translations/zh-CN.json +0 -0
  63. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/chainlit.md +0 -0
  64. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/translations/bn.json +0 -0
  65. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/translations/en-US.json +0 -0
  66. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/translations/gu.json +0 -0
  67. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/translations/he-IL.json +0 -0
  68. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/translations/hi.json +0 -0
  69. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/translations/kn.json +0 -0
  70. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/translations/ml.json +0 -0
  71. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/translations/mr.json +0 -0
  72. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/translations/ta.json +0 -0
  73. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/translations/te.json +0 -0
  74. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/config/translations/zh-CN.json +0 -0
  75. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/context.py +0 -0
  76. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/db.py +0 -0
  77. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/public/fantasy.svg +0 -0
  78. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/public/game.svg +0 -0
  79. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/public/logo_dark.png +0 -0
  80. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/public/logo_light.png +0 -0
  81. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/public/movie.svg +0 -0
  82. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/public/praison.css +0 -0
  83. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/public/thriller.svg +0 -0
  84. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/realtime.py +0 -0
  85. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/realtimeclient/__init__.py +0 -0
  86. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/realtimeclient/realtimedocs.txt +0 -0
  87. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/realtimeclient/tools.py +0 -0
  88. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/sql_alchemy.py +0 -0
  89. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/ui/tools.md +0 -0
  90. {praisonai-2.0.56 → praisonai-2.0.58}/praisonai/version.py +0 -0
@@ -0,0 +1,664 @@
1
+ Metadata-Version: 2.3
2
+ Name: PraisonAI
3
+ Version: 2.0.58
4
+ Summary: PraisonAI is an AI Agents Framework with Self Reflection. PraisonAI application combines PraisonAI Agents, AutoGen, and CrewAI into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customisation, and efficient human-agent collaboration.
5
+ Author: Mervin Praison
6
+ Requires-Python: >=3.10,<3.13
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Programming Language :: Python :: 3.10
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Provides-Extra: agentops
12
+ Provides-Extra: anthropic
13
+ Provides-Extra: api
14
+ Provides-Extra: autogen
15
+ Provides-Extra: call
16
+ Provides-Extra: chat
17
+ Provides-Extra: code
18
+ Provides-Extra: cohere
19
+ Provides-Extra: crewai
20
+ Provides-Extra: google
21
+ Provides-Extra: gradio
22
+ Provides-Extra: openai
23
+ Provides-Extra: realtime
24
+ Provides-Extra: ui
25
+ Requires-Dist: PyYAML (>=6.0)
26
+ Requires-Dist: agentops (>=0.3.12) ; extra == "agentops"
27
+ Requires-Dist: aiosqlite (>=0.20.0) ; extra == "chat"
28
+ Requires-Dist: aiosqlite (>=0.20.0) ; extra == "code"
29
+ Requires-Dist: aiosqlite (>=0.20.0) ; extra == "realtime"
30
+ Requires-Dist: aiosqlite (>=0.20.0) ; extra == "ui"
31
+ Requires-Dist: chainlit (==2.0.3) ; extra == "chat"
32
+ Requires-Dist: chainlit (==2.0.3) ; extra == "code"
33
+ Requires-Dist: chainlit (==2.0.3) ; extra == "realtime"
34
+ Requires-Dist: chainlit (==2.0.3) ; extra == "ui"
35
+ Requires-Dist: crawl4ai (==0.3.4) ; extra == "chat"
36
+ Requires-Dist: crawl4ai (==0.3.4) ; extra == "code"
37
+ Requires-Dist: crawl4ai (==0.3.4) ; extra == "realtime"
38
+ Requires-Dist: crewai (>=0.32.0) ; extra == "crewai"
39
+ Requires-Dist: crewai ; extra == "autogen"
40
+ Requires-Dist: duckduckgo_search (>=6.3.0) ; extra == "realtime"
41
+ Requires-Dist: fastapi (>=0.95.0) ; extra == "call"
42
+ Requires-Dist: flaml[automl] (>=2.3.1) ; extra == "call"
43
+ Requires-Dist: flask (>=3.0.0) ; extra == "api"
44
+ Requires-Dist: gradio (>=4.26.0) ; extra == "gradio"
45
+ Requires-Dist: greenlet (>=3.0.3) ; extra == "chat"
46
+ Requires-Dist: greenlet (>=3.0.3) ; extra == "code"
47
+ Requires-Dist: greenlet (>=3.0.3) ; extra == "realtime"
48
+ Requires-Dist: greenlet (>=3.0.3) ; extra == "ui"
49
+ Requires-Dist: instructor (>=1.3.3)
50
+ Requires-Dist: langchain-anthropic (>=0.1.13) ; extra == "anthropic"
51
+ Requires-Dist: langchain-cohere (>=0.1.4) ; extra == "cohere"
52
+ Requires-Dist: langchain-google-genai (>=1.0.4) ; extra == "google"
53
+ Requires-Dist: langchain-openai (>=0.1.7) ; extra == "openai"
54
+ Requires-Dist: litellm (>=1.41.8) ; extra == "chat"
55
+ Requires-Dist: litellm (>=1.41.8) ; extra == "code"
56
+ Requires-Dist: litellm (>=1.41.8) ; extra == "realtime"
57
+ Requires-Dist: markdown (>=3.5)
58
+ Requires-Dist: openai (>=1.54.0) ; extra == "call"
59
+ Requires-Dist: playwright (>=1.47.0) ; extra == "chat"
60
+ Requires-Dist: playwright (>=1.47.0) ; extra == "code"
61
+ Requires-Dist: plotly (>=5.24.0) ; extra == "realtime"
62
+ Requires-Dist: praisonai-tools (>=0.0.7) ; extra == "autogen"
63
+ Requires-Dist: praisonai-tools (>=0.0.7) ; extra == "crewai"
64
+ Requires-Dist: praisonaiagents (>=0.0.53)
65
+ Requires-Dist: pyautogen (>=0.2.19) ; extra == "autogen"
66
+ Requires-Dist: pydantic (<=2.10.1) ; extra == "chat"
67
+ Requires-Dist: pydantic (<=2.10.1) ; extra == "code"
68
+ Requires-Dist: pydantic (<=2.10.1) ; extra == "ui"
69
+ Requires-Dist: pyngrok (>=1.4.0) ; extra == "call"
70
+ Requires-Dist: pyparsing (>=3.0.0)
71
+ Requires-Dist: python-dotenv (>=0.19.0)
72
+ Requires-Dist: rich (>=13.7)
73
+ Requires-Dist: rich ; extra == "call"
74
+ Requires-Dist: rich ; extra == "chat"
75
+ Requires-Dist: sqlalchemy (>=2.0.36) ; extra == "chat"
76
+ Requires-Dist: sqlalchemy (>=2.0.36) ; extra == "code"
77
+ Requires-Dist: sqlalchemy (>=2.0.36) ; extra == "realtime"
78
+ Requires-Dist: sqlalchemy (>=2.0.36) ; extra == "ui"
79
+ Requires-Dist: tavily-python (==0.5.0) ; extra == "chat"
80
+ Requires-Dist: tavily-python (==0.5.0) ; extra == "code"
81
+ Requires-Dist: tavily-python (==0.5.0) ; extra == "realtime"
82
+ Requires-Dist: twilio (>=7.0.0) ; extra == "call"
83
+ Requires-Dist: uvicorn (>=0.20.0) ; extra == "call"
84
+ Requires-Dist: websockets (>=12.0) ; extra == "call"
85
+ Requires-Dist: websockets (>=12.0) ; extra == "realtime"
86
+ Requires-Dist: yfinance (>=0.2.44) ; extra == "realtime"
87
+ Project-URL: Homepage, https://docs.praison.ai
88
+ Project-URL: Repository, https://github.com/mervinpraison/PraisonAI
89
+ Description-Content-Type: text/markdown
90
+
91
+ <p align="center">
92
+ <picture>
93
+ <source media="(prefers-color-scheme: dark)" srcset="docs/logo/dark.png" />
94
+ <source media="(prefers-color-scheme: light)" srcset="docs/logo/light.png" />
95
+ <img alt="PraisonAI Logo" src="docs/logo/light.png" />
96
+ </picture>
97
+ </p>
98
+
99
+ <p align="center">
100
+ <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://static.pepy.tech/badge/PraisonAI" alt="Total Downloads" /></a>
101
+ <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://img.shields.io/github/v/release/MervinPraison/PraisonAI" alt="Latest Stable Version" /></a>
102
+ <a href="https://github.com/MervinPraison/PraisonAI"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License" /></a>
103
+ </p>
104
+
105
+ <div align="center">
106
+
107
+ # Praison AI
108
+
109
+ <a href="https://trendshift.io/repositories/9130" target="_blank"><img src="https://trendshift.io/api/badge/repositories/9130" alt="MervinPraison%2FPraisonAI | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
110
+
111
+ </div>
112
+
113
+ PraisonAI is a production-ready Multi-AI Agents framework with self-reflection, designed to create AI Agents to automate and solve problems ranging from simple tasks to complex challenges. By integrating PraisonAI Agents, AutoGen, and CrewAI into a low-code solution, it streamlines the building and management of multi-agent LLM systems, emphasising simplicity, customisation, and effective human-agent collaboration.
114
+
115
+ <div align="center">
116
+ <a href="https://docs.praison.ai">
117
+ <p align="center">
118
+ <img src="https://img.shields.io/badge/📚_Documentation-Visit_docs.praison.ai-blue?style=for-the-badge&logo=bookstack&logoColor=white" alt="Documentation" />
119
+ </p>
120
+ </a>
121
+ </div>
122
+
123
+ ## Key Features
124
+
125
+ - 🤖 Automated AI Agents Creation
126
+ - 🔄 Self Reflection AI Agents
127
+ - 🧠 Reasoning AI Agents
128
+ - 👁️ Multi Modal AI Agents
129
+ - 🤝 Multi Agent Collaboration
130
+ - 🎭 AI Agent Workflow
131
+ - 📚 Add Custom Knowledge
132
+ - 🧠 Agents with Short and Long Term Memory
133
+ - 📄 Chat with PDF Agents
134
+ - 💻 Code Interpreter Agents
135
+ - 📚 RAG Agents
136
+ - 🤔 Async & Parallel Processing
137
+ - 🔄 Auto Agents
138
+ - 🔢 Math Agents
139
+ - 🎯 Structured Output Agents
140
+ - 🔗 LangChain Integrated Agents
141
+ - 📞 Callback Agents
142
+ - 🤏 Mini AI Agents
143
+ - 🛠️ 100+ Custom Tools
144
+ - 📄 YAML Configuration
145
+ - 💯 100+ LLM Support
146
+
147
+ ## Using Code
148
+
149
+ Light weight package dedicated for coding:
150
+ ```bash
151
+ pip install praisonaiagents
152
+ ```
153
+
154
+ ```bash
155
+ export OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxx
156
+ ```
157
+
158
+ ### 1. Single Agent
159
+
160
+ Create app.py file and add the code below:
161
+ ```python
162
+ from praisonaiagents import Agent
163
+ agent = Agent(instructions="Your are a helpful AI assistant")
164
+ agent.start("Write a movie script about a robot in Mars")
165
+ ```
166
+
167
+ Run:
168
+ ```bash
169
+ python app.py
170
+ ```
171
+
172
+ ### 2. Multi Agents
173
+
174
+ Create app.py file and add the code below:
175
+ ```python
176
+ from praisonaiagents import Agent, PraisonAIAgents
177
+
178
+ research_agent = Agent(instructions="Research about AI")
179
+ summarise_agent = Agent(instructions="Summarise research agent's findings")
180
+ agents = PraisonAIAgents(agents=[research_agent, summarise_agent])
181
+ agents.start()
182
+ ```
183
+
184
+ Run:
185
+ ```bash
186
+ python app.py
187
+ ```
188
+
189
+ ## Using No Code
190
+
191
+ ### Auto Mode:
192
+ ```bash
193
+ pip install praisonai
194
+ export OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxx
195
+ praisonai --auto create a movie script about Robots in Mars
196
+ ```
197
+
198
+ ## AI Agents Flow
199
+
200
+ ```mermaid
201
+ graph LR
202
+ %% Define the main flow
203
+ Start([▶ Start]) --> Agent1
204
+ Agent1 --> Process[⚙ Process]
205
+ Process --> Agent2
206
+ Agent2 --> Output([✓ Output])
207
+ Process -.-> Agent1
208
+
209
+ %% Define subgraphs for agents and their tasks
210
+ subgraph Agent1[ ]
211
+ Task1[📋 Task]
212
+ AgentIcon1[🤖 AI Agent]
213
+ Tools1[🔧 Tools]
214
+
215
+ Task1 --- AgentIcon1
216
+ AgentIcon1 --- Tools1
217
+ end
218
+
219
+ subgraph Agent2[ ]
220
+ Task2[📋 Task]
221
+ AgentIcon2[🤖 AI Agent]
222
+ Tools2[🔧 Tools]
223
+
224
+ Task2 --- AgentIcon2
225
+ AgentIcon2 --- Tools2
226
+ end
227
+
228
+ classDef input fill:#8B0000,stroke:#7C90A0,color:#fff
229
+ classDef process fill:#189AB4,stroke:#7C90A0,color:#fff
230
+ classDef tools fill:#2E8B57,stroke:#7C90A0,color:#fff
231
+ classDef transparent fill:none,stroke:none
232
+
233
+ class Start,Output,Task1,Task2 input
234
+ class Process,AgentIcon1,AgentIcon2 process
235
+ class Tools1,Tools2 tools
236
+ class Agent1,Agent2 transparent
237
+ ```
238
+
239
+ ## AI Agents with Tools
240
+
241
+ Create AI agents that can use tools to interact with external systems and perform actions.
242
+
243
+ ```mermaid
244
+ flowchart TB
245
+ subgraph Tools
246
+ direction TB
247
+ T3[Internet Search]
248
+ T1[Code Execution]
249
+ T2[Formatting]
250
+ end
251
+
252
+ Input[Input] ---> Agents
253
+ subgraph Agents
254
+ direction LR
255
+ A1[Agent 1]
256
+ A2[Agent 2]
257
+ A3[Agent 3]
258
+ end
259
+ Agents ---> Output[Output]
260
+
261
+ T3 --> A1
262
+ T1 --> A2
263
+ T2 --> A3
264
+
265
+ style Tools fill:#189AB4,color:#fff
266
+ style Agents fill:#8B0000,color:#fff
267
+ style Input fill:#8B0000,color:#fff
268
+ style Output fill:#8B0000,color:#fff
269
+ ```
270
+
271
+ ## AI Agents with Memory
272
+
273
+ Create AI agents with memory capabilities for maintaining context and information across tasks.
274
+
275
+ ```mermaid
276
+ flowchart TB
277
+ subgraph Memory
278
+ direction TB
279
+ STM[Short Term]
280
+ LTM[Long Term]
281
+ end
282
+
283
+ subgraph Store
284
+ direction TB
285
+ DB[(Vector DB)]
286
+ end
287
+
288
+ Input[Input] ---> Agents
289
+ subgraph Agents
290
+ direction LR
291
+ A1[Agent 1]
292
+ A2[Agent 2]
293
+ A3[Agent 3]
294
+ end
295
+ Agents ---> Output[Output]
296
+
297
+ Memory <--> Store
298
+ Store <--> A1
299
+ Store <--> A2
300
+ Store <--> A3
301
+
302
+ style Memory fill:#189AB4,color:#fff
303
+ style Store fill:#2E8B57,color:#fff
304
+ style Agents fill:#8B0000,color:#fff
305
+ style Input fill:#8B0000,color:#fff
306
+ style Output fill:#8B0000,color:#fff
307
+ ```
308
+
309
+ ## AI Agents with Different Processes
310
+
311
+ ### Sequential Process
312
+
313
+ The simplest form of task execution where tasks are performed one after another.
314
+
315
+ ```mermaid
316
+ graph LR
317
+ Input[Input] --> A1
318
+ subgraph Agents
319
+ direction LR
320
+ A1[Agent 1] --> A2[Agent 2] --> A3[Agent 3]
321
+ end
322
+ A3 --> Output[Output]
323
+
324
+ classDef input fill:#8B0000,stroke:#7C90A0,color:#fff
325
+ classDef process fill:#189AB4,stroke:#7C90A0,color:#fff
326
+ classDef transparent fill:none,stroke:none
327
+
328
+ class Input,Output input
329
+ class A1,A2,A3 process
330
+ class Agents transparent
331
+ ```
332
+
333
+ ### Hierarchical Process
334
+
335
+ Uses a manager agent to coordinate task execution and agent assignments.
336
+
337
+ ```mermaid
338
+ graph TB
339
+ Input[Input] --> Manager
340
+
341
+ subgraph Agents
342
+ Manager[Manager Agent]
343
+
344
+ subgraph Workers
345
+ direction LR
346
+ W1[Worker 1]
347
+ W2[Worker 2]
348
+ W3[Worker 3]
349
+ end
350
+
351
+ Manager --> W1
352
+ Manager --> W2
353
+ Manager --> W3
354
+ end
355
+
356
+ W1 --> Manager
357
+ W2 --> Manager
358
+ W3 --> Manager
359
+ Manager --> Output[Output]
360
+
361
+ classDef input fill:#8B0000,stroke:#7C90A0,color:#fff
362
+ classDef process fill:#189AB4,stroke:#7C90A0,color:#fff
363
+ classDef transparent fill:none,stroke:none
364
+
365
+ class Input,Output input
366
+ class Manager,W1,W2,W3 process
367
+ class Agents,Workers transparent
368
+ ```
369
+
370
+ ### Workflow Process
371
+
372
+ Advanced process type supporting complex task relationships and conditional execution.
373
+
374
+ ```mermaid
375
+ graph LR
376
+ Input[Input] --> Start
377
+
378
+ subgraph Workflow
379
+ direction LR
380
+ Start[Start] --> C1{Condition}
381
+ C1 --> |Yes| A1[Agent 1]
382
+ C1 --> |No| A2[Agent 2]
383
+ A1 --> Join
384
+ A2 --> Join
385
+ Join --> A3[Agent 3]
386
+ end
387
+
388
+ A3 --> Output[Output]
389
+
390
+ classDef input fill:#8B0000,stroke:#7C90A0,color:#fff
391
+ classDef process fill:#189AB4,stroke:#7C90A0,color:#fff
392
+ classDef decision fill:#2E8B57,stroke:#7C90A0,color:#fff
393
+ classDef transparent fill:none,stroke:none
394
+
395
+ class Input,Output input
396
+ class Start,A1,A2,A3,Join process
397
+ class C1 decision
398
+ class Workflow transparent
399
+ ```
400
+
401
+ #### Agentic Routing Workflow
402
+
403
+ Create AI agents that can dynamically route tasks to specialized LLM instances.
404
+
405
+ ```mermaid
406
+ flowchart LR
407
+ In[In] --> Router[LLM Call Router]
408
+ Router --> LLM1[LLM Call 1]
409
+ Router --> LLM2[LLM Call 2]
410
+ Router --> LLM3[LLM Call 3]
411
+ LLM1 --> Out[Out]
412
+ LLM2 --> Out
413
+ LLM3 --> Out
414
+
415
+ style In fill:#8B0000,color:#fff
416
+ style Router fill:#2E8B57,color:#fff
417
+ style LLM1 fill:#2E8B57,color:#fff
418
+ style LLM2 fill:#2E8B57,color:#fff
419
+ style LLM3 fill:#2E8B57,color:#fff
420
+ style Out fill:#8B0000,color:#fff
421
+ ```
422
+
423
+ #### Agentic Orchestrator Worker
424
+
425
+ Create AI agents that orchestrate and distribute tasks among specialized workers.
426
+
427
+ ```mermaid
428
+ flowchart LR
429
+ In[In] --> Router[LLM Call Router]
430
+ Router --> LLM1[LLM Call 1]
431
+ Router --> LLM2[LLM Call 2]
432
+ Router --> LLM3[LLM Call 3]
433
+ LLM1 --> Synthesizer[Synthesizer]
434
+ LLM2 --> Synthesizer
435
+ LLM3 --> Synthesizer
436
+ Synthesizer --> Out[Out]
437
+
438
+ style In fill:#8B0000,color:#fff
439
+ style Router fill:#2E8B57,color:#fff
440
+ style LLM1 fill:#2E8B57,color:#fff
441
+ style LLM2 fill:#2E8B57,color:#fff
442
+ style LLM3 fill:#2E8B57,color:#fff
443
+ style Synthesizer fill:#2E8B57,color:#fff
444
+ style Out fill:#8B0000,color:#fff
445
+ ```
446
+
447
+ #### Agentic Autonomous Workflow
448
+
449
+ Create AI agents that can autonomously monitor, act, and adapt based on environment feedback.
450
+
451
+ ```mermaid
452
+ flowchart LR
453
+ Human[Human] <--> LLM[LLM Call]
454
+ LLM -->|ACTION| Environment[Environment]
455
+ Environment -->|FEEDBACK| LLM
456
+ LLM --> Stop[Stop]
457
+
458
+ style Human fill:#8B0000,color:#fff
459
+ style LLM fill:#2E8B57,color:#fff
460
+ style Environment fill:#8B0000,color:#fff
461
+ style Stop fill:#333,color:#fff
462
+ ```
463
+
464
+ #### Agentic Parallelization
465
+
466
+ Create AI agents that can execute tasks in parallel for improved performance.
467
+
468
+ ```mermaid
469
+ flowchart LR
470
+ In[In] --> LLM2[LLM Call 2]
471
+ In --> LLM1[LLM Call 1]
472
+ In --> LLM3[LLM Call 3]
473
+ LLM1 --> Aggregator[Aggregator]
474
+ LLM2 --> Aggregator
475
+ LLM3 --> Aggregator
476
+ Aggregator --> Out[Out]
477
+
478
+ style In fill:#8B0000,color:#fff
479
+ style LLM1 fill:#2E8B57,color:#fff
480
+ style LLM2 fill:#2E8B57,color:#fff
481
+ style LLM3 fill:#2E8B57,color:#fff
482
+ style Aggregator fill:#fff,color:#000
483
+ style Out fill:#8B0000,color:#fff
484
+ ```
485
+
486
+ #### Agentic Prompt Chaining
487
+
488
+ Create AI agents with sequential prompt chaining for complex workflows.
489
+
490
+ ```mermaid
491
+ flowchart LR
492
+ In[In] --> LLM1[LLM Call 1] --> Gate{Gate}
493
+ Gate -->|Pass| LLM2[LLM Call 2] -->|Output 2| LLM3[LLM Call 3] --> Out[Out]
494
+ Gate -->|Fail| Exit[Exit]
495
+
496
+ style In fill:#8B0000,color:#fff
497
+ style LLM1 fill:#2E8B57,color:#fff
498
+ style LLM2 fill:#2E8B57,color:#fff
499
+ style LLM3 fill:#2E8B57,color:#fff
500
+ style Out fill:#8B0000,color:#fff
501
+ style Exit fill:#8B0000,color:#fff
502
+ ```
503
+
504
+ #### Agentic Evaluator Optimizer
505
+
506
+ Create AI agents that can generate and optimize solutions through iterative feedback.
507
+
508
+ ```mermaid
509
+ flowchart LR
510
+ In[In] --> Generator[LLM Call Generator]
511
+ Generator -->|SOLUTION| Evaluator[LLM Call Evaluator] -->|ACCEPTED| Out[Out]
512
+ Evaluator -->|REJECTED + FEEDBACK| Generator
513
+
514
+ style In fill:#8B0000,color:#fff
515
+ style Generator fill:#2E8B57,color:#fff
516
+ style Evaluator fill:#2E8B57,color:#fff
517
+ style Out fill:#8B0000,color:#fff
518
+ ```
519
+
520
+ #### Repetitive Agents
521
+
522
+ Create AI agents that can efficiently handle repetitive tasks through automated loops.
523
+
524
+ ```mermaid
525
+ flowchart LR
526
+ In[Input] --> LoopAgent[("Looping Agent")]
527
+ LoopAgent --> Task[Task]
528
+ Task --> |Next iteration| LoopAgent
529
+ Task --> |Done| Out[Output]
530
+
531
+ style In fill:#8B0000,color:#fff
532
+ style LoopAgent fill:#2E8B57,color:#fff,shape:circle
533
+ style Task fill:#2E8B57,color:#fff
534
+ style Out fill:#8B0000,color:#fff
535
+ ```
536
+
537
+ ## Adding Models
538
+
539
+ <div align="center">
540
+ <a href="https://docs.praison.ai/models">
541
+ <p align="center">
542
+ <img src="https://img.shields.io/badge/%F0%9F%93%9A_Models-Visit_docs.praison.ai-blue?style=for-the-badge&logo=bookstack&logoColor=white" alt="Models" />
543
+ </p>
544
+ </a>
545
+ </div>
546
+
547
+ ## Ollama Integration
548
+ ```bash
549
+ export OPENAI_BASE_URL=http://localhost:11434/v1
550
+ ```
551
+
552
+ ## Groq Integration
553
+ Replace xxxx with Groq API KEY:
554
+ ```bash
555
+ export OPENAI_API_KEY=xxxxxxxxxxx
556
+ export OPENAI_BASE_URL=https://api.groq.com/openai/v1
557
+ ```
558
+
559
+ ## No Code Options
560
+
561
+ ## Agents Playbook
562
+
563
+ ### Simple Playbook Example
564
+
565
+ Create `agents.yaml` file and add the code below:
566
+
567
+ ```yaml
568
+ framework: praisonai
569
+ topic: Artificial Intelligence
570
+ roles:
571
+ screenwriter:
572
+ backstory: "Skilled in crafting scripts with engaging dialogue about {topic}."
573
+ goal: Create scripts from concepts.
574
+ role: Screenwriter
575
+ tasks:
576
+ scriptwriting_task:
577
+ description: "Develop scripts with compelling characters and dialogue about {topic}."
578
+ expected_output: "Complete script ready for production."
579
+ ```
580
+
581
+ *To run the playbook:*
582
+ ```bash
583
+ praisonai agents.yaml
584
+ ```
585
+
586
+ ## Use 100+ Models
587
+
588
+ - https://docs.praison.ai/models/
589
+ <div align="center">
590
+ <a href="https://docs.praison.ai">
591
+ <p align="center">
592
+ <img src="https://img.shields.io/badge/📚_Documentation-Visit_docs.praison.ai-blue?style=for-the-badge&logo=bookstack&logoColor=white" alt="Documentation" />
593
+ </p>
594
+ </a>
595
+ </div>
596
+
597
+ ## Development:
598
+
599
+ Below is used for development only.
600
+
601
+ ### Using uv
602
+ ```bash
603
+ # Install uv if you haven't already
604
+ pip install uv
605
+
606
+ # Install from requirements
607
+ uv pip install -r pyproject.toml
608
+
609
+ # Install with extras
610
+ uv pip install -r pyproject.toml --extra code
611
+ uv pip install -r pyproject.toml --extra "crewai,autogen"
612
+ ```
613
+
614
+ ## Contributing
615
+
616
+ - Fork on GitHub: Use the "Fork" button on the repository page.
617
+ - Clone your fork: `git clone https://github.com/yourusername/praisonAI.git`
618
+ - Create a branch: `git checkout -b new-feature`
619
+ - Make changes and commit: `git commit -am "Add some feature"`
620
+ - Push to your fork: `git push origin new-feature`
621
+ - Submit a pull request via GitHub's web interface.
622
+ - Await feedback from project maintainers.
623
+
624
+ ## Other Features
625
+
626
+ - 🔄 Use CrewAI or AutoGen Framework
627
+ - 💻 Chat with ENTIRE Codebase
628
+ - 🎨 Interactive UIs
629
+ - 📄 YAML-based Configuration
630
+ - 🛠️ Custom Tool Integration
631
+ - 🔍 Internet Search Capability (using Crawl4AI and Tavily)
632
+ - 🖼️ Vision Language Model (VLM) Support
633
+ - 🎙️ Real-time Voice Interaction
634
+
635
+ ## Star History
636
+
637
+ [![Star History Chart](https://api.star-history.com/svg?repos=MervinPraison/PraisonAI&type=Date)](https://docs.praison.ai)
638
+
639
+ ## Video Tutorials
640
+
641
+ | Topic | Video |
642
+ |-------|--------|
643
+ | AI Agents with Self Reflection | [![Self Reflection](https://img.youtube.com/vi/vLXobEN2Vc8/0.jpg)](https://www.youtube.com/watch?v=vLXobEN2Vc8) |
644
+ | AI Agents with Reasoning | [![Reasoning](https://img.youtube.com/vi/KNDVWGN3TpM/0.jpg)](https://www.youtube.com/watch?v=KNDVWGN3TpM) |
645
+ | Multimodal AI Agents | [![Multimodal](https://img.youtube.com/vi/hjAWmUT1qqY/0.jpg)](https://www.youtube.com/watch?v=hjAWmUT1qqY) |
646
+ | AI Agents Workflow | [![Workflow](https://img.youtube.com/vi/yWTH44QPl2A/0.jpg)](https://www.youtube.com/watch?v=yWTH44QPl2A) |
647
+ | Async AI Agents | [![Async](https://img.youtube.com/vi/VhVQfgo00LE/0.jpg)](https://www.youtube.com/watch?v=VhVQfgo00LE) |
648
+ | Mini AI Agents | [![Mini](https://img.youtube.com/vi/OkvYp5aAGSg/0.jpg)](https://www.youtube.com/watch?v=OkvYp5aAGSg) |
649
+ | AI Agents with Memory | [![Memory](https://img.youtube.com/vi/1hVfVxvPnnQ/0.jpg)](https://www.youtube.com/watch?v=1hVfVxvPnnQ) |
650
+ | Repetitive Agents | [![Repetitive](https://img.youtube.com/vi/dAYGxsjDOPg/0.jpg)](https://www.youtube.com/watch?v=dAYGxsjDOPg) |
651
+ | Introduction | [![Introduction](https://img.youtube.com/vi/Fn1lQjC0GO0/0.jpg)](https://www.youtube.com/watch?v=Fn1lQjC0GO0) |
652
+ | Tools Overview | [![Tools Overview](https://img.youtube.com/vi/XaQRgRpV7jo/0.jpg)](https://www.youtube.com/watch?v=XaQRgRpV7jo) |
653
+ | Custom Tools | [![Custom Tools](https://img.youtube.com/vi/JSU2Rndh06c/0.jpg)](https://www.youtube.com/watch?v=JSU2Rndh06c) |
654
+ | Firecrawl Integration | [![Firecrawl](https://img.youtube.com/vi/UoqUDcLcOYo/0.jpg)](https://www.youtube.com/watch?v=UoqUDcLcOYo) |
655
+ | User Interface | [![UI](https://img.youtube.com/vi/tg-ZjNl3OCg/0.jpg)](https://www.youtube.com/watch?v=tg-ZjNl3OCg) |
656
+ | Crawl4AI Integration | [![Crawl4AI](https://img.youtube.com/vi/KAvuVUh0XU8/0.jpg)](https://www.youtube.com/watch?v=KAvuVUh0XU8) |
657
+ | Chat Interface | [![Chat](https://img.youtube.com/vi/sw3uDqn2h1Y/0.jpg)](https://www.youtube.com/watch?v=sw3uDqn2h1Y) |
658
+ | Code Interface | [![Code](https://img.youtube.com/vi/_5jQayO-MQY/0.jpg)](https://www.youtube.com/watch?v=_5jQayO-MQY) |
659
+ | Mem0 Integration | [![Mem0](https://img.youtube.com/vi/KIGSgRxf1cY/0.jpg)](https://www.youtube.com/watch?v=KIGSgRxf1cY) |
660
+ | Training | [![Training](https://img.youtube.com/vi/aLawE8kwCrI/0.jpg)](https://www.youtube.com/watch?v=aLawE8kwCrI) |
661
+ | Realtime Voice Interface | [![Realtime](https://img.youtube.com/vi/frRHfevTCSw/0.jpg)](https://www.youtube.com/watch?v=frRHfevTCSw) |
662
+ | Call Interface | [![Call](https://img.youtube.com/vi/m1cwrUG2iAk/0.jpg)](https://www.youtube.com/watch?v=m1cwrUG2iAk) |
663
+
664
+