PraisonAI 2.0.39__tar.gz → 2.0.41__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.0.39 → praisonai-2.0.41}/PKG-INFO +1 -1
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/agents_generator.py +15 -9
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/api/call.py +3 -3
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/cli.py +6 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/deploy.py +1 -1
- {praisonai-2.0.39 → praisonai-2.0.41}/pyproject.toml +2 -2
- {praisonai-2.0.39 → praisonai-2.0.41}/LICENSE +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/README.md +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/__init__.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/__main__.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/auto.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/chainlit_ui.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/inbuilt_tools/__init__.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/inc/__init__.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/inc/config.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/inc/models.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/android-chrome-192x192.png +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/android-chrome-512x512.png +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/apple-touch-icon.png +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/fantasy.svg +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/favicon-16x16.png +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/favicon-32x32.png +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/favicon.ico +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/game.svg +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/logo_dark.png +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/logo_light.png +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/movie.svg +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/praison-ai-agents-architecture-dark.png +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/praison-ai-agents-architecture.png +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/thriller.svg +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/setup/__init__.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/setup/build.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/setup/config.yaml +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/setup/post_install.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/setup/setup_conda_env.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/setup/setup_conda_env.sh +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/setup.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/test.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/train.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/README.md +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/agents.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/callbacks.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/chat.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/code.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/colab.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/colab_chainlit.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/components/aicoder.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/.chainlit/config.toml +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/.chainlit/translations/bn.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/.chainlit/translations/en-US.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/.chainlit/translations/gu.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/.chainlit/translations/he-IL.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/.chainlit/translations/hi.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/.chainlit/translations/kn.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/.chainlit/translations/ml.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/.chainlit/translations/mr.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/.chainlit/translations/ta.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/.chainlit/translations/te.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/.chainlit/translations/zh-CN.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/chainlit.md +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/translations/bn.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/translations/en-US.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/translations/gu.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/translations/he-IL.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/translations/hi.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/translations/kn.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/translations/ml.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/translations/mr.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/translations/ta.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/translations/te.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/config/translations/zh-CN.json +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/context.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/db.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/public/fantasy.svg +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/public/game.svg +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/public/logo_dark.png +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/public/logo_light.png +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/public/movie.svg +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/public/praison.css +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/public/thriller.svg +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/realtime.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/realtimeclient/__init__.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/realtimeclient/realtimedocs.txt +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/realtimeclient/tools.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/sql_alchemy.py +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/ui/tools.md +0 -0
- {praisonai-2.0.39 → praisonai-2.0.41}/praisonai/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: PraisonAI
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.41
|
|
4
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
5
|
Author: Mervin Praison
|
|
6
6
|
Requires-Python: >=3.10,<3.13
|
|
@@ -212,9 +212,9 @@ class AgentsGenerator:
|
|
|
212
212
|
try:
|
|
213
213
|
# Try to import tools.py from current directory
|
|
214
214
|
spec = importlib.util.spec_from_file_location("tools", "tools.py")
|
|
215
|
-
self.logger.
|
|
215
|
+
self.logger.debug(f"Spec: {spec}")
|
|
216
216
|
if spec is None:
|
|
217
|
-
self.logger.
|
|
217
|
+
self.logger.debug("tools.py not found in current directory")
|
|
218
218
|
return tools_list
|
|
219
219
|
|
|
220
220
|
module = importlib.util.module_from_spec(spec)
|
|
@@ -229,11 +229,13 @@ class AgentsGenerator:
|
|
|
229
229
|
globals()[name] = obj
|
|
230
230
|
# Add to tools list
|
|
231
231
|
tools_list.append(obj)
|
|
232
|
-
self.logger.
|
|
232
|
+
self.logger.debug(f"Loaded and globalized tool function: {name}")
|
|
233
233
|
|
|
234
|
-
self.logger.
|
|
235
|
-
self.logger.
|
|
234
|
+
self.logger.debug(f"Loaded {len(tools_list)} tool functions from tools.py")
|
|
235
|
+
self.logger.debug(f"Tools list: {tools_list}")
|
|
236
236
|
|
|
237
|
+
except FileNotFoundError:
|
|
238
|
+
self.logger.debug("tools.py not found in current directory")
|
|
237
239
|
except Exception as e:
|
|
238
240
|
self.logger.warning(f"Error loading tools from tools.py: {e}")
|
|
239
241
|
|
|
@@ -539,7 +541,7 @@ class AgentsGenerator:
|
|
|
539
541
|
|
|
540
542
|
# Load tools once at the beginning
|
|
541
543
|
tools_list = self.load_tools_from_tools_py()
|
|
542
|
-
self.logger.
|
|
544
|
+
self.logger.debug(f"Loaded tools: {tools_list}")
|
|
543
545
|
|
|
544
546
|
# Create agents from config
|
|
545
547
|
for role, details in config['roles'].items():
|
|
@@ -574,7 +576,7 @@ class AgentsGenerator:
|
|
|
574
576
|
agent.step_callback = self.agent_callback
|
|
575
577
|
|
|
576
578
|
agents[role] = agent
|
|
577
|
-
self.logger.
|
|
579
|
+
self.logger.debug(f"Created agent {role_filled} with tools: {agent.tools}")
|
|
578
580
|
|
|
579
581
|
# Create tasks for the agent
|
|
580
582
|
for task_name, task_details in details.get('tasks', {}).items():
|
|
@@ -596,7 +598,7 @@ class AgentsGenerator:
|
|
|
596
598
|
create_directory=task_details.get('create_directory', False)
|
|
597
599
|
)
|
|
598
600
|
|
|
599
|
-
self.logger.
|
|
601
|
+
self.logger.debug(f"Created task {task_name} with tools: {task.tools}")
|
|
600
602
|
|
|
601
603
|
if self.task_callback:
|
|
602
604
|
task.callback = self.task_callback
|
|
@@ -613,6 +615,8 @@ class AgentsGenerator:
|
|
|
613
615
|
task.context = context_tasks
|
|
614
616
|
|
|
615
617
|
# Create and run the PraisonAI agents
|
|
618
|
+
memory = config.get('memory', False)
|
|
619
|
+
self.logger.debug(f"Memory: {memory}")
|
|
616
620
|
if config.get('process') == 'hierarchical':
|
|
617
621
|
agents = PraisonAIAgents(
|
|
618
622
|
agents=list(agents.values()),
|
|
@@ -620,12 +624,14 @@ class AgentsGenerator:
|
|
|
620
624
|
verbose=True,
|
|
621
625
|
process="hierarchical",
|
|
622
626
|
manager_llm=config.get('manager_llm', 'gpt-4o'),
|
|
627
|
+
memory=memory
|
|
623
628
|
)
|
|
624
629
|
else:
|
|
625
630
|
agents = PraisonAIAgents(
|
|
626
631
|
agents=list(agents.values()),
|
|
627
632
|
tasks=tasks,
|
|
628
|
-
verbose=2
|
|
633
|
+
verbose=2,
|
|
634
|
+
memory=memory
|
|
629
635
|
)
|
|
630
636
|
|
|
631
637
|
self.logger.debug("Final Configuration:")
|
|
@@ -50,7 +50,7 @@ logger.handlers = []
|
|
|
50
50
|
# Try to import tools from the root directory
|
|
51
51
|
tools = []
|
|
52
52
|
tools_path = os.path.join(os.getcwd(), 'tools.py')
|
|
53
|
-
logger.
|
|
53
|
+
logger.debug(f"Tools path: {tools_path}")
|
|
54
54
|
|
|
55
55
|
def import_tools_from_file(file_path):
|
|
56
56
|
spec = importlib.util.spec_from_file_location("custom_tools", file_path)
|
|
@@ -63,9 +63,9 @@ try:
|
|
|
63
63
|
if os.path.exists(tools_path):
|
|
64
64
|
# tools.py exists in the root directory, import from file
|
|
65
65
|
custom_tools_module = import_tools_from_file(tools_path)
|
|
66
|
-
logger.
|
|
66
|
+
logger.debug("Successfully imported custom tools from root tools.py")
|
|
67
67
|
else:
|
|
68
|
-
logger.
|
|
68
|
+
logger.debug("No custom tools.py file found in the root directory")
|
|
69
69
|
custom_tools_module = None
|
|
70
70
|
|
|
71
71
|
if custom_tools_module:
|
|
@@ -73,6 +73,12 @@ except ImportError:
|
|
|
73
73
|
pass
|
|
74
74
|
|
|
75
75
|
logging.basicConfig(level=os.environ.get('LOGLEVEL', 'INFO'), format='%(asctime)s - %(levelname)s - %(message)s')
|
|
76
|
+
logging.getLogger('alembic').setLevel(logging.ERROR)
|
|
77
|
+
logging.getLogger('gradio').setLevel(logging.ERROR)
|
|
78
|
+
logging.getLogger('gradio').setLevel(os.environ.get('GRADIO_LOGLEVEL', 'WARNING'))
|
|
79
|
+
logging.getLogger('rust_logger').setLevel(logging.WARNING)
|
|
80
|
+
logging.getLogger('duckduckgo').setLevel(logging.ERROR)
|
|
81
|
+
logging.getLogger('_client').setLevel(logging.ERROR)
|
|
76
82
|
|
|
77
83
|
def stream_subprocess(command, env=None):
|
|
78
84
|
"""
|
|
@@ -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.0.
|
|
59
|
+
file.write("RUN pip install flask praisonai==2.0.41 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
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "PraisonAI"
|
|
3
|
-
version = "2.0.
|
|
3
|
+
version = "2.0.41"
|
|
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 = ""
|
|
@@ -84,7 +84,7 @@ autogen = ["pyautogen>=0.2.19", "praisonai-tools>=0.0.7", "crewai"]
|
|
|
84
84
|
|
|
85
85
|
[tool.poetry]
|
|
86
86
|
name = "PraisonAI"
|
|
87
|
-
version = "2.0.
|
|
87
|
+
version = "2.0.41"
|
|
88
88
|
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."
|
|
89
89
|
authors = ["Mervin Praison"]
|
|
90
90
|
license = ""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{praisonai-2.0.39 → praisonai-2.0.41}/praisonai/public/praison-ai-agents-architecture-dark.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|