praisonAI 2.2.91__tar.gz → 2.2.93__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.
- {praisonai-2.2.91 → praisonai-2.2.93}/PKG-INFO +2 -2
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/cli.py +41 -2
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/deploy.py +1 -1
- {praisonai-2.2.91 → praisonai-2.2.93}/pyproject.toml +4 -4
- {praisonai-2.2.91 → praisonai-2.2.93}/README.md +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/README.md +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/__init__.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/__main__.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/agents_generator.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/api/call.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/auto.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/chainlit_ui.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/inbuilt_tools/__init__.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/inc/__init__.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/inc/config.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/inc/models.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/public/android-chrome-192x192.png +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/public/android-chrome-512x512.png +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/public/apple-touch-icon.png +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/public/fantasy.svg +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/public/favicon-16x16.png +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/public/favicon-32x32.png +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/public/favicon.ico +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/public/game.svg +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/public/logo_dark.png +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/public/logo_light.png +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/public/movie.svg +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/public/praison-ai-agents-architecture-dark.png +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/public/praison-ai-agents-architecture.png +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/public/thriller.svg +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/scheduler.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/setup/__init__.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/setup/build.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/setup/config.yaml +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/setup/post_install.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/setup/setup_conda_env.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/setup/setup_conda_env.sh +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/setup.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/test.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/train.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/train_vision.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/README.md +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/agents.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/callbacks.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/chat.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/code.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/colab.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/colab_chainlit.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/components/aicoder.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/config/chainlit.md +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/config/translations/bn.json +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/config/translations/en-US.json +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/config/translations/gu.json +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/config/translations/he-IL.json +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/config/translations/hi.json +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/config/translations/kn.json +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/config/translations/ml.json +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/config/translations/mr.json +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/config/translations/ta.json +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/config/translations/te.json +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/config/translations/zh-CN.json +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/context.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/database_config.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/db.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/public/fantasy.svg +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/public/game.svg +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/public/logo_dark.png +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/public/logo_light.png +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/public/movie.svg +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/public/praison.css +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/public/thriller.svg +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/realtime.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/realtimeclient/__init__.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/realtimeclient/tools.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/sql_alchemy.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/ui/tools.md +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/upload_vision.py +0 -0
- {praisonai-2.2.91 → praisonai-2.2.93}/praisonai/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PraisonAI
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.93
|
|
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
|
|
@@ -70,7 +70,7 @@ Requires-Dist: plotly (>=5.24.0) ; extra == "realtime"
|
|
|
70
70
|
Requires-Dist: praisonai-tools (>=0.0.22) ; extra == "autogen"
|
|
71
71
|
Requires-Dist: praisonai-tools (>=0.0.22) ; extra == "autogen-v4"
|
|
72
72
|
Requires-Dist: praisonai-tools (>=0.0.22) ; extra == "crewai"
|
|
73
|
-
Requires-Dist: praisonaiagents (>=0.0.
|
|
73
|
+
Requires-Dist: praisonaiagents (>=0.0.165)
|
|
74
74
|
Requires-Dist: pyautogen (==0.2.29) ; extra == "autogen"
|
|
75
75
|
Requires-Dist: pydantic (<=2.10.1) ; extra == "chat"
|
|
76
76
|
Requires-Dist: pydantic (<=2.10.1) ; extra == "code"
|
|
@@ -578,6 +578,7 @@ class PraisonAI:
|
|
|
578
578
|
parser.add_argument("--goal", type=str, help="Goal for context engineering")
|
|
579
579
|
parser.add_argument("--auto-analyze", action="store_true", help="Enable automatic analysis in context engineering")
|
|
580
580
|
parser.add_argument("--research", action="store_true", help="Run deep research on a topic")
|
|
581
|
+
parser.add_argument("--save", "-s", action="store_true", help="Save research output to file (output/research/)")
|
|
581
582
|
parser.add_argument("--verbose", "-v", action="store_true", help="Enable verbose output for research")
|
|
582
583
|
|
|
583
584
|
# If we're in a test environment, parse with empty args to avoid pytest interference
|
|
@@ -719,7 +720,8 @@ class PraisonAI:
|
|
|
719
720
|
|
|
720
721
|
research_model = getattr(args, 'model', None)
|
|
721
722
|
verbose = getattr(args, 'verbose', False)
|
|
722
|
-
|
|
723
|
+
save = getattr(args, 'save', False)
|
|
724
|
+
self.handle_research_command(research_query, research_model, verbose, save)
|
|
723
725
|
sys.exit(0)
|
|
724
726
|
|
|
725
727
|
# Only check framework availability for agent-related operations
|
|
@@ -959,7 +961,7 @@ class PraisonAI:
|
|
|
959
961
|
print(f"[red]ERROR: Context engineering failed: {e}[/red]")
|
|
960
962
|
sys.exit(1)
|
|
961
963
|
|
|
962
|
-
def handle_research_command(self, query: str, model: str = None, verbose: bool = False) -> str:
|
|
964
|
+
def handle_research_command(self, query: str, model: str = None, verbose: bool = False, save: bool = False) -> str:
|
|
963
965
|
"""
|
|
964
966
|
Handle the research command by creating a DeepResearchAgent and running it.
|
|
965
967
|
|
|
@@ -967,6 +969,7 @@ class PraisonAI:
|
|
|
967
969
|
query: Research query/topic
|
|
968
970
|
model: Model for deep research (optional, defaults to o4-mini-deep-research)
|
|
969
971
|
verbose: Enable verbose output (default: False)
|
|
972
|
+
save: Save output to file (default: False)
|
|
970
973
|
|
|
971
974
|
Returns:
|
|
972
975
|
str: Research report
|
|
@@ -1011,6 +1014,42 @@ class PraisonAI:
|
|
|
1011
1014
|
if url:
|
|
1012
1015
|
print(f" {url}")
|
|
1013
1016
|
|
|
1017
|
+
# Save output to file if --save flag is set
|
|
1018
|
+
if save:
|
|
1019
|
+
import re
|
|
1020
|
+
# Get first 10 words from query for filename
|
|
1021
|
+
words = query.split()[:10]
|
|
1022
|
+
filename_base = ' '.join(words)
|
|
1023
|
+
# Sanitize filename: remove invalid characters
|
|
1024
|
+
filename_base = re.sub(r'[<>:"/\\|?*\x00-\x1f]', '', filename_base)
|
|
1025
|
+
filename_base = filename_base.strip()[:100] # Limit length
|
|
1026
|
+
if not filename_base:
|
|
1027
|
+
filename_base = "research_output"
|
|
1028
|
+
|
|
1029
|
+
# Create output directory
|
|
1030
|
+
output_dir = os.path.join(os.getcwd(), "output", "research")
|
|
1031
|
+
os.makedirs(output_dir, exist_ok=True)
|
|
1032
|
+
|
|
1033
|
+
# Build markdown content
|
|
1034
|
+
md_content = f"# {query}\n\n"
|
|
1035
|
+
md_content += result.report
|
|
1036
|
+
if result.citations:
|
|
1037
|
+
md_content += "\n\n## Citations\n\n"
|
|
1038
|
+
for i, citation in enumerate(result.citations, 1):
|
|
1039
|
+
title = getattr(citation, 'title', 'Untitled')
|
|
1040
|
+
url = getattr(citation, 'url', '')
|
|
1041
|
+
if url:
|
|
1042
|
+
md_content += f"{i}. [{title}]({url})\n"
|
|
1043
|
+
else:
|
|
1044
|
+
md_content += f"{i}. {title}\n"
|
|
1045
|
+
|
|
1046
|
+
# Save to file
|
|
1047
|
+
output_path = os.path.join(output_dir, f"{filename_base}.md")
|
|
1048
|
+
with open(output_path, 'w', encoding='utf-8') as f:
|
|
1049
|
+
f.write(md_content)
|
|
1050
|
+
|
|
1051
|
+
print(f"\n[bold green]Saved to:[/bold green] {output_path}")
|
|
1052
|
+
|
|
1014
1053
|
return result.report
|
|
1015
1054
|
|
|
1016
1055
|
except ImportError as e:
|
|
@@ -57,7 +57,7 @@ class CloudDeployer:
|
|
|
57
57
|
file.write("FROM python:3.11-slim\n")
|
|
58
58
|
file.write("WORKDIR /app\n")
|
|
59
59
|
file.write("COPY . .\n")
|
|
60
|
-
file.write("RUN pip install flask praisonai==2.2.
|
|
60
|
+
file.write("RUN pip install flask praisonai==2.2.93 gunicorn markdown\n")
|
|
61
61
|
file.write("EXPOSE 8080\n")
|
|
62
62
|
file.write('CMD ["gunicorn", "-b", "0.0.0.0:8080", "api:app"]\n')
|
|
63
63
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "PraisonAI"
|
|
3
|
-
version = "2.2.
|
|
3
|
+
version = "2.2.93"
|
|
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.165",
|
|
16
16
|
"python-dotenv>=0.19.0",
|
|
17
17
|
"instructor>=1.3.3",
|
|
18
18
|
"PyYAML>=6.0",
|
|
@@ -102,7 +102,7 @@ autogen-v4 = [
|
|
|
102
102
|
|
|
103
103
|
[tool.poetry]
|
|
104
104
|
name = "PraisonAI"
|
|
105
|
-
version = "2.2.
|
|
105
|
+
version = "2.2.93"
|
|
106
106
|
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."
|
|
107
107
|
authors = ["Mervin Praison"]
|
|
108
108
|
license = ""
|
|
@@ -120,7 +120,7 @@ python = ">=3.10,<3.13"
|
|
|
120
120
|
rich = ">=13.7"
|
|
121
121
|
markdown = ">=3.5"
|
|
122
122
|
pyparsing = ">=3.0.0"
|
|
123
|
-
praisonaiagents = ">=0.0.
|
|
123
|
+
praisonaiagents = ">=0.0.165"
|
|
124
124
|
python-dotenv = ">=0.19.0"
|
|
125
125
|
instructor = ">=1.3.3"
|
|
126
126
|
PyYAML = ">=6.0"
|
|
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
|
{praisonai-2.2.91 → praisonai-2.2.93}/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
|