PraisonAI 0.0.59rc9__tar.gz → 0.0.59rc11__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 (47) hide show
  1. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/PKG-INFO +1 -1
  2. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/cli.py +22 -14
  3. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/deploy.py +1 -1
  4. praisonai-0.0.59rc11/praisonai/inc/config.py +96 -0
  5. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/setup/config.yaml +8 -4
  6. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/setup/setup_conda_env.sh +1 -1
  7. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/train.py +12 -5
  8. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/pyproject.toml +1 -1
  9. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/LICENSE +0 -0
  10. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/README.md +0 -0
  11. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/__init__.py +0 -0
  12. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/__main__.py +0 -0
  13. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/agents_generator.py +0 -0
  14. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/auto.py +0 -0
  15. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/chainlit_ui.py +0 -0
  16. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/inbuilt_tools/__init__.py +0 -0
  17. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
  18. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/inc/__init__.py +0 -0
  19. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/inc/models.py +0 -0
  20. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/public/android-chrome-192x192.png +0 -0
  21. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/public/android-chrome-512x512.png +0 -0
  22. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/public/apple-touch-icon.png +0 -0
  23. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/public/fantasy.svg +0 -0
  24. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/public/favicon-16x16.png +0 -0
  25. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/public/favicon-32x32.png +0 -0
  26. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/public/favicon.ico +0 -0
  27. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/public/game.svg +0 -0
  28. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/public/logo_dark.png +0 -0
  29. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/public/logo_light.png +0 -0
  30. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/public/movie.svg +0 -0
  31. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/public/thriller.svg +0 -0
  32. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/setup/__init__.py +0 -0
  33. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/setup/build.py +0 -0
  34. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/setup/post_install.py +0 -0
  35. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/setup/setup_conda_env.py +0 -0
  36. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/test.py +0 -0
  37. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/ui/chat.py +0 -0
  38. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/ui/code.py +0 -0
  39. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/ui/context.py +0 -0
  40. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/ui/public/fantasy.svg +0 -0
  41. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/ui/public/game.svg +0 -0
  42. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/ui/public/logo_dark.png +0 -0
  43. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/ui/public/logo_light.png +0 -0
  44. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/ui/public/movie.svg +0 -0
  45. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/ui/public/thriller.svg +0 -0
  46. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/ui/sql_alchemy.py +0 -0
  47. {praisonai-0.0.59rc9 → praisonai-0.0.59rc11}/praisonai/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PraisonAI
3
- Version: 0.0.59rc9
3
+ Version: 0.0.59rc11
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
@@ -12,6 +12,7 @@ import argparse
12
12
  from .auto import AutoGenerator
13
13
  from .agents_generator import AgentsGenerator
14
14
  from .inbuilt_tools import *
15
+ from .inc.config import generate_config
15
16
  import shutil
16
17
  import subprocess
17
18
  import logging
@@ -130,17 +131,20 @@ class PraisonAI:
130
131
 
131
132
  if args.agent_file == 'train':
132
133
  package_root = os.path.dirname(os.path.abspath(__file__))
133
- config_yaml_source = os.path.join(package_root, 'setup', 'config.yaml')
134
134
  config_yaml_destination = os.path.join(os.getcwd(), 'config.yaml')
135
135
 
136
- if not os.path.exists(config_yaml_destination):
137
- try:
138
- shutil.copyfile(config_yaml_source, config_yaml_destination)
139
- print("config.yaml copied to the current directory.")
140
- except FileExistsError:
141
- print("config.yaml already exists in the current directory. Skipping copy.")
142
- else:
143
- print("config.yaml already exists in the current directory. Skipping copy.")
136
+ # Generate config.yaml using the function
137
+ config = generate_config(
138
+ model_name=args.model,
139
+ hf_model_name=args.hf,
140
+ ollama_model_name=args.ollama,
141
+ dataset=[{
142
+ "name": args.dataset
143
+ }]
144
+ )
145
+ with open('config.yaml', 'w') as f:
146
+ yaml.dump(config, f, default_flow_style=False, indent=2)
147
+
144
148
 
145
149
  if 'init' in sys.argv:
146
150
  from praisonai.setup.setup_conda_env import main as setup_conda_main
@@ -150,12 +154,12 @@ class PraisonAI:
150
154
 
151
155
  try:
152
156
  result = subprocess.check_output(['conda', 'env', 'list'])
153
- if 'prasion_env' in result.decode('utf-8'):
154
- print("Conda environment 'prasion_env' found.")
157
+ if 'praison_env' in result.decode('utf-8'):
158
+ print("Conda environment 'praison_env' found.")
155
159
  else:
156
160
  raise subprocess.CalledProcessError(1, 'grep')
157
161
  except subprocess.CalledProcessError:
158
- print("Conda environment 'prasion_env' not found. Setting it up...")
162
+ print("Conda environment 'praison_env' not found. Setting it up...")
159
163
  from praisonai.setup.setup_conda_env import main as setup_conda_main
160
164
  setup_conda_main()
161
165
  print("All packages installed.")
@@ -167,7 +171,7 @@ class PraisonAI:
167
171
  env = os.environ.copy()
168
172
  env['PYTHONUNBUFFERED'] = '1'
169
173
 
170
- stream_subprocess(['conda', 'run', '--no-capture-output', '--name', 'prasion_env', 'python', '-u', train_script_path, 'train'] + train_args, env=env)
174
+ stream_subprocess(['conda', 'run', '--no-capture-output', '--name', 'praison_env', 'python', '-u', train_script_path, 'train'] + train_args, env=env)
171
175
  return
172
176
 
173
177
  invocation_cmd = "praisonai"
@@ -240,7 +244,11 @@ class PraisonAI:
240
244
  parser.add_argument("--auto", nargs=argparse.REMAINDER, help="Enable auto mode and pass arguments for it")
241
245
  parser.add_argument("--init", nargs=argparse.REMAINDER, help="Enable auto mode and pass arguments for it")
242
246
  parser.add_argument("agent_file", nargs="?", help="Specify the agent file")
243
- parser.add_argument("--deploy", action="store_true", help="Deploy the application") # New argument
247
+ parser.add_argument("--deploy", action="store_true", help="Deploy the application")
248
+ parser.add_argument("--model", type=str, help="Model name")
249
+ parser.add_argument("--hf", type=str, help="Hugging Face model name")
250
+ parser.add_argument("--ollama", type=str, help="Ollama model name")
251
+ parser.add_argument("--dataset", type=str, help="Dataset name for training", default="yahma/alpaca-cleaned")
244
252
  args, unknown_args = parser.parse_known_args()
245
253
 
246
254
  if unknown_args and unknown_args[0] == '-b' and unknown_args[1] == 'api:app':
@@ -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.59rc9 gunicorn markdown\n")
59
+ file.write("RUN pip install flask praisonai==0.0.59rc11 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
 
@@ -0,0 +1,96 @@
1
+ def generate_config(
2
+ ollama_save=None,
3
+ huggingface_save=None,
4
+ train=None,
5
+ model_name=None,
6
+ hf_model_name=None,
7
+ ollama_model_name=None,
8
+ model_parameters=None,
9
+ max_seq_length=None,
10
+ load_in_4bit=None,
11
+ lora_r=None,
12
+ lora_target_modules=None,
13
+ lora_alpha=None,
14
+ lora_dropout=None,
15
+ lora_bias=None,
16
+ use_gradient_checkpointing=None,
17
+ random_state=None,
18
+ use_rslora=None,
19
+ loftq_config=None,
20
+ dataset=None,
21
+ dataset_text_field=None,
22
+ dataset_num_proc=None,
23
+ packing=None,
24
+ per_device_train_batch_size=None,
25
+ gradient_accumulation_steps=None,
26
+ warmup_steps=None,
27
+ num_train_epochs=None,
28
+ max_steps=None,
29
+ learning_rate=None,
30
+ logging_steps=None,
31
+ optim=None,
32
+ weight_decay=None,
33
+ lr_scheduler_type=None,
34
+ seed=None,
35
+ output_dir=None,
36
+ quantization_method=None
37
+ ):
38
+ """Generates the configuration for PraisonAI with dynamic overrides."""
39
+
40
+ config = {
41
+ "ollama_save": ollama_save or "false",
42
+ "huggingface_save": huggingface_save or "false",
43
+ "train": train or "false",
44
+
45
+ "model_name": model_name or "unsloth/Meta-Llama-3.1-8B-Instruct-bnb-4bit",
46
+ "hf_model_name": hf_model_name or "mervinpraison/llama-3.1-tamilan-8B-test",
47
+ "ollama_model": ollama_model_name or "mervinpraison/llama3.1-tamilan-test",
48
+ "model_parameters": model_parameters or "8b",
49
+
50
+ "dataset": dataset or [
51
+ {
52
+ "name": "yahma/alpaca-cleaned",
53
+ "split_type": "train",
54
+ "processing_func": "format_prompts",
55
+ "rename": {"input": "input", "output": "output", "instruction": "instruction"},
56
+ "filter_data": False,
57
+ "filter_column_value": "id",
58
+ "filter_value": "alpaca",
59
+ "num_samples": 20000
60
+ }
61
+ ],
62
+
63
+ "dataset_text_field": dataset_text_field or "text",
64
+ "dataset_num_proc": dataset_num_proc or 2,
65
+ "packing": packing or False,
66
+
67
+ "max_seq_length": max_seq_length or 2048,
68
+ "load_in_4bit": load_in_4bit or True,
69
+ "lora_r": lora_r or 16,
70
+ "lora_target_modules": lora_target_modules or [
71
+ "q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"
72
+ ],
73
+ "lora_alpha": lora_alpha or 16,
74
+ "lora_dropout": lora_dropout or 0,
75
+ "lora_bias": lora_bias or "none",
76
+ "use_gradient_checkpointing": use_gradient_checkpointing or "unsloth",
77
+ "random_state": random_state or 3407,
78
+ "use_rslora": use_rslora or False,
79
+ "loftq_config": loftq_config or None,
80
+
81
+ "per_device_train_batch_size": per_device_train_batch_size or 2,
82
+ "gradient_accumulation_steps": gradient_accumulation_steps or 2,
83
+ "warmup_steps": warmup_steps or 5,
84
+ "num_train_epochs": num_train_epochs or 1,
85
+ "max_steps": max_steps or 10,
86
+ "learning_rate": learning_rate or 2.0e-4,
87
+ "logging_steps": logging_steps or 1,
88
+ "optim": optim or "adamw_8bit",
89
+ "weight_decay": weight_decay or 0.01,
90
+ "lr_scheduler_type": lr_scheduler_type or "linear",
91
+ "seed": seed or 3407,
92
+ "output_dir": output_dir or "outputs",
93
+
94
+ "quantization_method": quantization_method or ["q4_k_m"]
95
+ }
96
+ return config
@@ -1,5 +1,12 @@
1
+ ollama_save: "true"
2
+ huggingface_save: "true"
3
+ train: "true"
4
+
1
5
  model_name: "unsloth/Meta-Llama-3.1-8B-Instruct-bnb-4bit"
2
6
  hf_model_name: "mervinpraison/llama-3.1-tamilan-8B-test"
7
+ ollama_model: "mervinpraison/llama3.1-tamilan-test"
8
+ model_parameters: "8b"
9
+
3
10
  max_seq_length: 2048
4
11
  load_in_4bit: true
5
12
  lora_r: 16
@@ -50,7 +57,4 @@ seed: 3407
50
57
  output_dir: "outputs"
51
58
 
52
59
  quantization_method:
53
- - "q4_k_m"
54
-
55
- ollama_model: "llama3.1-tamilan-test"
56
- model_parameters: "8b"
60
+ - "q4_k_m"
@@ -33,7 +33,7 @@ else
33
33
  fi
34
34
 
35
35
  # Create and activate the Conda environment
36
- ENV_NAME="prasion_env"
36
+ ENV_NAME="praison_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
@@ -210,11 +210,18 @@ PARAMETER stop "<|reserved_special_token_"
210
210
  self.check_gpu()
211
211
  self.check_ram()
212
212
  # self.install_packages()
213
- self.prepare_model()
214
- self.train_model()
215
- self.save_model_merged()
216
- self.push_model_gguf()
217
- self.create_and_push_ollama_model()
213
+ if self.config.get("train", "true").lower() == "true":
214
+ self.prepare_model()
215
+ self.train_model()
216
+
217
+ if self.config.get("huggingface_save", "true").lower() == "true":
218
+ self.save_model_merged()
219
+
220
+ if self.config.get("huggingface_save_gguf", "true").lower() == "true":
221
+ self.push_model_gguf()
222
+
223
+ if self.config.get("ollama_save", "true").lower() == "true":
224
+ self.create_and_push_ollama_model()
218
225
 
219
226
 
220
227
  def main():
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "PraisonAI"
3
- version = "0.0.59rc9"
3
+ version = "0.0.59rc11"
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