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.
- praisonai-2.2.18/PKG-INFO +103 -0
- praisonai-2.2.18/README.md +9 -0
- praisonai-2.2.18/praisonai/README.md +5 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/agents_generator.py +8 -4
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/auto.py +14 -2
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/chainlit_ui.py +2 -2
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/cli.py +14 -2
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/deploy.py +1 -1
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/inc/models.py +5 -3
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/agents.py +2 -2
- {praisonai-2.2.16 → praisonai-2.2.18}/pyproject.toml +5 -5
- praisonai-2.2.16/LICENSE +0 -20
- praisonai-2.2.16/PKG-INFO +0 -684
- praisonai-2.2.16/README.md +0 -590
- praisonai-2.2.16/praisonai/ui/config/.chainlit/config.toml +0 -120
- praisonai-2.2.16/praisonai/ui/config/translations/bn.json +0 -231
- praisonai-2.2.16/praisonai/ui/config/translations/en-US.json +0 -229
- praisonai-2.2.16/praisonai/ui/config/translations/gu.json +0 -231
- praisonai-2.2.16/praisonai/ui/config/translations/he-IL.json +0 -231
- praisonai-2.2.16/praisonai/ui/config/translations/hi.json +0 -231
- praisonai-2.2.16/praisonai/ui/config/translations/kn.json +0 -231
- praisonai-2.2.16/praisonai/ui/config/translations/ml.json +0 -231
- praisonai-2.2.16/praisonai/ui/config/translations/mr.json +0 -231
- praisonai-2.2.16/praisonai/ui/config/translations/ta.json +0 -231
- praisonai-2.2.16/praisonai/ui/config/translations/te.json +0 -231
- praisonai-2.2.16/praisonai/ui/config/translations/zh-CN.json +0 -229
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/__init__.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/__main__.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/api/call.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/inbuilt_tools/__init__.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/inc/__init__.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/inc/config.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/android-chrome-192x192.png +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/android-chrome-512x512.png +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/apple-touch-icon.png +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/fantasy.svg +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/favicon-16x16.png +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/favicon-32x32.png +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/favicon.ico +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/game.svg +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/logo_dark.png +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/logo_light.png +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/movie.svg +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/praison-ai-agents-architecture-dark.png +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/praison-ai-agents-architecture.png +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/public/thriller.svg +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/setup/__init__.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/setup/build.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/setup/config.yaml +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/setup/post_install.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/setup/setup_conda_env.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/setup/setup_conda_env.sh +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/setup.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/test.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/train.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/train_vision.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/README.md +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/callbacks.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/chat.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/code.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/colab.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/colab_chainlit.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/components/aicoder.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/config/chainlit.md +0 -0
- {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/bn.json +0 -0
- {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/en-US.json +0 -0
- {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/gu.json +0 -0
- {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/he-IL.json +0 -0
- {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/hi.json +0 -0
- {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/kn.json +0 -0
- {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/ml.json +0 -0
- {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/mr.json +0 -0
- {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/ta.json +0 -0
- {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/te.json +0 -0
- {praisonai-2.2.16/praisonai/ui/config/.chainlit → praisonai-2.2.18/praisonai/ui/config}/translations/zh-CN.json +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/context.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/db.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/public/fantasy.svg +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/public/game.svg +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/public/logo_dark.png +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/public/logo_light.png +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/public/movie.svg +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/public/praison.css +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/public/thriller.svg +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/realtime.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/realtimeclient/__init__.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/realtimeclient/realtimedocs.txt +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/realtimeclient/tools.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/sql_alchemy.py +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/ui/tools.md +0 -0
- {praisonai-2.2.16 → praisonai-2.2.18}/praisonai/upload_vision.py +0 -0
- {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.
|
|
@@ -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':
|
|
97
|
-
'base_url':
|
|
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",
|
|
28
|
-
cl.Action(name="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':
|
|
121
|
-
'base_url':
|
|
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.
|
|
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
|
|
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
|
-
|
|
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",
|
|
21
|
-
cl.Action(name="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.
|
|
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.
|
|
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.
|
|
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 = ["
|
|
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.
|
|
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.
|