PraisonAI 2.2.16__tar.gz → 2.2.18__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 (93) hide show
  1. praisonai-2.2.18/PKG-INFO +103 -0
  2. praisonai-2.2.18/README.md +9 -0
  3. praisonai-2.2.18/praisonai/README.md +5 -0
  4. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/agents_generator.py +8 -4
  5. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/auto.py +14 -2
  6. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/chainlit_ui.py +2 -2
  7. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/cli.py +14 -2
  8. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/deploy.py +1 -1
  9. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/inc/models.py +5 -3
  10. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/agents.py +2 -2
  11. {praisonai-2.2.16 → praisonai-2.2.18}/pyproject.toml +5 -5
  12. praisonai-2.2.16/LICENSE +0 -20
  13. praisonai-2.2.16/PKG-INFO +0 -684
  14. praisonai-2.2.16/README.md +0 -590
  15. praisonai-2.2.16/praisonai/ui/config/.chainlit/config.toml +0 -120
  16. praisonai-2.2.16/praisonai/ui/config/translations/bn.json +0 -231
  17. praisonai-2.2.16/praisonai/ui/config/translations/en-US.json +0 -229
  18. praisonai-2.2.16/praisonai/ui/config/translations/gu.json +0 -231
  19. praisonai-2.2.16/praisonai/ui/config/translations/he-IL.json +0 -231
  20. praisonai-2.2.16/praisonai/ui/config/translations/hi.json +0 -231
  21. praisonai-2.2.16/praisonai/ui/config/translations/kn.json +0 -231
  22. praisonai-2.2.16/praisonai/ui/config/translations/ml.json +0 -231
  23. praisonai-2.2.16/praisonai/ui/config/translations/mr.json +0 -231
  24. praisonai-2.2.16/praisonai/ui/config/translations/ta.json +0 -231
  25. praisonai-2.2.16/praisonai/ui/config/translations/te.json +0 -231
  26. praisonai-2.2.16/praisonai/ui/config/translations/zh-CN.json +0 -229
  27. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/__init__.py +0 -0
  28. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/__main__.py +0 -0
  29. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/api/call.py +0 -0
  30. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/inbuilt_tools/__init__.py +0 -0
  31. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  32. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/inc/__init__.py +0 -0
  33. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/inc/config.py +0 -0
  34. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/android-chrome-192x192.png +0 -0
  35. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/android-chrome-512x512.png +0 -0
  36. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/apple-touch-icon.png +0 -0
  37. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/fantasy.svg +0 -0
  38. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/favicon-16x16.png +0 -0
  39. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/favicon-32x32.png +0 -0
  40. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/favicon.ico +0 -0
  41. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/game.svg +0 -0
  42. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/logo_dark.png +0 -0
  43. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/logo_light.png +0 -0
  44. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/movie.svg +0 -0
  45. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/praison-ai-agents-architecture-dark.png +0 -0
  46. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/praison-ai-agents-architecture.png +0 -0
  47. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/thriller.svg +0 -0
  48. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/setup/__init__.py +0 -0
  49. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/setup/build.py +0 -0
  50. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/setup/config.yaml +0 -0
  51. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/setup/post_install.py +0 -0
  52. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/setup/setup_conda_env.py +0 -0
  53. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/setup/setup_conda_env.sh +0 -0
  54. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/setup.py +0 -0
  55. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/test.py +0 -0
  56. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/train.py +0 -0
  57. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/train_vision.py +0 -0
  58. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/README.md +0 -0
  59. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/callbacks.py +0 -0
  60. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/chat.py +0 -0
  61. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/code.py +0 -0
  62. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/colab.py +0 -0
  63. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/colab_chainlit.py +0 -0
  64. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/components/aicoder.py +0 -0
  65. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/config/chainlit.md +0 -0
  66. {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/bn.json +0 -0
  67. {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/en-US.json +0 -0
  68. {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/gu.json +0 -0
  69. {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/he-IL.json +0 -0
  70. {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/hi.json +0 -0
  71. {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/kn.json +0 -0
  72. {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/ml.json +0 -0
  73. {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/mr.json +0 -0
  74. {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/ta.json +0 -0
  75. {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/te.json +0 -0
  76. {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/zh-CN.json +0 -0
  77. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/context.py +0 -0
  78. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/db.py +0 -0
  79. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/public/fantasy.svg +0 -0
  80. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/public/game.svg +0 -0
  81. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/public/logo_dark.png +0 -0
  82. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/public/logo_light.png +0 -0
  83. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/public/movie.svg +0 -0
  84. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/public/praison.css +0 -0
  85. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/public/thriller.svg +0 -0
  86. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/realtime.py +0 -0
  87. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/realtimeclient/__init__.py +0 -0
  88. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/realtimeclient/realtimedocs.txt +0 -0
  89. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/realtimeclient/tools.py +0 -0
  90. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/sql_alchemy.py +0 -0
  91. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/tools.md +0 -0
  92. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/upload_vision.py +0 -0
  93. {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/version.py +0 -0
@@ -0,0 +1,103 @@
1
+ Metadata-Version: 2.3
2
+ Name: PraisonAI
3
+ Version: 2.2.18
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.5.5) ; extra == "chat"
32
+ Requires-Dist: chainlit (==2.5.5) ; extra == "code"
33
+ Requires-Dist: chainlit (==2.5.5) ; extra == "realtime"
34
+ Requires-Dist: chainlit (==2.5.5) ; extra == "ui"
35
+ Requires-Dist: crawl4ai (>=0.6.0) ; extra == "chat"
36
+ Requires-Dist: crawl4ai (>=0.6.0) ; extra == "code"
37
+ Requires-Dist: crawl4ai (>=0.6.0) ; 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.115.0) ; extra == "api"
42
+ Requires-Dist: fastapi (>=0.95.0) ; extra == "call"
43
+ Requires-Dist: flaml[automl] (>=2.3.1) ; extra == "call"
44
+ Requires-Dist: flask (>=3.0.0) ; extra == "api"
45
+ Requires-Dist: gradio (>=4.26.0) ; extra == "gradio"
46
+ Requires-Dist: greenlet (>=3.0.3) ; extra == "chat"
47
+ Requires-Dist: greenlet (>=3.0.3) ; extra == "code"
48
+ Requires-Dist: greenlet (>=3.0.3) ; extra == "realtime"
49
+ Requires-Dist: greenlet (>=3.0.3) ; extra == "ui"
50
+ Requires-Dist: instructor (>=1.3.3)
51
+ Requires-Dist: langchain-anthropic (>=0.3.0) ; extra == "anthropic"
52
+ Requires-Dist: langchain-cohere (>=0.3.0,<0.4.0) ; extra == "cohere"
53
+ Requires-Dist: langchain-google-genai (>=2.1.0) ; extra == "google"
54
+ Requires-Dist: langchain-openai (>=0.2.1,<0.3.0) ; extra == "openai"
55
+ Requires-Dist: litellm (>=1.68.0) ; extra == "chat"
56
+ Requires-Dist: litellm (>=1.68.0) ; extra == "code"
57
+ Requires-Dist: litellm (>=1.68.0) ; extra == "realtime"
58
+ Requires-Dist: markdown (>=3.5)
59
+ Requires-Dist: mcp (>=1.6.0)
60
+ Requires-Dist: openai (>=1.54.0) ; extra == "call"
61
+ Requires-Dist: playwright (>=1.47.0) ; extra == "chat"
62
+ Requires-Dist: playwright (>=1.47.0) ; extra == "code"
63
+ Requires-Dist: plotly (>=5.24.0) ; extra == "realtime"
64
+ Requires-Dist: praisonai-tools (>=0.0.15) ; extra == "autogen"
65
+ Requires-Dist: praisonai-tools (>=0.0.15) ; extra == "crewai"
66
+ Requires-Dist: praisonaiagents (>=0.0.91)
67
+ Requires-Dist: pyautogen (>=0.2.19) ; extra == "autogen"
68
+ Requires-Dist: pydantic (<=2.10.1) ; extra == "chat"
69
+ Requires-Dist: pydantic (<=2.10.1) ; extra == "code"
70
+ Requires-Dist: pydantic (<=2.10.1) ; extra == "ui"
71
+ Requires-Dist: pyngrok (>=1.4.0) ; extra == "call"
72
+ Requires-Dist: pyparsing (>=3.0.0)
73
+ Requires-Dist: python-dotenv (>=0.19.0)
74
+ Requires-Dist: rich (>=13.7)
75
+ Requires-Dist: rich ; extra == "call"
76
+ Requires-Dist: rich ; extra == "chat"
77
+ Requires-Dist: sqlalchemy (>=2.0.36) ; extra == "chat"
78
+ Requires-Dist: sqlalchemy (>=2.0.36) ; extra == "code"
79
+ Requires-Dist: sqlalchemy (>=2.0.36) ; extra == "realtime"
80
+ Requires-Dist: sqlalchemy (>=2.0.36) ; extra == "ui"
81
+ Requires-Dist: tavily-python (==0.5.0) ; extra == "chat"
82
+ Requires-Dist: tavily-python (==0.5.0) ; extra == "code"
83
+ Requires-Dist: tavily-python (==0.5.0) ; extra == "realtime"
84
+ Requires-Dist: twilio (>=7.0.0) ; extra == "call"
85
+ Requires-Dist: uvicorn (>=0.20.0) ; extra == "call"
86
+ Requires-Dist: uvicorn (>=0.34.0) ; extra == "api"
87
+ Requires-Dist: websockets (>=12.0) ; extra == "call"
88
+ Requires-Dist: websockets (>=12.0) ; extra == "realtime"
89
+ Requires-Dist: yfinance (>=0.2.44) ; extra == "realtime"
90
+ Project-URL: Homepage, https://docs.praison.ai
91
+ Project-URL: Repository, https://github.com/mervinpraison/PraisonAI
92
+ Description-Content-Type: text/markdown
93
+
94
+ # PraisonAI Package
95
+
96
+ This is the PraisonAI package, which serves as a wrapper for PraisonAIAgents.
97
+
98
+ It provides a simple and intuitive interface for working with AI agents and their capabilities.
99
+
100
+ ## Directory Structure
101
+
102
+ The main package code is located in the `praisonai` subdirectory.
103
+
@@ -0,0 +1,9 @@
1
+ # PraisonAI Package
2
+
3
+ This is the PraisonAI package, which serves as a wrapper for PraisonAIAgents.
4
+
5
+ It provides a simple and intuitive interface for working with AI agents and their capabilities.
6
+
7
+ ## Directory Structure
8
+
9
+ The main package code is located in the `praisonai` subdirectory.
@@ -0,0 +1,5 @@
1
+ # PraisonAI Package
2
+
3
+ This is the PraisonAI package, which serves as a wrapper for PraisonAIAgents.
4
+
5
+ It provides a simple and intuitive interface for working with AI agents and their capabilities.
@@ -438,11 +438,13 @@ class AgentsGenerator:
438
438
  if llm_model:
439
439
  llm = PraisonAIModel(
440
440
  model=llm_model.get("model") or os.environ.get("MODEL_NAME") or "openai/gpt-4o",
441
- base_url=self.config_list[0].get('base_url') if self.config_list else None
441
+ base_url=self.config_list[0].get('base_url') if self.config_list else None,
442
+ api_key=self.config_list[0].get('api_key') if self.config_list else None
442
443
  ).get_model()
443
444
  else:
444
445
  llm = PraisonAIModel(
445
- base_url=self.config_list[0].get('base_url') if self.config_list else None
446
+ base_url=self.config_list[0].get('base_url') if self.config_list else None,
447
+ api_key=self.config_list[0].get('api_key') if self.config_list else None
446
448
  ).get_model()
447
449
 
448
450
  # Configure function calling LLM
@@ -450,11 +452,13 @@ class AgentsGenerator:
450
452
  if function_calling_llm_model:
451
453
  function_calling_llm = PraisonAIModel(
452
454
  model=function_calling_llm_model.get("model") or os.environ.get("MODEL_NAME") or "openai/gpt-4o",
453
- base_url=self.config_list[0].get('base_url') if self.config_list else None
455
+ base_url=self.config_list[0].get('base_url') if self.config_list else None,
456
+ api_key=self.config_list[0].get('api_key') if self.config_list else None
454
457
  ).get_model()
455
458
  else:
456
459
  function_calling_llm = PraisonAIModel(
457
- base_url=self.config_list[0].get('base_url') if self.config_list else None
460
+ base_url=self.config_list[0].get('base_url') if self.config_list else None,
461
+ api_key=self.config_list[0].get('api_key') if self.config_list else None
458
462
  ).get_model()
459
463
 
460
464
  # Create CrewAI agent
@@ -91,10 +91,22 @@ Tools are not available for {framework}. To use tools, install:
91
91
  pip install "praisonai[{framework}]"
92
92
  """)
93
93
 
94
+ # Support multiple environment variable patterns for better compatibility
95
+ # Priority order: MODEL_NAME > OPENAI_MODEL_NAME for model selection
96
+ model_name = os.environ.get("MODEL_NAME") or os.environ.get("OPENAI_MODEL_NAME", "gpt-4o")
97
+
98
+ # Priority order for base_url: OPENAI_BASE_URL > OPENAI_API_BASE > OLLAMA_API_BASE
99
+ # OPENAI_BASE_URL is the standard OpenAI SDK environment variable
100
+ base_url = (
101
+ os.environ.get("OPENAI_BASE_URL") or
102
+ os.environ.get("OPENAI_API_BASE") or
103
+ os.environ.get("OLLAMA_API_BASE", "https://api.openai.com/v1")
104
+ )
105
+
94
106
  self.config_list = config_list or [
95
107
  {
96
- 'model': os.environ.get("OPENAI_MODEL_NAME", "gpt-4o"),
97
- 'base_url': os.environ.get("OPENAI_API_BASE", "https://api.openai.com/v1"),
108
+ 'model': model_name,
109
+ 'base_url': base_url,
98
110
  'api_key': os.environ.get("OPENAI_API_KEY")
99
111
  }
100
112
  ]
@@ -24,8 +24,8 @@ config_list = [
24
24
  agent_file = "test.yaml"
25
25
 
26
26
  actions=[
27
- cl.Action(name="run", value="run", label="✅ Run"),
28
- cl.Action(name="modify", value="modify", label="🔧 Modify"),
27
+ cl.Action(name="run", payload="run", label="✅ Run"),
28
+ cl.Action(name="modify", payload="modify", label="🔧 Modify"),
29
29
  ]
30
30
 
31
31
  @cl.action_callback("run")
@@ -114,11 +114,23 @@ class PraisonAI:
114
114
  """
115
115
  self.agent_yaml = agent_yaml
116
116
  # Create config_list with AutoGen compatibility
117
+ # Support multiple environment variable patterns for better compatibility
118
+ # Priority order: MODEL_NAME > OPENAI_MODEL_NAME for model selection
119
+ model_name = os.environ.get("MODEL_NAME") or os.environ.get("OPENAI_MODEL_NAME", "gpt-4o")
120
+
121
+ # Priority order for base_url: OPENAI_BASE_URL > OPENAI_API_BASE > OLLAMA_API_BASE
122
+ # OPENAI_BASE_URL is the standard OpenAI SDK environment variable
123
+ base_url = (
124
+ os.environ.get("OPENAI_BASE_URL") or
125
+ os.environ.get("OPENAI_API_BASE") or
126
+ os.environ.get("OLLAMA_API_BASE", "https://api.openai.com/v1")
127
+ )
128
+
117
129
  api_key = os.environ.get("OPENAI_API_KEY")
118
130
  self.config_list = [
119
131
  {
120
- 'model': os.environ.get("OPENAI_MODEL_NAME", "gpt-4o"),
121
- 'base_url': os.environ.get("OPENAI_API_BASE", "https://api.openai.com/v1"),
132
+ 'model': model_name,
133
+ 'base_url': base_url,
122
134
  'api_key': api_key,
123
135
  'api_type': 'openai' # AutoGen expects this field
124
136
  }
@@ -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==2.2.16 gunicorn markdown\n")
59
+ file.write("RUN pip install flask praisonai==2.2.18 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
 
@@ -30,14 +30,15 @@ except ImportError:
30
30
  COHERE_AVAILABLE = False
31
31
 
32
32
  class PraisonAIModel:
33
- def __init__(self, model=None, api_key_var=None, base_url=None):
33
+ def __init__(self, model=None, api_key_var=None, base_url=None, api_key=None):
34
34
  """
35
35
  Initializes the PraisonAIModel with the provided parameters or environment variables.
36
36
 
37
37
  Args:
38
38
  model (str, optional): The name of the OpenAI model. Defaults to None.
39
- api_key_var (str, optional): The OpenAI API key. Defaults to None.
39
+ api_key_var (str, optional): The environment variable name for the API key. Defaults to None.
40
40
  base_url (str, optional): The base URL for the OpenAI API. Defaults to None.
41
+ api_key (str, optional): The explicit API key to use. Takes precedence over environment variables. Defaults to None.
41
42
  """
42
43
  self.model = model or os.getenv("OPENAI_MODEL_NAME", "gpt-4o")
43
44
  if self.model.startswith("openai/"):
@@ -73,7 +74,8 @@ class PraisonAIModel:
73
74
  self.base_url = base_url or os.environ.get("OPENAI_API_BASE", "https://api.openai.com/v1")
74
75
  self.model_name = self.model
75
76
  logger.debug(f"Initialized PraisonAIModel with model {self.model_name}, api_key_var {self.api_key_var}, and base_url {self.base_url}")
76
- self.api_key = os.environ.get(self.api_key_var, "nokey")
77
+ # Use explicit API key if provided, otherwise fall back to environment variable
78
+ self.api_key = api_key or os.environ.get(self.api_key_var, "nokey")
77
79
 
78
80
  def get_model(self):
79
81
  """
@@ -17,8 +17,8 @@ config_list = [
17
17
  ]
18
18
 
19
19
  actions = [
20
- cl.Action(name="run", value="run", label="✅ Run"),
21
- cl.Action(name="modify", value="modify", label="🔧 Modify"),
20
+ cl.Action(name="run", payload="run", label="✅ Run"),
21
+ cl.Action(name="modify", payload="modify", label="🔧 Modify"),
22
22
  ]
23
23
 
24
24
  @cl.action_callback("run")
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "PraisonAI"
3
- version = "2.2.16"
3
+ version = "2.2.18"
4
4
  description = "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
5
  readme = "README.md"
6
6
  license = ""
@@ -12,7 +12,7 @@ dependencies = [
12
12
  "rich>=13.7",
13
13
  "markdown>=3.5",
14
14
  "pyparsing>=3.0.0",
15
- "praisonaiagents>=0.0.89",
15
+ "praisonaiagents>=0.0.91",
16
16
  "python-dotenv>=0.19.0",
17
17
  "instructor>=1.3.3",
18
18
  "PyYAML>=6.0",
@@ -89,7 +89,7 @@ autogen = ["pyautogen>=0.2.19", "praisonai-tools>=0.0.15", "crewai"]
89
89
 
90
90
  [tool.poetry]
91
91
  name = "PraisonAI"
92
- version = "2.2.16"
92
+ version = "2.2.18"
93
93
  description = "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."
94
94
  authors = ["Mervin Praison"]
95
95
  license = ""
@@ -100,14 +100,14 @@ Homepage = "https://docs.praison.ai"
100
100
  Repository = "https://github.com/mervinpraison/PraisonAI"
101
101
 
102
102
  [tool.setuptools]
103
- packages = ["PraisonAI"]
103
+ packages = ["praisonai"]
104
104
 
105
105
  [tool.poetry.dependencies]
106
106
  python = ">=3.10,<3.13"
107
107
  rich = ">=13.7"
108
108
  markdown = ">=3.5"
109
109
  pyparsing = ">=3.0.0"
110
- praisonaiagents = ">=0.0.89"
110
+ praisonaiagents = ">=0.0.91"
111
111
  python-dotenv = ">=0.19.0"
112
112
  instructor = ">=1.3.3"
113
113
  PyYAML = ">=6.0"
praisonai-2.2.16/LICENSE DELETED
@@ -1,20 +0,0 @@
1
- MIT License
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.