PraisonAI 2.0.61__cp313-cp313-manylinux_2_39_x86_64.whl

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 (89) hide show
  1. praisonai/__init__.py +6 -0
  2. praisonai/__main__.py +10 -0
  3. praisonai/agents_generator.py +648 -0
  4. praisonai/api/call.py +292 -0
  5. praisonai/auto.py +238 -0
  6. praisonai/chainlit_ui.py +304 -0
  7. praisonai/cli.py +518 -0
  8. praisonai/deploy.py +138 -0
  9. praisonai/inbuilt_tools/__init__.py +24 -0
  10. praisonai/inbuilt_tools/autogen_tools.py +117 -0
  11. praisonai/inc/__init__.py +2 -0
  12. praisonai/inc/config.py +96 -0
  13. praisonai/inc/models.py +128 -0
  14. praisonai/public/android-chrome-192x192.png +0 -0
  15. praisonai/public/android-chrome-512x512.png +0 -0
  16. praisonai/public/apple-touch-icon.png +0 -0
  17. praisonai/public/fantasy.svg +3 -0
  18. praisonai/public/favicon-16x16.png +0 -0
  19. praisonai/public/favicon-32x32.png +0 -0
  20. praisonai/public/favicon.ico +0 -0
  21. praisonai/public/game.svg +3 -0
  22. praisonai/public/logo_dark.png +0 -0
  23. praisonai/public/logo_light.png +0 -0
  24. praisonai/public/movie.svg +3 -0
  25. praisonai/public/praison-ai-agents-architecture-dark.png +0 -0
  26. praisonai/public/praison-ai-agents-architecture.png +0 -0
  27. praisonai/public/thriller.svg +3 -0
  28. praisonai/setup/__init__.py +1 -0
  29. praisonai/setup/build.py +21 -0
  30. praisonai/setup/config.yaml +60 -0
  31. praisonai/setup/post_install.py +23 -0
  32. praisonai/setup/setup_conda_env.py +25 -0
  33. praisonai/setup/setup_conda_env.sh +72 -0
  34. praisonai/setup.py +16 -0
  35. praisonai/test.py +105 -0
  36. praisonai/train.py +276 -0
  37. praisonai/ui/README.md +21 -0
  38. praisonai/ui/agents.py +822 -0
  39. praisonai/ui/callbacks.py +57 -0
  40. praisonai/ui/chat.py +387 -0
  41. praisonai/ui/code.py +440 -0
  42. praisonai/ui/colab.py +474 -0
  43. praisonai/ui/colab_chainlit.py +81 -0
  44. praisonai/ui/components/aicoder.py +269 -0
  45. praisonai/ui/config/.chainlit/config.toml +120 -0
  46. praisonai/ui/config/.chainlit/translations/bn.json +231 -0
  47. praisonai/ui/config/.chainlit/translations/en-US.json +229 -0
  48. praisonai/ui/config/.chainlit/translations/gu.json +231 -0
  49. praisonai/ui/config/.chainlit/translations/he-IL.json +231 -0
  50. praisonai/ui/config/.chainlit/translations/hi.json +231 -0
  51. praisonai/ui/config/.chainlit/translations/kn.json +231 -0
  52. praisonai/ui/config/.chainlit/translations/ml.json +231 -0
  53. praisonai/ui/config/.chainlit/translations/mr.json +231 -0
  54. praisonai/ui/config/.chainlit/translations/ta.json +231 -0
  55. praisonai/ui/config/.chainlit/translations/te.json +231 -0
  56. praisonai/ui/config/.chainlit/translations/zh-CN.json +229 -0
  57. praisonai/ui/config/chainlit.md +1 -0
  58. praisonai/ui/config/translations/bn.json +231 -0
  59. praisonai/ui/config/translations/en-US.json +229 -0
  60. praisonai/ui/config/translations/gu.json +231 -0
  61. praisonai/ui/config/translations/he-IL.json +231 -0
  62. praisonai/ui/config/translations/hi.json +231 -0
  63. praisonai/ui/config/translations/kn.json +231 -0
  64. praisonai/ui/config/translations/ml.json +231 -0
  65. praisonai/ui/config/translations/mr.json +231 -0
  66. praisonai/ui/config/translations/ta.json +231 -0
  67. praisonai/ui/config/translations/te.json +231 -0
  68. praisonai/ui/config/translations/zh-CN.json +229 -0
  69. praisonai/ui/context.py +283 -0
  70. praisonai/ui/db.py +291 -0
  71. praisonai/ui/public/fantasy.svg +3 -0
  72. praisonai/ui/public/game.svg +3 -0
  73. praisonai/ui/public/logo_dark.png +0 -0
  74. praisonai/ui/public/logo_light.png +0 -0
  75. praisonai/ui/public/movie.svg +3 -0
  76. praisonai/ui/public/praison.css +3 -0
  77. praisonai/ui/public/thriller.svg +3 -0
  78. praisonai/ui/realtime.py +476 -0
  79. praisonai/ui/realtimeclient/__init__.py +653 -0
  80. praisonai/ui/realtimeclient/realtimedocs.txt +1484 -0
  81. praisonai/ui/realtimeclient/tools.py +236 -0
  82. praisonai/ui/sql_alchemy.py +707 -0
  83. praisonai/ui/tools.md +133 -0
  84. praisonai/version.py +1 -0
  85. praisonai-2.0.61.dist-info/LICENSE +20 -0
  86. praisonai-2.0.61.dist-info/METADATA +679 -0
  87. praisonai-2.0.61.dist-info/RECORD +89 -0
  88. praisonai-2.0.61.dist-info/WHEEL +4 -0
  89. praisonai-2.0.61.dist-info/entry_points.txt +5 -0
@@ -0,0 +1,679 @@
1
+ Metadata-Version: 2.3
2
+ Name: PraisonAI
3
+ Version: 2.0.61
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.61)
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 Python 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
+ ## Using JavaScript Code
199
+
200
+ ```bash
201
+ npm install praisonai
202
+ export OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxx
203
+ ```
204
+
205
+ ```javascript
206
+ const { Agent } = require('praisonai');
207
+ const agent = new Agent({ instructions: 'You are a helpful AI assistant' });
208
+ agent.start('Write a movie script about a robot in Mars');
209
+ ```
210
+
211
+ ## AI Agents Flow
212
+
213
+ ```mermaid
214
+ graph LR
215
+ %% Define the main flow
216
+ Start([▶ Start]) --> Agent1
217
+ Agent1 --> Process[⚙ Process]
218
+ Process --> Agent2
219
+ Agent2 --> Output([✓ Output])
220
+ Process -.-> Agent1
221
+
222
+ %% Define subgraphs for agents and their tasks
223
+ subgraph Agent1[ ]
224
+ Task1[📋 Task]
225
+ AgentIcon1[🤖 AI Agent]
226
+ Tools1[🔧 Tools]
227
+
228
+ Task1 --- AgentIcon1
229
+ AgentIcon1 --- Tools1
230
+ end
231
+
232
+ subgraph Agent2[ ]
233
+ Task2[📋 Task]
234
+ AgentIcon2[🤖 AI Agent]
235
+ Tools2[🔧 Tools]
236
+
237
+ Task2 --- AgentIcon2
238
+ AgentIcon2 --- Tools2
239
+ end
240
+
241
+ classDef input fill:#8B0000,stroke:#7C90A0,color:#fff
242
+ classDef process fill:#189AB4,stroke:#7C90A0,color:#fff
243
+ classDef tools fill:#2E8B57,stroke:#7C90A0,color:#fff
244
+ classDef transparent fill:none,stroke:none
245
+
246
+ class Start,Output,Task1,Task2 input
247
+ class Process,AgentIcon1,AgentIcon2 process
248
+ class Tools1,Tools2 tools
249
+ class Agent1,Agent2 transparent
250
+ ```
251
+
252
+ ## AI Agents with Tools
253
+
254
+ Create AI agents that can use tools to interact with external systems and perform actions.
255
+
256
+ ```mermaid
257
+ flowchart TB
258
+ subgraph Tools
259
+ direction TB
260
+ T3[Internet Search]
261
+ T1[Code Execution]
262
+ T2[Formatting]
263
+ end
264
+
265
+ Input[Input] ---> Agents
266
+ subgraph Agents
267
+ direction LR
268
+ A1[Agent 1]
269
+ A2[Agent 2]
270
+ A3[Agent 3]
271
+ end
272
+ Agents ---> Output[Output]
273
+
274
+ T3 --> A1
275
+ T1 --> A2
276
+ T2 --> A3
277
+
278
+ style Tools fill:#189AB4,color:#fff
279
+ style Agents fill:#8B0000,color:#fff
280
+ style Input fill:#8B0000,color:#fff
281
+ style Output fill:#8B0000,color:#fff
282
+ ```
283
+
284
+ ## AI Agents with Memory
285
+
286
+ Create AI agents with memory capabilities for maintaining context and information across tasks.
287
+
288
+ ```mermaid
289
+ flowchart TB
290
+ subgraph Memory
291
+ direction TB
292
+ STM[Short Term]
293
+ LTM[Long Term]
294
+ end
295
+
296
+ subgraph Store
297
+ direction TB
298
+ DB[(Vector DB)]
299
+ end
300
+
301
+ Input[Input] ---> Agents
302
+ subgraph Agents
303
+ direction LR
304
+ A1[Agent 1]
305
+ A2[Agent 2]
306
+ A3[Agent 3]
307
+ end
308
+ Agents ---> Output[Output]
309
+
310
+ Memory <--> Store
311
+ Store <--> A1
312
+ Store <--> A2
313
+ Store <--> A3
314
+
315
+ style Memory fill:#189AB4,color:#fff
316
+ style Store fill:#2E8B57,color:#fff
317
+ style Agents fill:#8B0000,color:#fff
318
+ style Input fill:#8B0000,color:#fff
319
+ style Output fill:#8B0000,color:#fff
320
+ ```
321
+
322
+ ## AI Agents with Different Processes
323
+
324
+ ### Sequential Process
325
+
326
+ The simplest form of task execution where tasks are performed one after another.
327
+
328
+ ```mermaid
329
+ graph LR
330
+ Input[Input] --> A1
331
+ subgraph Agents
332
+ direction LR
333
+ A1[Agent 1] --> A2[Agent 2] --> A3[Agent 3]
334
+ end
335
+ A3 --> Output[Output]
336
+
337
+ classDef input fill:#8B0000,stroke:#7C90A0,color:#fff
338
+ classDef process fill:#189AB4,stroke:#7C90A0,color:#fff
339
+ classDef transparent fill:none,stroke:none
340
+
341
+ class Input,Output input
342
+ class A1,A2,A3 process
343
+ class Agents transparent
344
+ ```
345
+
346
+ ### Hierarchical Process
347
+
348
+ Uses a manager agent to coordinate task execution and agent assignments.
349
+
350
+ ```mermaid
351
+ graph TB
352
+ Input[Input] --> Manager
353
+
354
+ subgraph Agents
355
+ Manager[Manager Agent]
356
+
357
+ subgraph Workers
358
+ direction LR
359
+ W1[Worker 1]
360
+ W2[Worker 2]
361
+ W3[Worker 3]
362
+ end
363
+
364
+ Manager --> W1
365
+ Manager --> W2
366
+ Manager --> W3
367
+ end
368
+
369
+ W1 --> Manager
370
+ W2 --> Manager
371
+ W3 --> Manager
372
+ Manager --> Output[Output]
373
+
374
+ classDef input fill:#8B0000,stroke:#7C90A0,color:#fff
375
+ classDef process fill:#189AB4,stroke:#7C90A0,color:#fff
376
+ classDef transparent fill:none,stroke:none
377
+
378
+ class Input,Output input
379
+ class Manager,W1,W2,W3 process
380
+ class Agents,Workers transparent
381
+ ```
382
+
383
+ ### Workflow Process
384
+
385
+ Advanced process type supporting complex task relationships and conditional execution.
386
+
387
+ ```mermaid
388
+ graph LR
389
+ Input[Input] --> Start
390
+
391
+ subgraph Workflow
392
+ direction LR
393
+ Start[Start] --> C1{Condition}
394
+ C1 --> |Yes| A1[Agent 1]
395
+ C1 --> |No| A2[Agent 2]
396
+ A1 --> Join
397
+ A2 --> Join
398
+ Join --> A3[Agent 3]
399
+ end
400
+
401
+ A3 --> Output[Output]
402
+
403
+ classDef input fill:#8B0000,stroke:#7C90A0,color:#fff
404
+ classDef process fill:#189AB4,stroke:#7C90A0,color:#fff
405
+ classDef decision fill:#2E8B57,stroke:#7C90A0,color:#fff
406
+ classDef transparent fill:none,stroke:none
407
+
408
+ class Input,Output input
409
+ class Start,A1,A2,A3,Join process
410
+ class C1 decision
411
+ class Workflow transparent
412
+ ```
413
+
414
+ #### Agentic Routing Workflow
415
+
416
+ Create AI agents that can dynamically route tasks to specialized LLM instances.
417
+
418
+ ```mermaid
419
+ flowchart LR
420
+ In[In] --> Router[LLM Call Router]
421
+ Router --> LLM1[LLM Call 1]
422
+ Router --> LLM2[LLM Call 2]
423
+ Router --> LLM3[LLM Call 3]
424
+ LLM1 --> Out[Out]
425
+ LLM2 --> Out
426
+ LLM3 --> Out
427
+
428
+ style In fill:#8B0000,color:#fff
429
+ style Router fill:#2E8B57,color:#fff
430
+ style LLM1 fill:#2E8B57,color:#fff
431
+ style LLM2 fill:#2E8B57,color:#fff
432
+ style LLM3 fill:#2E8B57,color:#fff
433
+ style Out fill:#8B0000,color:#fff
434
+ ```
435
+
436
+ #### Agentic Orchestrator Worker
437
+
438
+ Create AI agents that orchestrate and distribute tasks among specialized workers.
439
+
440
+ ```mermaid
441
+ flowchart LR
442
+ In[In] --> Router[LLM Call Router]
443
+ Router --> LLM1[LLM Call 1]
444
+ Router --> LLM2[LLM Call 2]
445
+ Router --> LLM3[LLM Call 3]
446
+ LLM1 --> Synthesizer[Synthesizer]
447
+ LLM2 --> Synthesizer
448
+ LLM3 --> Synthesizer
449
+ Synthesizer --> Out[Out]
450
+
451
+ style In fill:#8B0000,color:#fff
452
+ style Router fill:#2E8B57,color:#fff
453
+ style LLM1 fill:#2E8B57,color:#fff
454
+ style LLM2 fill:#2E8B57,color:#fff
455
+ style LLM3 fill:#2E8B57,color:#fff
456
+ style Synthesizer fill:#2E8B57,color:#fff
457
+ style Out fill:#8B0000,color:#fff
458
+ ```
459
+
460
+ #### Agentic Autonomous Workflow
461
+
462
+ Create AI agents that can autonomously monitor, act, and adapt based on environment feedback.
463
+
464
+ ```mermaid
465
+ flowchart LR
466
+ Human[Human] <--> LLM[LLM Call]
467
+ LLM -->|ACTION| Environment[Environment]
468
+ Environment -->|FEEDBACK| LLM
469
+ LLM --> Stop[Stop]
470
+
471
+ style Human fill:#8B0000,color:#fff
472
+ style LLM fill:#2E8B57,color:#fff
473
+ style Environment fill:#8B0000,color:#fff
474
+ style Stop fill:#333,color:#fff
475
+ ```
476
+
477
+ #### Agentic Parallelization
478
+
479
+ Create AI agents that can execute tasks in parallel for improved performance.
480
+
481
+ ```mermaid
482
+ flowchart LR
483
+ In[In] --> LLM2[LLM Call 2]
484
+ In --> LLM1[LLM Call 1]
485
+ In --> LLM3[LLM Call 3]
486
+ LLM1 --> Aggregator[Aggregator]
487
+ LLM2 --> Aggregator
488
+ LLM3 --> Aggregator
489
+ Aggregator --> Out[Out]
490
+
491
+ style In fill:#8B0000,color:#fff
492
+ style LLM1 fill:#2E8B57,color:#fff
493
+ style LLM2 fill:#2E8B57,color:#fff
494
+ style LLM3 fill:#2E8B57,color:#fff
495
+ style Aggregator fill:#fff,color:#000
496
+ style Out fill:#8B0000,color:#fff
497
+ ```
498
+
499
+ #### Agentic Prompt Chaining
500
+
501
+ Create AI agents with sequential prompt chaining for complex workflows.
502
+
503
+ ```mermaid
504
+ flowchart LR
505
+ In[In] --> LLM1[LLM Call 1] --> Gate{Gate}
506
+ Gate -->|Pass| LLM2[LLM Call 2] -->|Output 2| LLM3[LLM Call 3] --> Out[Out]
507
+ Gate -->|Fail| Exit[Exit]
508
+
509
+ style In fill:#8B0000,color:#fff
510
+ style LLM1 fill:#2E8B57,color:#fff
511
+ style LLM2 fill:#2E8B57,color:#fff
512
+ style LLM3 fill:#2E8B57,color:#fff
513
+ style Out fill:#8B0000,color:#fff
514
+ style Exit fill:#8B0000,color:#fff
515
+ ```
516
+
517
+ #### Agentic Evaluator Optimizer
518
+
519
+ Create AI agents that can generate and optimize solutions through iterative feedback.
520
+
521
+ ```mermaid
522
+ flowchart LR
523
+ In[In] --> Generator[LLM Call Generator]
524
+ Generator -->|SOLUTION| Evaluator[LLM Call Evaluator] -->|ACCEPTED| Out[Out]
525
+ Evaluator -->|REJECTED + FEEDBACK| Generator
526
+
527
+ style In fill:#8B0000,color:#fff
528
+ style Generator fill:#2E8B57,color:#fff
529
+ style Evaluator fill:#2E8B57,color:#fff
530
+ style Out fill:#8B0000,color:#fff
531
+ ```
532
+
533
+ #### Repetitive Agents
534
+
535
+ Create AI agents that can efficiently handle repetitive tasks through automated loops.
536
+
537
+ ```mermaid
538
+ flowchart LR
539
+ In[Input] --> LoopAgent[("Looping Agent")]
540
+ LoopAgent --> Task[Task]
541
+ Task --> |Next iteration| LoopAgent
542
+ Task --> |Done| Out[Output]
543
+
544
+ style In fill:#8B0000,color:#fff
545
+ style LoopAgent fill:#2E8B57,color:#fff,shape:circle
546
+ style Task fill:#2E8B57,color:#fff
547
+ style Out fill:#8B0000,color:#fff
548
+ ```
549
+
550
+ ## Adding Models
551
+
552
+ <div align="center">
553
+ <a href="https://docs.praison.ai/models">
554
+ <p align="center">
555
+ <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" />
556
+ </p>
557
+ </a>
558
+ </div>
559
+
560
+ ## Ollama Integration
561
+ ```bash
562
+ export OPENAI_BASE_URL=http://localhost:11434/v1
563
+ ```
564
+
565
+ ## Groq Integration
566
+ Replace xxxx with Groq API KEY:
567
+ ```bash
568
+ export OPENAI_API_KEY=xxxxxxxxxxx
569
+ export OPENAI_BASE_URL=https://api.groq.com/openai/v1
570
+ ```
571
+
572
+ ## No Code Options
573
+
574
+ ## Agents Playbook
575
+
576
+ ### Simple Playbook Example
577
+
578
+ Create `agents.yaml` file and add the code below:
579
+
580
+ ```yaml
581
+ framework: praisonai
582
+ topic: Artificial Intelligence
583
+ roles:
584
+ screenwriter:
585
+ backstory: "Skilled in crafting scripts with engaging dialogue about {topic}."
586
+ goal: Create scripts from concepts.
587
+ role: Screenwriter
588
+ tasks:
589
+ scriptwriting_task:
590
+ description: "Develop scripts with compelling characters and dialogue about {topic}."
591
+ expected_output: "Complete script ready for production."
592
+ ```
593
+
594
+ *To run the playbook:*
595
+ ```bash
596
+ praisonai agents.yaml
597
+ ```
598
+
599
+ ## Use 100+ Models
600
+
601
+ - https://docs.praison.ai/models/
602
+ <div align="center">
603
+ <a href="https://docs.praison.ai">
604
+ <p align="center">
605
+ <img src="https://img.shields.io/badge/📚_Documentation-Visit_docs.praison.ai-blue?style=for-the-badge&logo=bookstack&logoColor=white" alt="Documentation" />
606
+ </p>
607
+ </a>
608
+ </div>
609
+
610
+ ## Development:
611
+
612
+ Below is used for development only.
613
+
614
+ ### Using uv
615
+ ```bash
616
+ # Install uv if you haven't already
617
+ pip install uv
618
+
619
+ # Install from requirements
620
+ uv pip install -r pyproject.toml
621
+
622
+ # Install with extras
623
+ uv pip install -r pyproject.toml --extra code
624
+ uv pip install -r pyproject.toml --extra "crewai,autogen"
625
+ ```
626
+
627
+ ## Contributing
628
+
629
+ - Fork on GitHub: Use the "Fork" button on the repository page.
630
+ - Clone your fork: `git clone https://github.com/yourusername/praisonAI.git`
631
+ - Create a branch: `git checkout -b new-feature`
632
+ - Make changes and commit: `git commit -am "Add some feature"`
633
+ - Push to your fork: `git push origin new-feature`
634
+ - Submit a pull request via GitHub's web interface.
635
+ - Await feedback from project maintainers.
636
+
637
+ ## Other Features
638
+
639
+ - 🔄 Use CrewAI or AutoGen Framework
640
+ - 💻 Chat with ENTIRE Codebase
641
+ - 🎨 Interactive UIs
642
+ - 📄 YAML-based Configuration
643
+ - 🛠️ Custom Tool Integration
644
+ - 🔍 Internet Search Capability (using Crawl4AI and Tavily)
645
+ - 🖼️ Vision Language Model (VLM) Support
646
+ - 🎙️ Real-time Voice Interaction
647
+
648
+ ## Star History
649
+
650
+ [![Star History Chart](https://api.star-history.com/svg?repos=MervinPraison/PraisonAI&type=Date)](https://docs.praison.ai)
651
+
652
+ ## Video Tutorials
653
+
654
+ | Topic | Video |
655
+ |-------|--------|
656
+ | AI Agents with Self Reflection | [![Self Reflection](https://img.youtube.com/vi/vLXobEN2Vc8/0.jpg)](https://www.youtube.com/watch?v=vLXobEN2Vc8) |
657
+ | Reasoning Data Generating Agent | [![Reasoning Data](https://img.youtube.com/vi/fUT332Y2zA8/0.jpg)](https://www.youtube.com/watch?v=fUT332Y2zA8) |
658
+ | AI Agents with Reasoning | [![Reasoning](https://img.youtube.com/vi/KNDVWGN3TpM/0.jpg)](https://www.youtube.com/watch?v=KNDVWGN3TpM) |
659
+ | Multimodal AI Agents | [![Multimodal](https://img.youtube.com/vi/hjAWmUT1qqY/0.jpg)](https://www.youtube.com/watch?v=hjAWmUT1qqY) |
660
+ | AI Agents Workflow | [![Workflow](https://img.youtube.com/vi/yWTH44QPl2A/0.jpg)](https://www.youtube.com/watch?v=yWTH44QPl2A) |
661
+ | Async AI Agents | [![Async](https://img.youtube.com/vi/VhVQfgo00LE/0.jpg)](https://www.youtube.com/watch?v=VhVQfgo00LE) |
662
+ | Mini AI Agents | [![Mini](https://img.youtube.com/vi/OkvYp5aAGSg/0.jpg)](https://www.youtube.com/watch?v=OkvYp5aAGSg) |
663
+ | AI Agents with Memory | [![Memory](https://img.youtube.com/vi/1hVfVxvPnnQ/0.jpg)](https://www.youtube.com/watch?v=1hVfVxvPnnQ) |
664
+ | Repetitive Agents | [![Repetitive](https://img.youtube.com/vi/dAYGxsjDOPg/0.jpg)](https://www.youtube.com/watch?v=dAYGxsjDOPg) |
665
+ | Introduction | [![Introduction](https://img.youtube.com/vi/Fn1lQjC0GO0/0.jpg)](https://www.youtube.com/watch?v=Fn1lQjC0GO0) |
666
+ | Tools Overview | [![Tools Overview](https://img.youtube.com/vi/XaQRgRpV7jo/0.jpg)](https://www.youtube.com/watch?v=XaQRgRpV7jo) |
667
+ | Custom Tools | [![Custom Tools](https://img.youtube.com/vi/JSU2Rndh06c/0.jpg)](https://www.youtube.com/watch?v=JSU2Rndh06c) |
668
+ | Firecrawl Integration | [![Firecrawl](https://img.youtube.com/vi/UoqUDcLcOYo/0.jpg)](https://www.youtube.com/watch?v=UoqUDcLcOYo) |
669
+ | User Interface | [![UI](https://img.youtube.com/vi/tg-ZjNl3OCg/0.jpg)](https://www.youtube.com/watch?v=tg-ZjNl3OCg) |
670
+ | Crawl4AI Integration | [![Crawl4AI](https://img.youtube.com/vi/KAvuVUh0XU8/0.jpg)](https://www.youtube.com/watch?v=KAvuVUh0XU8) |
671
+ | Chat Interface | [![Chat](https://img.youtube.com/vi/sw3uDqn2h1Y/0.jpg)](https://www.youtube.com/watch?v=sw3uDqn2h1Y) |
672
+ | Code Interface | [![Code](https://img.youtube.com/vi/_5jQayO-MQY/0.jpg)](https://www.youtube.com/watch?v=_5jQayO-MQY) |
673
+ | Mem0 Integration | [![Mem0](https://img.youtube.com/vi/KIGSgRxf1cY/0.jpg)](https://www.youtube.com/watch?v=KIGSgRxf1cY) |
674
+ | Training | [![Training](https://img.youtube.com/vi/aLawE8kwCrI/0.jpg)](https://www.youtube.com/watch?v=aLawE8kwCrI) |
675
+ | Realtime Voice Interface | [![Realtime](https://img.youtube.com/vi/frRHfevTCSw/0.jpg)](https://www.youtube.com/watch?v=frRHfevTCSw) |
676
+ | Call Interface | [![Call](https://img.youtube.com/vi/m1cwrUG2iAk/0.jpg)](https://www.youtube.com/watch?v=m1cwrUG2iAk) |
677
+ | Reasoning Extract Agents | [![Reasoning Extract](https://img.youtube.com/vi/2PPamsADjJA/0.jpg)](https://www.youtube.com/watch?v=2PPamsADjJA) |
678
+
679
+