PraisonAI 1.0.1__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.1 → praisonai-1.0.2}/PKG-INFO +6 -3
  2. {praisonai-1.0.1 → praisonai-1.0.2}/README.md +2 -0
  3. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/cli.py +9 -4
  4. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/deploy.py +1 -1
  5. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/ui/chat.py +6 -1
  6. {praisonai-1.0.1 → praisonai-1.0.2}/pyproject.toml +8 -3
  7. {praisonai-1.0.1 → praisonai-1.0.2}/LICENSE +0 -0
  8. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/__init__.py +0 -0
  9. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/__main__.py +0 -0
  10. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/agents_generator.py +0 -0
  11. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/api/call.py +0 -0
  12. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/auto.py +0 -0
  13. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/chainlit_ui.py +0 -0
  14. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/inbuilt_tools/__init__.py +0 -0
  15. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  16. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/inc/__init__.py +0 -0
  17. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/inc/config.py +0 -0
  18. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/inc/models.py +0 -0
  19. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/public/android-chrome-192x192.png +0 -0
  20. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/public/android-chrome-512x512.png +0 -0
  21. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/public/apple-touch-icon.png +0 -0
  22. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/public/fantasy.svg +0 -0
  23. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/public/favicon-16x16.png +0 -0
  24. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/public/favicon-32x32.png +0 -0
  25. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/public/favicon.ico +0 -0
  26. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/public/game.svg +0 -0
  27. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/public/logo_dark.png +0 -0
  28. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/public/logo_light.png +0 -0
  29. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/public/movie.svg +0 -0
  30. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/public/thriller.svg +0 -0
  31. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/setup/__init__.py +0 -0
  32. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/setup/build.py +0 -0
  33. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/setup/config.yaml +0 -0
  34. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/setup/post_install.py +0 -0
  35. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/setup/setup_conda_env.py +0 -0
  36. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/setup/setup_conda_env.sh +0 -0
  37. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/setup.py +0 -0
  38. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/test.py +0 -0
  39. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/train.py +0 -0
  40. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/ui/code.py +0 -0
  41. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/ui/context.py +0 -0
  42. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/ui/public/fantasy.svg +0 -0
  43. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/ui/public/game.svg +0 -0
  44. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/ui/public/logo_dark.png +0 -0
  45. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/ui/public/logo_light.png +0 -0
  46. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/ui/public/movie.svg +0 -0
  47. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/ui/public/thriller.svg +0 -0
  48. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/ui/realtime.py +0 -0
  49. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/ui/realtimeclient/__init__.py +0 -0
  50. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/ui/realtimeclient/realtimedocs.txt +0 -0
  51. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/ui/realtimeclient/tools.py +0 -0
  52. {praisonai-1.0.1 → praisonai-1.0.2}/praisonai/ui/sql_alchemy.py +0 -0
  53. {praisonai-1.0.1 → 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.1
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,7 +34,7 @@ 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 == "call" or 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"
@@ -46,10 +46,11 @@ Requires-Dist: playwright (>=1.47.0) ; extra == "chat" or extra == "code"
46
46
  Requires-Dist: plotly (>=5.24.0) ; extra == "realtime"
47
47
  Requires-Dist: praisonai-tools (>=0.0.7) ; extra == "crewai" or extra == "autogen"
48
48
  Requires-Dist: pyautogen (>=0.2.19) ; extra == "autogen"
49
+ Requires-Dist: pydantic (<=2.10.1) ; extra == "chat" or extra == "code"
49
50
  Requires-Dist: pyngrok (>=1.4.0) ; extra == "call"
50
51
  Requires-Dist: pyparsing (>=3.0.0)
51
52
  Requires-Dist: python-dotenv (>=0.19.0) ; extra == "call"
52
- Requires-Dist: rich (>=13.7) ; extra == "call"
53
+ Requires-Dist: rich (>=13.7) ; extra == "chat" or extra == "call"
53
54
  Requires-Dist: sqlalchemy (>=2.0.36) ; extra == "chat" or extra == "code" or extra == "realtime"
54
55
  Requires-Dist: tavily-python (==0.5.0) ; extra == "chat" or extra == "code" or extra == "realtime"
55
56
  Requires-Dist: twilio (>=7.0.0) ; extra == "call"
@@ -78,6 +79,8 @@ Description-Content-Type: text/markdown
78
79
 
79
80
  # Praison AI
80
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
+
81
84
  </div>
82
85
 
83
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.
@@ -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.
@@ -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:
@@ -389,7 +391,8 @@ class PraisonAI:
389
391
  import praisonai
390
392
  os.environ["CHAINLIT_PORT"] = "8084"
391
393
  root_path = os.path.join(os.path.expanduser("~"), ".praison")
392
- os.environ["CHAINLIT_APP_ROOT"] = root_path
394
+ if "CHAINLIT_APP_ROOT" not in os.environ:
395
+ os.environ["CHAINLIT_APP_ROOT"] = root_path
393
396
  public_folder = os.path.join(os.path.dirname(praisonai.__file__), 'public')
394
397
  if not os.path.exists(os.path.join(root_path, "public")):
395
398
  if os.path.exists(public_folder):
@@ -412,7 +415,8 @@ class PraisonAI:
412
415
  import praisonai
413
416
  os.environ["CHAINLIT_PORT"] = "8086"
414
417
  root_path = os.path.join(os.path.expanduser("~"), ".praison")
415
- os.environ["CHAINLIT_APP_ROOT"] = root_path
418
+ if "CHAINLIT_APP_ROOT" not in os.environ:
419
+ os.environ["CHAINLIT_APP_ROOT"] = root_path
416
420
  public_folder = os.path.join(os.path.dirname(__file__), 'public')
417
421
  if not os.path.exists(os.path.join(root_path, "public")):
418
422
  if os.path.exists(public_folder):
@@ -481,7 +485,8 @@ class PraisonAI:
481
485
  import praisonai
482
486
  os.environ["CHAINLIT_PORT"] = "8088"
483
487
  root_path = os.path.join(os.path.expanduser("~"), ".praison")
484
- os.environ["CHAINLIT_APP_ROOT"] = root_path
488
+ if "CHAINLIT_APP_ROOT" not in os.environ:
489
+ os.environ["CHAINLIT_APP_ROOT"] = root_path
485
490
  public_folder = os.path.join(os.path.dirname(praisonai.__file__), 'public')
486
491
  if not os.path.exists(os.path.join(root_path, "public")):
487
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.1 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.1"
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 = ""
@@ -48,6 +48,7 @@ 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
50
  openai = {version = ">=1.54.0", optional = true}
51
+ pydantic = {version = "<=2.10.1", optional = true}
51
52
 
52
53
  [tool.poetry.group.docs.dependencies]
53
54
  mkdocs = "*"
@@ -125,7 +126,10 @@ chat = [
125
126
  "tavily-python",
126
127
  "crawl4ai",
127
128
  "sqlalchemy",
128
- "playwright"
129
+ "playwright",
130
+ "rich",
131
+ "instructor",
132
+ "pydantic"
129
133
  ]
130
134
  code = [
131
135
  "chainlit",
@@ -135,7 +139,8 @@ code = [
135
139
  "tavily-python",
136
140
  "crawl4ai",
137
141
  "sqlalchemy",
138
- "playwright"
142
+ "playwright",
143
+ "pydantic"
139
144
  ]
140
145
  train = ["setup-conda-env"]
141
146
  realtime = [
File without changes
File without changes
File without changes
File without changes
File without changes