PraisonAI 2.2.89__tar.gz → 2.2.90__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.89 → praisonai-2.2.90}/PKG-INFO +1 -1
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/cli.py +87 -1
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/deploy.py +1 -1
- {praisonai-2.2.89 → praisonai-2.2.90}/pyproject.toml +2 -2
- {praisonai-2.2.89 → praisonai-2.2.90}/README.md +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/README.md +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/__init__.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/__main__.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/agents_generator.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/api/call.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/auto.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/chainlit_ui.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/inbuilt_tools/__init__.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/inc/__init__.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/inc/config.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/inc/models.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/public/android-chrome-192x192.png +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/public/android-chrome-512x512.png +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/public/apple-touch-icon.png +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/public/fantasy.svg +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/public/favicon-16x16.png +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/public/favicon-32x32.png +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/public/favicon.ico +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/public/game.svg +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/public/logo_dark.png +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/public/logo_light.png +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/public/movie.svg +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/public/praison-ai-agents-architecture-dark.png +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/public/praison-ai-agents-architecture.png +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/public/thriller.svg +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/scheduler.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/setup/__init__.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/setup/build.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/setup/config.yaml +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/setup/post_install.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/setup/setup_conda_env.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/setup/setup_conda_env.sh +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/setup.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/test.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/train.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/train_vision.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/README.md +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/agents.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/callbacks.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/chat.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/code.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/colab.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/colab_chainlit.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/components/aicoder.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/config/chainlit.md +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/config/translations/bn.json +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/config/translations/en-US.json +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/config/translations/gu.json +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/config/translations/he-IL.json +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/config/translations/hi.json +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/config/translations/kn.json +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/config/translations/ml.json +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/config/translations/mr.json +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/config/translations/ta.json +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/config/translations/te.json +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/config/translations/zh-CN.json +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/context.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/database_config.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/db.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/public/fantasy.svg +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/public/game.svg +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/public/logo_dark.png +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/public/logo_light.png +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/public/movie.svg +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/public/praison.css +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/public/thriller.svg +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/realtime.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/realtimeclient/__init__.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/realtimeclient/tools.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/sql_alchemy.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/ui/tools.md +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/praisonai/upload_vision.py +0 -0
- {praisonai-2.2.89 → praisonai-2.2.90}/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.90
|
|
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
|
|
@@ -545,7 +545,7 @@ class PraisonAI:
|
|
|
545
545
|
return default_args
|
|
546
546
|
|
|
547
547
|
# Define special commands
|
|
548
|
-
special_commands = ['chat', 'code', 'call', 'realtime', 'train', 'ui', 'context']
|
|
548
|
+
special_commands = ['chat', 'code', 'call', 'realtime', 'train', 'ui', 'context', 'research']
|
|
549
549
|
|
|
550
550
|
parser = argparse.ArgumentParser(prog="praisonai", description="praisonAI command-line interface")
|
|
551
551
|
parser.add_argument("--framework", choices=["crewai", "autogen", "praisonai"], help="Specify the framework")
|
|
@@ -572,6 +572,8 @@ class PraisonAI:
|
|
|
572
572
|
parser.add_argument("--url", type=str, help="Repository URL for context analysis")
|
|
573
573
|
parser.add_argument("--goal", type=str, help="Goal for context engineering")
|
|
574
574
|
parser.add_argument("--auto-analyze", action="store_true", help="Enable automatic analysis in context engineering")
|
|
575
|
+
parser.add_argument("--research", action="store_true", help="Run deep research on a topic")
|
|
576
|
+
parser.add_argument("--verbose", "-v", action="store_true", help="Enable verbose output for research")
|
|
575
577
|
|
|
576
578
|
# If we're in a test environment, parse with empty args to avoid pytest interference
|
|
577
579
|
if in_test_env:
|
|
@@ -696,6 +698,25 @@ class PraisonAI:
|
|
|
696
698
|
self.handle_context_command(args.url, args.goal, getattr(args, 'auto_analyze', False))
|
|
697
699
|
sys.exit(0)
|
|
698
700
|
|
|
701
|
+
elif args.command == 'research':
|
|
702
|
+
if not PRAISONAI_AVAILABLE:
|
|
703
|
+
print("[red]ERROR: PraisonAI Agents is not installed. Install with:[/red]")
|
|
704
|
+
print("\npip install praisonaiagents\n")
|
|
705
|
+
sys.exit(1)
|
|
706
|
+
|
|
707
|
+
# Get the research query from remaining args
|
|
708
|
+
research_query = ' '.join(unknown_args) if unknown_args else None
|
|
709
|
+
if not research_query:
|
|
710
|
+
print("[red]ERROR: Research query is required[/red]")
|
|
711
|
+
print("Usage: praisonai research \"Your research query\"")
|
|
712
|
+
print(" praisonai research --model deep-research-pro \"Your query\"")
|
|
713
|
+
sys.exit(1)
|
|
714
|
+
|
|
715
|
+
research_model = getattr(args, 'model', None)
|
|
716
|
+
verbose = getattr(args, 'verbose', False)
|
|
717
|
+
self.handle_research_command(research_query, research_model, verbose)
|
|
718
|
+
sys.exit(0)
|
|
719
|
+
|
|
699
720
|
# Only check framework availability for agent-related operations
|
|
700
721
|
if not args.command and (args.init or args.auto or args.framework):
|
|
701
722
|
if not CREWAI_AVAILABLE and not AUTOGEN_AVAILABLE and not PRAISONAI_AVAILABLE:
|
|
@@ -933,6 +954,71 @@ class PraisonAI:
|
|
|
933
954
|
print(f"[red]ERROR: Context engineering failed: {e}[/red]")
|
|
934
955
|
sys.exit(1)
|
|
935
956
|
|
|
957
|
+
def handle_research_command(self, query: str, model: str = None, verbose: bool = False) -> str:
|
|
958
|
+
"""
|
|
959
|
+
Handle the research command by creating a DeepResearchAgent and running it.
|
|
960
|
+
|
|
961
|
+
Args:
|
|
962
|
+
query: Research query/topic
|
|
963
|
+
model: Model for deep research (optional, defaults to o4-mini-deep-research)
|
|
964
|
+
verbose: Enable verbose output (default: False)
|
|
965
|
+
|
|
966
|
+
Returns:
|
|
967
|
+
str: Research report
|
|
968
|
+
"""
|
|
969
|
+
try:
|
|
970
|
+
from praisonaiagents import DeepResearchAgent
|
|
971
|
+
|
|
972
|
+
# Suppress logging unless verbose
|
|
973
|
+
if not verbose:
|
|
974
|
+
logging.getLogger('google').setLevel(logging.WARNING)
|
|
975
|
+
logging.getLogger('google.genai').setLevel(logging.WARNING)
|
|
976
|
+
logging.getLogger('httpx').setLevel(logging.WARNING)
|
|
977
|
+
logging.getLogger('httpcore').setLevel(logging.WARNING)
|
|
978
|
+
|
|
979
|
+
print("[bold green]Starting Deep Research...[/bold green]")
|
|
980
|
+
print(f"Query: {query}")
|
|
981
|
+
|
|
982
|
+
# Default model if not specified
|
|
983
|
+
if not model:
|
|
984
|
+
model = "o4-mini-deep-research"
|
|
985
|
+
|
|
986
|
+
print(f"Model: {model}")
|
|
987
|
+
|
|
988
|
+
# Create DeepResearchAgent
|
|
989
|
+
agent = DeepResearchAgent(
|
|
990
|
+
model=model,
|
|
991
|
+
verbose=verbose
|
|
992
|
+
)
|
|
993
|
+
|
|
994
|
+
# Execute the research (streaming is enabled by default)
|
|
995
|
+
result = agent.research(query)
|
|
996
|
+
|
|
997
|
+
print("\n[bold green]Research Complete![/bold green]")
|
|
998
|
+
print("\n" + "="*60)
|
|
999
|
+
print(result.report)
|
|
1000
|
+
print("="*60)
|
|
1001
|
+
|
|
1002
|
+
# Show citations if available
|
|
1003
|
+
if result.citations:
|
|
1004
|
+
print(f"\n[bold]Citations ({len(result.citations)}):[/bold]")
|
|
1005
|
+
for i, citation in enumerate(result.citations, 1):
|
|
1006
|
+
title = getattr(citation, 'title', 'Untitled')
|
|
1007
|
+
url = getattr(citation, 'url', '')
|
|
1008
|
+
print(f" {i}. {title}")
|
|
1009
|
+
if url:
|
|
1010
|
+
print(f" {url}")
|
|
1011
|
+
|
|
1012
|
+
return result.report
|
|
1013
|
+
|
|
1014
|
+
except ImportError as e:
|
|
1015
|
+
print(f"[red]ERROR: Failed to import DeepResearchAgent: {e}[/red]")
|
|
1016
|
+
print("Make sure praisonaiagents is installed: pip install praisonaiagents")
|
|
1017
|
+
sys.exit(1)
|
|
1018
|
+
except Exception as e:
|
|
1019
|
+
print(f"[red]ERROR: Research failed: {e}[/red]")
|
|
1020
|
+
sys.exit(1)
|
|
1021
|
+
|
|
936
1022
|
if __name__ == "__main__":
|
|
937
1023
|
praison_ai = PraisonAI()
|
|
938
1024
|
praison_ai.main()
|
|
@@ -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.90 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.90"
|
|
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 = ""
|
|
@@ -102,7 +102,7 @@ autogen-v4 = [
|
|
|
102
102
|
|
|
103
103
|
[tool.poetry]
|
|
104
104
|
name = "PraisonAI"
|
|
105
|
-
version = "2.2.
|
|
105
|
+
version = "2.2.90"
|
|
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 = ""
|
|
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.89 → praisonai-2.2.90}/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
|