PraisonAI 0.0.68__tar.gz → 0.0.70__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.68 → praisonai-0.0.70}/PKG-INFO +2 -2
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/deploy.py +1 -1
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/ui/code.py +23 -4
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/ui/sql_alchemy.py +11 -1
- {praisonai-0.0.68 → praisonai-0.0.70}/pyproject.toml +3 -3
- {praisonai-0.0.68 → praisonai-0.0.70}/LICENSE +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/README.md +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/__init__.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/__main__.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/agents_generator.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/auto.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/chainlit_ui.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/cli.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/inbuilt_tools/__init__.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/inc/__init__.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/inc/config.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/inc/models.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/public/android-chrome-192x192.png +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/public/android-chrome-512x512.png +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/public/apple-touch-icon.png +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/public/fantasy.svg +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/public/favicon-16x16.png +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/public/favicon-32x32.png +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/public/favicon.ico +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/public/game.svg +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/public/logo_dark.png +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/public/logo_light.png +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/public/movie.svg +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/public/thriller.svg +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/setup/__init__.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/setup/build.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/setup/config.yaml +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/setup/post_install.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/setup/setup_conda_env.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/setup/setup_conda_env.sh +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/test.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/train.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/ui/chat.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/ui/context.py +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/ui/public/fantasy.svg +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/ui/public/game.svg +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/ui/public/logo_dark.png +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/ui/public/logo_light.png +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/ui/public/movie.svg +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/praisonai/ui/public/thriller.svg +0 -0
- {praisonai-0.0.68 → praisonai-0.0.70}/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.70
|
|
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
|
|
@@ -21,7 +21,7 @@ Provides-Extra: train
|
|
|
21
21
|
Provides-Extra: ui
|
|
22
22
|
Requires-Dist: agentops (>=0.2.6) ; extra == "agentops"
|
|
23
23
|
Requires-Dist: aiosqlite (>=0.20.0) ; extra == "chat" or extra == "code"
|
|
24
|
-
Requires-Dist: chainlit (
|
|
24
|
+
Requires-Dist: chainlit (==1.2.0) ; extra == "ui" or extra == "chat" or extra == "code"
|
|
25
25
|
Requires-Dist: crewai (>=0.32.0)
|
|
26
26
|
Requires-Dist: flask (>=3.0.0) ; extra == "api"
|
|
27
27
|
Requires-Dist: gradio (>=4.26.0) ; extra == "gradio"
|
|
@@ -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.70 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
|
|
|
@@ -216,13 +216,19 @@ async def setup_agent(settings):
|
|
|
216
216
|
# Save in thread metadata
|
|
217
217
|
thread_id = cl.user_session.get("thread_id")
|
|
218
218
|
if thread_id:
|
|
219
|
-
thread = await cl_data.get_thread(thread_id)
|
|
219
|
+
thread = await cl_data._data_layer.get_thread(thread_id)
|
|
220
220
|
if thread:
|
|
221
221
|
metadata = thread.get("metadata", {})
|
|
222
|
+
if isinstance(metadata, str):
|
|
223
|
+
try:
|
|
224
|
+
metadata = json.loads(metadata)
|
|
225
|
+
except json.JSONDecodeError:
|
|
226
|
+
metadata = {}
|
|
227
|
+
|
|
222
228
|
metadata["model_name"] = model_name
|
|
223
229
|
|
|
224
230
|
# Always store metadata as a JSON string
|
|
225
|
-
await cl_data.update_thread(thread_id, metadata=json.dumps(metadata))
|
|
231
|
+
await cl_data._data_layer.update_thread(thread_id, metadata=json.dumps(metadata))
|
|
226
232
|
|
|
227
233
|
# Update the user session with the new metadata
|
|
228
234
|
cl.user_session.set("metadata", metadata)
|
|
@@ -299,8 +305,14 @@ async def on_chat_resume(thread: ThreadDict):
|
|
|
299
305
|
thread_id = thread["id"]
|
|
300
306
|
cl.user_session.set("thread_id", thread["id"])
|
|
301
307
|
|
|
302
|
-
#
|
|
308
|
+
# Ensure metadata is a dictionary
|
|
303
309
|
metadata = thread.get("metadata", {})
|
|
310
|
+
if isinstance(metadata, str):
|
|
311
|
+
try:
|
|
312
|
+
metadata = json.loads(metadata)
|
|
313
|
+
except json.JSONDecodeError:
|
|
314
|
+
metadata = {}
|
|
315
|
+
|
|
304
316
|
cl.user_session.set("metadata", metadata)
|
|
305
317
|
|
|
306
318
|
message_history = cl.user_session.get("message_history", [])
|
|
@@ -312,7 +324,14 @@ async def on_chat_resume(thread: ThreadDict):
|
|
|
312
324
|
message_history.append({"role": "user", "content": message.get("output", "")})
|
|
313
325
|
elif msg_type == "assistant_message":
|
|
314
326
|
message_history.append({"role": "assistant", "content": message.get("output", "")})
|
|
327
|
+
elif msg_type == "run":
|
|
328
|
+
# Handle 'run' type messages
|
|
329
|
+
if message.get("isError"):
|
|
330
|
+
message_history.append({"role": "system", "content": f"Error: {message.get('output', '')}"})
|
|
331
|
+
else:
|
|
332
|
+
# You might want to handle non-error 'run' messages differently
|
|
333
|
+
pass
|
|
315
334
|
else:
|
|
316
|
-
logger.warning(f"Message without type: {message}")
|
|
335
|
+
logger.warning(f"Message without recognized type: {message}")
|
|
317
336
|
|
|
318
337
|
cl.user_session.set("message_history", message_history)
|
|
@@ -612,6 +612,16 @@ class SQLAlchemyDataLayer(BaseDataLayer):
|
|
|
612
612
|
for thread in user_threads:
|
|
613
613
|
thread_id = thread["thread_id"]
|
|
614
614
|
if thread_id is not None:
|
|
615
|
+
# Ensure metadata is a dictionary
|
|
616
|
+
metadata = thread["thread_metadata"]
|
|
617
|
+
if isinstance(metadata, str):
|
|
618
|
+
try:
|
|
619
|
+
metadata = json.loads(metadata)
|
|
620
|
+
except json.JSONDecodeError:
|
|
621
|
+
metadata = {}
|
|
622
|
+
elif metadata is None:
|
|
623
|
+
metadata = {}
|
|
624
|
+
|
|
615
625
|
thread_dicts[thread_id] = ThreadDict(
|
|
616
626
|
id=thread_id,
|
|
617
627
|
createdAt=thread["thread_createdat"],
|
|
@@ -619,7 +629,7 @@ class SQLAlchemyDataLayer(BaseDataLayer):
|
|
|
619
629
|
userId=thread["user_id"],
|
|
620
630
|
userIdentifier=thread["user_identifier"],
|
|
621
631
|
tags=thread["thread_tags"],
|
|
622
|
-
metadata=
|
|
632
|
+
metadata=metadata,
|
|
623
633
|
steps=[],
|
|
624
634
|
elements=[],
|
|
625
635
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "PraisonAI"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.70"
|
|
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 = ""
|
|
@@ -21,7 +21,7 @@ crewai = ">=0.32.0"
|
|
|
21
21
|
markdown = ">=3.5"
|
|
22
22
|
praisonai-tools = ">=0.0.7"
|
|
23
23
|
pyparsing = ">=3.0.0"
|
|
24
|
-
chainlit = {version = "
|
|
24
|
+
chainlit = {version = "==1.2.0", optional = true}
|
|
25
25
|
gradio = {version = ">=4.26.0", optional = true}
|
|
26
26
|
flask = {version = ">=3.0.0", optional = true}
|
|
27
27
|
agentops = {version = ">=0.2.6", optional = true}
|
|
@@ -70,7 +70,7 @@ mkdocstrings-python = "*"
|
|
|
70
70
|
pdoc3 = "*"
|
|
71
71
|
xmlrunner = "*"
|
|
72
72
|
unittest2 = "*"
|
|
73
|
-
chainlit = "
|
|
73
|
+
chainlit = "==1.2.0"
|
|
74
74
|
gradio = ">=4.26.0"
|
|
75
75
|
flask = ">=3.0.0"
|
|
76
76
|
agentops = ">=0.2.6"
|
|
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
|