PraisonAI 1.0.0__tar.gz → 1.0.2__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 (53) hide show
  1. {praisonai-1.0.0 → praisonai-1.0.2}/PKG-INFO +28 -3
  2. {praisonai-1.0.0 → praisonai-1.0.2}/README.md +23 -0
  3. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/cli.py +22 -4
  4. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/deploy.py +1 -1
  5. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/ui/chat.py +6 -1
  6. {praisonai-1.0.0 → praisonai-1.0.2}/pyproject.toml +21 -4
  7. {praisonai-1.0.0 → praisonai-1.0.2}/LICENSE +0 -0
  8. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/__init__.py +0 -0
  9. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/__main__.py +0 -0
  10. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/agents_generator.py +0 -0
  11. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/api/call.py +0 -0
  12. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/auto.py +0 -0
  13. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/chainlit_ui.py +0 -0
  14. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/inbuilt_tools/__init__.py +0 -0
  15. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  16. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/inc/__init__.py +0 -0
  17. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/inc/config.py +0 -0
  18. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/inc/models.py +0 -0
  19. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/public/android-chrome-192x192.png +0 -0
  20. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/public/android-chrome-512x512.png +0 -0
  21. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/public/apple-touch-icon.png +0 -0
  22. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/public/fantasy.svg +0 -0
  23. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/public/favicon-16x16.png +0 -0
  24. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/public/favicon-32x32.png +0 -0
  25. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/public/favicon.ico +0 -0
  26. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/public/game.svg +0 -0
  27. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/public/logo_dark.png +0 -0
  28. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/public/logo_light.png +0 -0
  29. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/public/movie.svg +0 -0
  30. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/public/thriller.svg +0 -0
  31. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/setup/__init__.py +0 -0
  32. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/setup/build.py +0 -0
  33. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/setup/config.yaml +0 -0
  34. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/setup/post_install.py +0 -0
  35. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/setup/setup_conda_env.py +0 -0
  36. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/setup/setup_conda_env.sh +0 -0
  37. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/setup.py +0 -0
  38. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/test.py +0 -0
  39. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/train.py +0 -0
  40. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/ui/code.py +0 -0
  41. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/ui/context.py +0 -0
  42. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/ui/public/fantasy.svg +0 -0
  43. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/ui/public/game.svg +0 -0
  44. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/ui/public/logo_dark.png +0 -0
  45. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/ui/public/logo_light.png +0 -0
  46. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/ui/public/movie.svg +0 -0
  47. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/ui/public/thriller.svg +0 -0
  48. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/ui/realtime.py +0 -0
  49. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/ui/realtimeclient/__init__.py +0 -0
  50. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/ui/realtimeclient/realtimedocs.txt +0 -0
  51. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/ui/realtimeclient/tools.py +0 -0
  52. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/ui/sql_alchemy.py +0 -0
  53. {praisonai-1.0.0 → praisonai-1.0.2}/praisonai/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PraisonAI
3
- Version: 1.0.0
3
+ Version: 1.0.2
4
4
  Summary: PraisonAI application combines AutoGen and CrewAI or similar frameworks into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customization, and efficient human-agent collaboration.
5
5
  Author: Mervin Praison
6
6
  Requires-Python: >=3.10,<3.13
@@ -34,21 +34,23 @@ Requires-Dist: flaml[automl] (>=2.3.1) ; extra == "call"
34
34
  Requires-Dist: flask (>=3.0.0) ; extra == "api"
35
35
  Requires-Dist: gradio (>=4.26.0) ; extra == "gradio"
36
36
  Requires-Dist: greenlet (>=3.0.3) ; extra == "chat" or extra == "code" or extra == "realtime"
37
- Requires-Dist: instructor (>=0.4.8) ; extra == "crewai" or extra == "autogen"
37
+ Requires-Dist: instructor (>=0.4.8) ; extra == "chat" or extra == "call" or extra == "crewai" or extra == "autogen"
38
38
  Requires-Dist: langchain-anthropic (>=0.1.13) ; extra == "anthropic"
39
39
  Requires-Dist: langchain-cohere (>=0.1.4) ; extra == "cohere"
40
40
  Requires-Dist: langchain-google-genai (>=1.0.4) ; extra == "google"
41
41
  Requires-Dist: langchain-openai (>=0.1.7) ; extra == "openai"
42
42
  Requires-Dist: litellm (>=1.41.8) ; extra == "chat" or extra == "code" or extra == "realtime"
43
43
  Requires-Dist: markdown (>=3.5)
44
+ Requires-Dist: openai (>=1.54.0) ; extra == "call"
44
45
  Requires-Dist: playwright (>=1.47.0) ; extra == "chat" or extra == "code"
45
46
  Requires-Dist: plotly (>=5.24.0) ; extra == "realtime"
46
47
  Requires-Dist: praisonai-tools (>=0.0.7) ; extra == "crewai" or extra == "autogen"
47
48
  Requires-Dist: pyautogen (>=0.2.19) ; extra == "autogen"
49
+ Requires-Dist: pydantic (<=2.10.1) ; extra == "chat" or extra == "code"
48
50
  Requires-Dist: pyngrok (>=1.4.0) ; extra == "call"
49
51
  Requires-Dist: pyparsing (>=3.0.0)
50
52
  Requires-Dist: python-dotenv (>=0.19.0) ; extra == "call"
51
- Requires-Dist: rich (>=13.7) ; extra == "call"
53
+ Requires-Dist: rich (>=13.7) ; extra == "chat" or extra == "call"
52
54
  Requires-Dist: sqlalchemy (>=2.0.36) ; extra == "chat" or extra == "code" or extra == "realtime"
53
55
  Requires-Dist: tavily-python (==0.5.0) ; extra == "chat" or extra == "code" or extra == "realtime"
54
56
  Requires-Dist: twilio (>=7.0.0) ; extra == "call"
@@ -77,6 +79,8 @@ Description-Content-Type: text/markdown
77
79
 
78
80
  # Praison AI
79
81
 
82
+ <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>
83
+
80
84
  </div>
81
85
 
82
86
  Praison AI, leveraging both AutoGen and CrewAI or any other agent framework, represents a low-code, centralised framework designed to simplify the creation and orchestration of multi-agent systems for various LLM applications, emphasizing ease of use, customization, and human-agent interaction.
@@ -455,4 +459,25 @@ This configuration ensures that your development dependencies are correctly cate
455
459
 
456
460
  Praison AI is an open-sourced software licensed under the **[MIT license](https://opensource.org/licenses/MIT)**.
457
461
 
462
+ ## Video Tutorials
463
+
464
+ | Topic | Video |
465
+ |-------|--------|
466
+ | Introduction | [![Introduction](https://img.youtube.com/vi/Fn1lQjC0GO0/0.jpg)](https://www.youtube.com/watch?v=Fn1lQjC0GO0) |
467
+ | Tools Overview | [![Tools Overview](https://img.youtube.com/vi/XaQRgRpV7jo/0.jpg)](https://www.youtube.com/watch?v=XaQRgRpV7jo) |
468
+ | Custom Tools | [![Custom Tools](https://img.youtube.com/vi/JSU2Rndh06c/0.jpg)](https://www.youtube.com/watch?v=JSU2Rndh06c) |
469
+ | Firecrawl Integration | [![Firecrawl](https://img.youtube.com/vi/UoqUDcLcOYo/0.jpg)](https://www.youtube.com/watch?v=UoqUDcLcOYo) |
470
+ | User Interface | [![UI](https://img.youtube.com/vi/tg-ZjNl3OCg/0.jpg)](https://www.youtube.com/watch?v=tg-ZjNl3OCg) |
471
+ | Crawl4AI Integration | [![Crawl4AI](https://img.youtube.com/vi/KAvuVUh0XU8/0.jpg)](https://www.youtube.com/watch?v=KAvuVUh0XU8) |
472
+ | Chat Interface | [![Chat](https://img.youtube.com/vi/sw3uDqn2h1Y/0.jpg)](https://www.youtube.com/watch?v=sw3uDqn2h1Y) |
473
+ | Code Interface | [![Code](https://img.youtube.com/vi/_5jQayO-MQY/0.jpg)](https://www.youtube.com/watch?v=_5jQayO-MQY) |
474
+ | Mem0 Integration | [![Mem0](https://img.youtube.com/vi/KIGSgRxf1cY/0.jpg)](https://www.youtube.com/watch?v=KIGSgRxf1cY) |
475
+ | Training | [![Training](https://img.youtube.com/vi/aLawE8kwCrI/0.jpg)](https://www.youtube.com/watch?v=aLawE8kwCrI) |
476
+ | Realtime Voice Interface | [![Realtime](https://img.youtube.com/vi/frRHfevTCSw/0.jpg)](https://www.youtube.com/watch?v=frRHfevTCSw) |
477
+ | Call Interface | [![Call](https://img.youtube.com/vi/m1cwrUG2iAk/0.jpg)](https://www.youtube.com/watch?v=m1cwrUG2iAk) |
478
+
479
+ ## License
480
+
481
+ Praison AI is an open-sourced software licensed under the **[MIT license](https://opensource.org/licenses/MIT)**.
482
+
458
483
 
@@ -16,6 +16,8 @@
16
16
 
17
17
  # Praison AI
18
18
 
19
+ <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>
20
+
19
21
  </div>
20
22
 
21
23
  Praison AI, leveraging both AutoGen and CrewAI or any other agent framework, represents a low-code, centralised framework designed to simplify the creation and orchestration of multi-agent systems for various LLM applications, emphasizing ease of use, customization, and human-agent interaction.
@@ -394,3 +396,24 @@ This configuration ensures that your development dependencies are correctly cate
394
396
 
395
397
  Praison AI is an open-sourced software licensed under the **[MIT license](https://opensource.org/licenses/MIT)**.
396
398
 
399
+ ## Video Tutorials
400
+
401
+ | Topic | Video |
402
+ |-------|--------|
403
+ | Introduction | [![Introduction](https://img.youtube.com/vi/Fn1lQjC0GO0/0.jpg)](https://www.youtube.com/watch?v=Fn1lQjC0GO0) |
404
+ | Tools Overview | [![Tools Overview](https://img.youtube.com/vi/XaQRgRpV7jo/0.jpg)](https://www.youtube.com/watch?v=XaQRgRpV7jo) |
405
+ | Custom Tools | [![Custom Tools](https://img.youtube.com/vi/JSU2Rndh06c/0.jpg)](https://www.youtube.com/watch?v=JSU2Rndh06c) |
406
+ | Firecrawl Integration | [![Firecrawl](https://img.youtube.com/vi/UoqUDcLcOYo/0.jpg)](https://www.youtube.com/watch?v=UoqUDcLcOYo) |
407
+ | User Interface | [![UI](https://img.youtube.com/vi/tg-ZjNl3OCg/0.jpg)](https://www.youtube.com/watch?v=tg-ZjNl3OCg) |
408
+ | Crawl4AI Integration | [![Crawl4AI](https://img.youtube.com/vi/KAvuVUh0XU8/0.jpg)](https://www.youtube.com/watch?v=KAvuVUh0XU8) |
409
+ | Chat Interface | [![Chat](https://img.youtube.com/vi/sw3uDqn2h1Y/0.jpg)](https://www.youtube.com/watch?v=sw3uDqn2h1Y) |
410
+ | Code Interface | [![Code](https://img.youtube.com/vi/_5jQayO-MQY/0.jpg)](https://www.youtube.com/watch?v=_5jQayO-MQY) |
411
+ | Mem0 Integration | [![Mem0](https://img.youtube.com/vi/KIGSgRxf1cY/0.jpg)](https://www.youtube.com/watch?v=KIGSgRxf1cY) |
412
+ | Training | [![Training](https://img.youtube.com/vi/aLawE8kwCrI/0.jpg)](https://www.youtube.com/watch?v=aLawE8kwCrI) |
413
+ | Realtime Voice Interface | [![Realtime](https://img.youtube.com/vi/frRHfevTCSw/0.jpg)](https://www.youtube.com/watch?v=frRHfevTCSw) |
414
+ | Call Interface | [![Call](https://img.youtube.com/vi/m1cwrUG2iAk/0.jpg)](https://www.youtube.com/watch?v=m1cwrUG2iAk) |
415
+
416
+ ## License
417
+
418
+ Praison AI is an open-sourced software licensed under the **[MIT license](https://opensource.org/licenses/MIT)**.
419
+
@@ -26,7 +26,9 @@ CREWAI_AVAILABLE = False
26
26
  AUTOGEN_AVAILABLE = False
27
27
 
28
28
  try:
29
- os.environ["CHAINLIT_APP_ROOT"] = os.path.join(os.path.expanduser("~"), ".praison")
29
+ # Set CHAINLIT_APP_ROOT only if it doesn't exist
30
+ if "CHAINLIT_APP_ROOT" not in os.environ:
31
+ os.environ["CHAINLIT_APP_ROOT"] = os.path.join(os.path.expanduser("~"), ".praison")
30
32
  from chainlit.cli import chainlit_run
31
33
  CHAINLIT_AVAILABLE = True
32
34
  except ImportError:
@@ -296,6 +298,19 @@ class PraisonAI:
296
298
  if args.command == 'call':
297
299
  args.call = True
298
300
 
301
+ # Handle both command and flag versions for call
302
+ if args.command == 'call' or args.call:
303
+ if not CALL_MODULE_AVAILABLE:
304
+ print("[red]ERROR: Call feature is not installed. Install with:[/red]")
305
+ print("\npip install \"praisonai[call]\"\n")
306
+ sys.exit(1)
307
+
308
+ call_args = []
309
+ if args.public:
310
+ call_args.append('--public')
311
+ call_module.main(call_args)
312
+ sys.exit(0)
313
+
299
314
  # Handle special commands first
300
315
  special_commands = ['chat', 'code', 'call', 'realtime', 'train', 'ui']
301
316
 
@@ -376,7 +391,8 @@ class PraisonAI:
376
391
  import praisonai
377
392
  os.environ["CHAINLIT_PORT"] = "8084"
378
393
  root_path = os.path.join(os.path.expanduser("~"), ".praison")
379
- os.environ["CHAINLIT_APP_ROOT"] = root_path
394
+ if "CHAINLIT_APP_ROOT" not in os.environ:
395
+ os.environ["CHAINLIT_APP_ROOT"] = root_path
380
396
  public_folder = os.path.join(os.path.dirname(praisonai.__file__), 'public')
381
397
  if not os.path.exists(os.path.join(root_path, "public")):
382
398
  if os.path.exists(public_folder):
@@ -399,7 +415,8 @@ class PraisonAI:
399
415
  import praisonai
400
416
  os.environ["CHAINLIT_PORT"] = "8086"
401
417
  root_path = os.path.join(os.path.expanduser("~"), ".praison")
402
- os.environ["CHAINLIT_APP_ROOT"] = root_path
418
+ if "CHAINLIT_APP_ROOT" not in os.environ:
419
+ os.environ["CHAINLIT_APP_ROOT"] = root_path
403
420
  public_folder = os.path.join(os.path.dirname(__file__), 'public')
404
421
  if not os.path.exists(os.path.join(root_path, "public")):
405
422
  if os.path.exists(public_folder):
@@ -468,7 +485,8 @@ class PraisonAI:
468
485
  import praisonai
469
486
  os.environ["CHAINLIT_PORT"] = "8088"
470
487
  root_path = os.path.join(os.path.expanduser("~"), ".praison")
471
- os.environ["CHAINLIT_APP_ROOT"] = root_path
488
+ if "CHAINLIT_APP_ROOT" not in os.environ:
489
+ os.environ["CHAINLIT_APP_ROOT"] = root_path
472
490
  public_folder = os.path.join(os.path.dirname(praisonai.__file__), 'public')
473
491
  if not os.path.exists(os.path.join(root_path, "public")):
474
492
  if os.path.exists(public_folder):
@@ -56,7 +56,7 @@ class CloudDeployer:
56
56
  file.write("FROM python:3.11-slim\n")
57
57
  file.write("WORKDIR /app\n")
58
58
  file.write("COPY . .\n")
59
- file.write("RUN pip install flask praisonai==1.0.0 gunicorn markdown\n")
59
+ file.write("RUN pip install flask praisonai==1.0.2 gunicorn markdown\n")
60
60
  file.write("EXPOSE 8080\n")
61
61
  file.write('CMD ["gunicorn", "-b", "0.0.0.0:8080", "api:app"]\n')
62
62
 
@@ -175,7 +175,12 @@ initialize_db()
175
175
 
176
176
  deleted_thread_ids = [] # type: List[str]
177
177
 
178
- cl_data._data_layer = SQLAlchemyDataLayer(conninfo=f"sqlite+aiosqlite:///{DB_PATH}")
178
+ # Get database connection string from environment variable or use SQLite as default
179
+ DB_URL = os.getenv("DATABASE_URL", f"sqlite+aiosqlite:///{DB_PATH}")
180
+ cl_data._data_layer = SQLAlchemyDataLayer(
181
+ conninfo=DB_URL,
182
+ ssl_require=bool(os.getenv("DATABASE_SSL", False))
183
+ )
179
184
 
180
185
  # Set Tavily API key
181
186
  tavily_api_key = os.getenv("TAVILY_API_KEY")
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "PraisonAI"
3
- version = "1.0.0"
3
+ version = "1.0.2"
4
4
  description = "PraisonAI application combines AutoGen and CrewAI or similar frameworks into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customization, and efficient human-agent collaboration."
5
5
  authors = ["Mervin Praison"]
6
6
  license = ""
@@ -47,6 +47,8 @@ flaml = {version = ">=2.3.1", extras = ["automl"], optional = true}
47
47
  pyngrok = {version = ">=1.4.0", optional = true}
48
48
  sqlalchemy = {version = ">=2.0.36", optional = true}
49
49
  playwright = {version = ">=1.47.0", optional = true}
50
+ openai = {version = ">=1.54.0", optional = true}
51
+ pydantic = {version = "<=2.10.1", optional = true}
50
52
 
51
53
  [tool.poetry.group.docs.dependencies]
52
54
  mkdocs = "*"
@@ -124,7 +126,10 @@ chat = [
124
126
  "tavily-python",
125
127
  "crawl4ai",
126
128
  "sqlalchemy",
127
- "playwright"
129
+ "playwright",
130
+ "rich",
131
+ "instructor",
132
+ "pydantic"
128
133
  ]
129
134
  code = [
130
135
  "chainlit",
@@ -134,7 +139,8 @@ code = [
134
139
  "tavily-python",
135
140
  "crawl4ai",
136
141
  "sqlalchemy",
137
- "playwright"
142
+ "playwright",
143
+ "pydantic"
138
144
  ]
139
145
  train = ["setup-conda-env"]
140
146
  realtime = [
@@ -150,7 +156,18 @@ realtime = [
150
156
  "duckduckgo_search",
151
157
  "sqlalchemy"
152
158
  ]
153
- call = ["twilio", "fastapi", "uvicorn", "websockets", "python-dotenv", "flaml", "pyngrok", "rich"]
159
+ call = [
160
+ "twilio",
161
+ "fastapi",
162
+ "uvicorn",
163
+ "websockets",
164
+ "python-dotenv",
165
+ "flaml",
166
+ "pyngrok",
167
+ "rich",
168
+ "openai",
169
+ "instructor"
170
+ ]
154
171
  crewai = ["crewai", "praisonai-tools", "instructor"]
155
172
  autogen = ["pyautogen", "praisonai-tools", "instructor", "crewai"]
156
173
 
File without changes
File without changes
File without changes
File without changes
File without changes