PraisonAI 0.0.59rc6__tar.gz → 0.0.59rc8__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 (46) hide show
  1. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/PKG-INFO +1 -1
  2. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/cli.py +42 -10
  3. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/deploy.py +1 -1
  4. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/setup/setup_conda_env.sh +1 -1
  5. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/pyproject.toml +1 -1
  6. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/LICENSE +0 -0
  7. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/README.md +0 -0
  8. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/__init__.py +0 -0
  9. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/__main__.py +0 -0
  10. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/agents_generator.py +0 -0
  11. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/auto.py +0 -0
  12. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/chainlit_ui.py +0 -0
  13. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/inbuilt_tools/__init__.py +0 -0
  14. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  15. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/inc/__init__.py +0 -0
  16. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/inc/models.py +0 -0
  17. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/android-chrome-192x192.png +0 -0
  18. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/android-chrome-512x512.png +0 -0
  19. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/apple-touch-icon.png +0 -0
  20. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/fantasy.svg +0 -0
  21. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/favicon-16x16.png +0 -0
  22. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/favicon-32x32.png +0 -0
  23. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/favicon.ico +0 -0
  24. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/game.svg +0 -0
  25. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/logo_dark.png +0 -0
  26. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/logo_light.png +0 -0
  27. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/movie.svg +0 -0
  28. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/thriller.svg +0 -0
  29. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/setup/__init__.py +0 -0
  30. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/setup/build.py +0 -0
  31. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/setup/config.yaml +0 -0
  32. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/setup/post_install.py +0 -0
  33. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/setup/setup_conda_env.py +0 -0
  34. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/test.py +0 -0
  35. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/train.py +0 -0
  36. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/chat.py +0 -0
  37. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/code.py +0 -0
  38. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/context.py +0 -0
  39. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/public/fantasy.svg +0 -0
  40. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/public/game.svg +0 -0
  41. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/public/logo_dark.png +0 -0
  42. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/public/logo_light.png +0 -0
  43. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/public/movie.svg +0 -0
  44. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/public/thriller.svg +0 -0
  45. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/sql_alchemy.py +0 -0
  46. {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PraisonAI
3
- Version: 0.0.59rc6
3
+ Version: 0.0.59rc8
4
4
  Summary: PraisonAI application combines AutoGen and CrewAI or similar frameworks into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customization, and efficient human-agent collaboration.
5
5
  Author: Mervin Praison
6
6
  Requires-Python: >=3.10,<3.13
@@ -13,6 +13,7 @@ from .auto import AutoGenerator
13
13
  from .agents_generator import AgentsGenerator
14
14
  from .inbuilt_tools import *
15
15
  import shutil
16
+ import subprocess
16
17
  import logging
17
18
  logging.basicConfig(level=os.environ.get('LOGLEVEL', 'INFO'), format='%(asctime)s - %(levelname)s - %(message)s')
18
19
 
@@ -27,6 +28,34 @@ try:
27
28
  GRADIO_AVAILABLE = True
28
29
  except ImportError:
29
30
  GRADIO_AVAILABLE = False
31
+
32
+ def stream_subprocess(command, env=None):
33
+ """
34
+ Execute a subprocess command and stream the output to the terminal in real-time.
35
+
36
+ Args:
37
+ command (list): A list containing the command and its arguments.
38
+ env (dict, optional): Environment variables for the subprocess.
39
+ """
40
+ process = subprocess.Popen(
41
+ command,
42
+ stdout=subprocess.PIPE,
43
+ stderr=subprocess.STDOUT,
44
+ text=True,
45
+ bufsize=1,
46
+ universal_newlines=True,
47
+ env=env
48
+ )
49
+
50
+ for line in iter(process.stdout.readline, ''):
51
+ print(line, end='')
52
+ sys.stdout.flush() # Ensure output is flushed immediately
53
+
54
+ process.stdout.close()
55
+ return_code = process.wait()
56
+
57
+ if return_code != 0:
58
+ raise subprocess.CalledProcessError(return_code, command)
30
59
 
31
60
  class PraisonAI:
32
61
  def __init__(self, agent_file="agents.yaml", framework="", auto=False, init=False, agent_yaml=None):
@@ -100,11 +129,10 @@ class PraisonAI:
100
129
  return
101
130
 
102
131
  if args.agent_file == 'train':
103
- import subprocess
104
132
  package_root = os.path.dirname(os.path.abspath(__file__))
105
133
  config_yaml_source = os.path.join(package_root, 'setup', 'config.yaml')
106
134
  config_yaml_destination = os.path.join(os.getcwd(), 'config.yaml')
107
-
135
+
108
136
  if not os.path.exists(config_yaml_destination):
109
137
  try:
110
138
  shutil.copyfile(config_yaml_source, config_yaml_destination)
@@ -113,29 +141,33 @@ class PraisonAI:
113
141
  print("config.yaml already exists in the current directory. Skipping copy.")
114
142
  else:
115
143
  print("config.yaml already exists in the current directory. Skipping copy.")
116
-
144
+
117
145
  if 'init' in sys.argv:
118
146
  from praisonai.setup.setup_conda_env import main as setup_conda_main
119
147
  setup_conda_main()
120
148
  print("All packages installed")
121
149
  return
122
-
150
+
123
151
  try:
124
152
  result = subprocess.check_output(['conda', 'env', 'list'])
125
- if 'unsloth_env' in result.decode('utf-8'):
126
- print("Conda environment 'unsloth_env' found.")
153
+ if 'prasion_env' in result.decode('utf-8'):
154
+ print("Conda environment 'prasion_env' found.")
127
155
  else:
128
156
  raise subprocess.CalledProcessError(1, 'grep')
129
157
  except subprocess.CalledProcessError:
130
- print("Conda environment 'unsloth_env' not found. Setting it up...")
158
+ print("Conda environment 'prasion_env' not found. Setting it up...")
131
159
  from praisonai.setup.setup_conda_env import main as setup_conda_main
132
160
  setup_conda_main()
133
161
  print("All packages installed.")
162
+
163
+ train_args = sys.argv[2:] # Get all arguments after 'train'
164
+ train_script_path = os.path.join(package_root, 'train.py')
134
165
 
166
+ # Set environment variables
167
+ env = os.environ.copy()
168
+ env['PYTHONUNBUFFERED'] = '1'
135
169
 
136
- train_args = sys.argv[2:] # Get all arguments after 'train'
137
- train_script_path = os.path.join(package_root, 'train.py')
138
- subprocess.check_call(['conda', 'run', '--name', 'unsloth_env', 'python', train_script_path])
170
+ stream_subprocess(['conda', 'run', '--no-capture-output', '--name', 'prasion_env', 'python', '-u', train_script_path, 'train'] + train_args, env=env)
139
171
  return
140
172
 
141
173
  invocation_cmd = "praisonai"
@@ -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==0.0.59rc6 gunicorn markdown\n")
59
+ file.write("RUN pip install flask praisonai==0.0.59rc8 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
 
@@ -33,7 +33,7 @@ else
33
33
  fi
34
34
 
35
35
  # Create and activate the Conda environment
36
- ENV_NAME="unsloth_env"
36
+ ENV_NAME="prasion_env"
37
37
  if conda info --envs | grep -q $ENV_NAME; then
38
38
  echo "Environment $ENV_NAME already exists. Recreating..."
39
39
  conda env remove -y -n $ENV_NAME # Remove existing environment
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "PraisonAI"
3
- version = "0.0.59rc6"
3
+ version = "0.0.59rc8"
4
4
  description = "PraisonAI application combines AutoGen and CrewAI or similar frameworks into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customization, and efficient human-agent collaboration."
5
5
  authors = ["Mervin Praison"]
6
6
  license = ""
File without changes
File without changes