PraisonAI 2.0.65__tar.gz → 2.0.67__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.65 → praisonai-2.0.67}/PKG-INFO +1 -1
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/cli.py +0 -12
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/deploy.py +1 -1
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/train.py +26 -11
- {praisonai-2.0.65 → praisonai-2.0.67}/pyproject.toml +2 -2
- {praisonai-2.0.65 → praisonai-2.0.67}/LICENSE +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/README.md +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/__init__.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/__main__.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/agents_generator.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/api/call.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/auto.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/chainlit_ui.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/inbuilt_tools/__init__.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/inc/__init__.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/inc/config.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/inc/models.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/public/android-chrome-192x192.png +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/public/android-chrome-512x512.png +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/public/apple-touch-icon.png +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/public/fantasy.svg +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/public/favicon-16x16.png +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/public/favicon-32x32.png +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/public/favicon.ico +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/public/game.svg +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/public/logo_dark.png +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/public/logo_light.png +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/public/movie.svg +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/public/praison-ai-agents-architecture-dark.png +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/public/praison-ai-agents-architecture.png +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/public/thriller.svg +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/setup/__init__.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/setup/build.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/setup/config.yaml +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/setup/post_install.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/setup/setup_conda_env.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/setup/setup_conda_env.sh +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/setup.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/test.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/README.md +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/agents.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/callbacks.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/chat.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/code.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/colab.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/colab_chainlit.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/components/aicoder.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/.chainlit/config.toml +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/.chainlit/translations/bn.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/.chainlit/translations/en-US.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/.chainlit/translations/gu.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/.chainlit/translations/he-IL.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/.chainlit/translations/hi.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/.chainlit/translations/kn.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/.chainlit/translations/ml.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/.chainlit/translations/mr.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/.chainlit/translations/ta.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/.chainlit/translations/te.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/.chainlit/translations/zh-CN.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/chainlit.md +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/translations/bn.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/translations/en-US.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/translations/gu.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/translations/he-IL.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/translations/hi.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/translations/kn.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/translations/ml.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/translations/mr.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/translations/ta.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/translations/te.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/config/translations/zh-CN.json +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/context.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/db.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/public/fantasy.svg +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/public/game.svg +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/public/logo_dark.png +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/public/logo_light.png +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/public/movie.svg +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/public/praison.css +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/public/thriller.svg +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/realtime.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/realtimeclient/__init__.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/realtimeclient/realtimedocs.txt +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/realtimeclient/tools.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/sql_alchemy.py +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/praisonai/ui/tools.md +0 -0
- {praisonai-2.0.65 → praisonai-2.0.67}/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.67
|
|
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
|
|
@@ -25,7 +25,6 @@ CALL_MODULE_AVAILABLE = False
|
|
|
25
25
|
CREWAI_AVAILABLE = False
|
|
26
26
|
AUTOGEN_AVAILABLE = False
|
|
27
27
|
PRAISONAI_AVAILABLE = False
|
|
28
|
-
TRAIN_AVAILABLE = False
|
|
29
28
|
try:
|
|
30
29
|
# Create necessary directories and set CHAINLIT_APP_ROOT
|
|
31
30
|
if "CHAINLIT_APP_ROOT" not in os.environ:
|
|
@@ -72,12 +71,6 @@ try:
|
|
|
72
71
|
except ImportError:
|
|
73
72
|
pass
|
|
74
73
|
|
|
75
|
-
try:
|
|
76
|
-
import accelerate
|
|
77
|
-
TRAIN_AVAILABLE = True
|
|
78
|
-
except ImportError:
|
|
79
|
-
pass
|
|
80
|
-
|
|
81
74
|
logging.basicConfig(level=os.environ.get('LOGLEVEL', 'INFO'), format='%(asctime)s - %(levelname)s - %(message)s')
|
|
82
75
|
logging.getLogger('alembic').setLevel(logging.ERROR)
|
|
83
76
|
logging.getLogger('gradio').setLevel(logging.ERROR)
|
|
@@ -399,13 +392,8 @@ class PraisonAI:
|
|
|
399
392
|
sys.exit(0)
|
|
400
393
|
|
|
401
394
|
elif args.command == 'train':
|
|
402
|
-
if not TRAIN_AVAILABLE:
|
|
403
|
-
print("[red]ERROR: Train feature is not installed. Install with:[/red]")
|
|
404
|
-
print("\npip install \"praisonai[train]\"\n")
|
|
405
|
-
sys.exit(1)
|
|
406
395
|
package_root = os.path.dirname(os.path.abspath(__file__))
|
|
407
396
|
config_yaml_destination = os.path.join(os.getcwd(), 'config.yaml')
|
|
408
|
-
|
|
409
397
|
|
|
410
398
|
elif args.command == 'ui':
|
|
411
399
|
if not CHAINLIT_AVAILABLE:
|
|
@@ -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.67 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
|
|
|
@@ -312,26 +312,41 @@ class TrainModel:
|
|
|
312
312
|
|
|
313
313
|
def prepare_modelfile_content(self):
|
|
314
314
|
output_model = self.config["hf_model_name"]
|
|
315
|
+
# Determine stop tokens from config or infer based on model name
|
|
316
|
+
model_name = self.config["model_name"].lower()
|
|
317
|
+
if "phi" in model_name:
|
|
318
|
+
inferred_stop_tokens = ["<|end|>", "<|user|>", "<|assistant|>"]
|
|
319
|
+
elif "llava" in model_name:
|
|
320
|
+
inferred_stop_tokens = ["</s>", "USER:", "ASSSISTANT:"]
|
|
321
|
+
elif "mistral" in model_name:
|
|
322
|
+
inferred_stop_tokens = ["[INST]", "[/INST]"]
|
|
323
|
+
elif "qwen" in model_name:
|
|
324
|
+
inferred_stop_tokens = ["<|endoftext|>"]
|
|
325
|
+
elif "deepseek" in model_name:
|
|
326
|
+
inferred_stop_tokens = ["<|begin▁of▁sentence|>", "<|end▁of▁sentence|>", "<|User|>", "<|Assistant|>"]
|
|
327
|
+
else:
|
|
328
|
+
inferred_stop_tokens = ["<|start_header_id|>", "<|end_header_id|>", "<|eot_id|>"]
|
|
329
|
+
# Use stop_tokens from config if provided, otherwise use inferred
|
|
330
|
+
model_stop_tokens = self.config.get("stop_tokens", inferred_stop_tokens)
|
|
331
|
+
|
|
315
332
|
gguf_path = f"{output_model}/unsloth.Q4_K_M.gguf"
|
|
316
333
|
if not os.path.exists(gguf_path):
|
|
317
334
|
self.model, self.hf_tokenizer = self.load_model()
|
|
318
335
|
self.save_model_gguf()
|
|
336
|
+
stop_parameters = "\n".join([f'PARAMETER stop "{token}"' for token in model_stop_tokens])
|
|
319
337
|
return f"""FROM {output_model}/unsloth.Q4_K_M.gguf
|
|
320
338
|
|
|
321
|
-
TEMPLATE \"\"\"Below are some instructions that describe some tasks. Write responses that appropriately complete each request.{{{{ if .Prompt }}}}
|
|
339
|
+
TEMPLATE \"\"\"Below are some instructions that describe some tasks. Write responses that appropriately complete each request.{{{{ if .Prompt }}}}
|
|
322
340
|
|
|
323
|
-
### Instruction:
|
|
324
|
-
{{{{ .Prompt }}}}
|
|
341
|
+
### Instruction:
|
|
342
|
+
{{{{ .Prompt }}}}
|
|
325
343
|
|
|
326
|
-
{{{{ end }}}}### Response:
|
|
327
|
-
{{{{ .Response }}}}\"\"\"
|
|
344
|
+
{{{{ end }}}}### Response:
|
|
345
|
+
{{{{ .Response }}}}\"\"\"
|
|
346
|
+
|
|
347
|
+
{stop_parameters}
|
|
348
|
+
"""
|
|
328
349
|
|
|
329
|
-
PARAMETER stop ""
|
|
330
|
-
PARAMETER stop ""
|
|
331
|
-
PARAMETER stop ""
|
|
332
|
-
PARAMETER stop ""
|
|
333
|
-
PARAMETER stop "<|reserved_special_token_"
|
|
334
|
-
"""
|
|
335
350
|
|
|
336
351
|
def create_and_push_ollama_model(self):
|
|
337
352
|
modelfile_content = self.prepare_modelfile_content()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "PraisonAI"
|
|
3
|
-
version = "2.0.
|
|
3
|
+
version = "2.0.67"
|
|
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.67"
|
|
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
|
|
File without changes
|
|
File without changes
|
{praisonai-2.0.65 → praisonai-2.0.67}/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
|