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.
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/PKG-INFO +1 -1
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/cli.py +42 -10
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/deploy.py +1 -1
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/setup/setup_conda_env.sh +1 -1
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/pyproject.toml +1 -1
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/LICENSE +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/README.md +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/__init__.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/__main__.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/agents_generator.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/auto.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/chainlit_ui.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/inbuilt_tools/__init__.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/inc/__init__.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/inc/models.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/android-chrome-192x192.png +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/android-chrome-512x512.png +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/apple-touch-icon.png +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/fantasy.svg +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/favicon-16x16.png +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/favicon-32x32.png +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/favicon.ico +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/game.svg +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/logo_dark.png +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/logo_light.png +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/movie.svg +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/public/thriller.svg +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/setup/__init__.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/setup/build.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/setup/config.yaml +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/setup/post_install.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/setup/setup_conda_env.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/test.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/train.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/chat.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/code.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/context.py +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/public/fantasy.svg +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/public/game.svg +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/public/logo_dark.png +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/public/logo_light.png +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/public/movie.svg +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/public/thriller.svg +0 -0
- {praisonai-0.0.59rc6 → praisonai-0.0.59rc8}/praisonai/ui/sql_alchemy.py +0 -0
- {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.
|
|
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 '
|
|
126
|
-
print("Conda environment '
|
|
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 '
|
|
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
|
-
|
|
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.
|
|
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="
|
|
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.
|
|
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
|
|
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
|