PraisonAI 0.0.43__tar.gz → 0.0.45__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.43 → praisonai-0.0.45}/PKG-INFO +1 -1
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/deploy.py +1 -1
- praisonai-0.0.45/praisonai/public/android-chrome-192x192.png +0 -0
- praisonai-0.0.45/praisonai/public/android-chrome-512x512.png +0 -0
- praisonai-0.0.45/praisonai/public/apple-touch-icon.png +0 -0
- praisonai-0.0.45/praisonai/public/favicon-16x16.png +0 -0
- praisonai-0.0.45/praisonai/public/favicon-32x32.png +0 -0
- praisonai-0.0.45/praisonai/public/favicon.ico +0 -0
- praisonai-0.0.45/praisonai/public/logo_dark.png +0 -0
- praisonai-0.0.45/praisonai/public/logo_light.png +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/ui/chat.py +144 -14
- praisonai-0.0.45/praisonai/ui/public/fantasy.svg +3 -0
- praisonai-0.0.45/praisonai/ui/public/game.svg +3 -0
- praisonai-0.0.45/praisonai/ui/public/logo_dark.png +0 -0
- praisonai-0.0.45/praisonai/ui/public/logo_light.png +0 -0
- praisonai-0.0.45/praisonai/ui/public/movie.svg +3 -0
- praisonai-0.0.45/praisonai/ui/public/thriller.svg +3 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/pyproject.toml +1 -1
- {praisonai-0.0.43 → praisonai-0.0.45}/LICENSE +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/README.md +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/__init__.py +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/__main__.py +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/agents_generator.py +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/auto.py +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/chainlit_ui.py +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/cli.py +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/inbuilt_tools/__init__.py +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/inbuilt_tools/autogen_tools.py +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/inc/__init__.py +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/inc/models.py +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/public/fantasy.svg +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/public/game.svg +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/public/movie.svg +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/public/thriller.svg +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/praisonai/test.py +0 -0
- {praisonai-0.0.43 → praisonai-0.0.45}/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.45
|
|
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
|
|
@@ -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.45 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
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -11,6 +11,28 @@ load_dotenv()
|
|
|
11
11
|
import chainlit.data as cl_data
|
|
12
12
|
from chainlit.step import StepDict
|
|
13
13
|
from literalai.helper import utc_now
|
|
14
|
+
import logging
|
|
15
|
+
|
|
16
|
+
# Set up logging
|
|
17
|
+
logger = logging.getLogger(__name__)
|
|
18
|
+
log_level = os.getenv("LOGLEVEL", "INFO").upper()
|
|
19
|
+
logger.handlers = []
|
|
20
|
+
|
|
21
|
+
# Set up logging to console
|
|
22
|
+
console_handler = logging.StreamHandler()
|
|
23
|
+
console_handler.setLevel(log_level)
|
|
24
|
+
console_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
25
|
+
console_handler.setFormatter(console_formatter)
|
|
26
|
+
logger.addHandler(console_handler)
|
|
27
|
+
|
|
28
|
+
# Set the logging level for the logger
|
|
29
|
+
logger.setLevel(log_level)
|
|
30
|
+
|
|
31
|
+
CHAINLIT_AUTH_SECRET = os.getenv("CHAINLIT_AUTH_SECRET")
|
|
32
|
+
|
|
33
|
+
if not CHAINLIT_AUTH_SECRET:
|
|
34
|
+
os.environ["CHAINLIT_AUTH_SECRET"] = "p8BPhQChpg@J>jBz$wGxqLX2V>yTVgP*7Ky9H$aV:axW~ANNX-7_T:o@lnyCBu^U"
|
|
35
|
+
CHAINLIT_AUTH_SECRET = os.getenv("CHAINLIT_AUTH_SECRET")
|
|
14
36
|
|
|
15
37
|
now = utc_now()
|
|
16
38
|
|
|
@@ -43,9 +65,51 @@ def initialize_db():
|
|
|
43
65
|
FOREIGN KEY (threadId) REFERENCES threads (id)
|
|
44
66
|
)
|
|
45
67
|
''')
|
|
68
|
+
cursor.execute('''
|
|
69
|
+
CREATE TABLE IF NOT EXISTS settings (
|
|
70
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
71
|
+
key TEXT UNIQUE,
|
|
72
|
+
value TEXT
|
|
73
|
+
)
|
|
74
|
+
''')
|
|
46
75
|
conn.commit()
|
|
47
76
|
conn.close()
|
|
48
77
|
|
|
78
|
+
def save_setting(key: str, value: str):
|
|
79
|
+
"""Saves a setting to the database.
|
|
80
|
+
|
|
81
|
+
Args:
|
|
82
|
+
key: The setting key.
|
|
83
|
+
value: The setting value.
|
|
84
|
+
"""
|
|
85
|
+
conn = sqlite3.connect(DB_PATH)
|
|
86
|
+
cursor = conn.cursor()
|
|
87
|
+
cursor.execute(
|
|
88
|
+
"""
|
|
89
|
+
INSERT OR REPLACE INTO settings (id, key, value)
|
|
90
|
+
VALUES ((SELECT id FROM settings WHERE key = ?), ?, ?)
|
|
91
|
+
""",
|
|
92
|
+
(key, key, value),
|
|
93
|
+
)
|
|
94
|
+
conn.commit()
|
|
95
|
+
conn.close()
|
|
96
|
+
|
|
97
|
+
def load_setting(key: str) -> str:
|
|
98
|
+
"""Loads a setting from the database.
|
|
99
|
+
|
|
100
|
+
Args:
|
|
101
|
+
key: The setting key.
|
|
102
|
+
|
|
103
|
+
Returns:
|
|
104
|
+
The setting value, or None if the key is not found.
|
|
105
|
+
"""
|
|
106
|
+
conn = sqlite3.connect(DB_PATH)
|
|
107
|
+
cursor = conn.cursor()
|
|
108
|
+
cursor.execute('SELECT value FROM settings WHERE key = ?', (key,))
|
|
109
|
+
result = cursor.fetchone()
|
|
110
|
+
conn.close()
|
|
111
|
+
return result[0] if result else None
|
|
112
|
+
|
|
49
113
|
def save_thread_to_db(thread):
|
|
50
114
|
conn = sqlite3.connect(DB_PATH)
|
|
51
115
|
cursor = conn.cursor()
|
|
@@ -57,7 +121,7 @@ def save_thread_to_db(thread):
|
|
|
57
121
|
# No steps to save as steps are empty in the provided thread data
|
|
58
122
|
conn.commit()
|
|
59
123
|
conn.close()
|
|
60
|
-
|
|
124
|
+
logger.debug("Thread saved to DB")
|
|
61
125
|
|
|
62
126
|
def update_thread_in_db(thread):
|
|
63
127
|
conn = sqlite3.connect(DB_PATH)
|
|
@@ -70,7 +134,7 @@ def update_thread_in_db(thread):
|
|
|
70
134
|
''', (thread['id'], thread['name'], thread['createdAt'], thread['userId'], thread['userIdentifier']))
|
|
71
135
|
|
|
72
136
|
# Fetch message_history from metadata
|
|
73
|
-
message_history =
|
|
137
|
+
message_history = cl.user_session.get("message_history", [])
|
|
74
138
|
|
|
75
139
|
# Ensure user messages come first followed by assistant messages
|
|
76
140
|
user_messages = [msg for msg in message_history if msg['role'] == 'user']
|
|
@@ -102,15 +166,29 @@ def update_thread_in_db(thread):
|
|
|
102
166
|
|
|
103
167
|
conn.commit()
|
|
104
168
|
conn.close()
|
|
169
|
+
logger.debug("Thread updated in DB")
|
|
170
|
+
|
|
171
|
+
def delete_thread_from_db(thread_id: str):
|
|
172
|
+
"""Deletes a thread and its steps from the database.
|
|
173
|
+
|
|
174
|
+
Args:
|
|
175
|
+
thread_id: The ID of the thread to delete.
|
|
176
|
+
"""
|
|
177
|
+
conn = sqlite3.connect(DB_PATH)
|
|
178
|
+
cursor = conn.cursor()
|
|
179
|
+
cursor.execute('DELETE FROM threads WHERE id = ?', (thread_id,))
|
|
180
|
+
cursor.execute('DELETE FROM steps WHERE threadId = ?', (thread_id,))
|
|
181
|
+
conn.commit()
|
|
182
|
+
conn.close()
|
|
105
183
|
|
|
106
184
|
def load_threads_from_db():
|
|
107
185
|
conn = sqlite3.connect(DB_PATH)
|
|
108
186
|
cursor = conn.cursor()
|
|
109
|
-
cursor.execute('SELECT * FROM threads')
|
|
187
|
+
cursor.execute('SELECT * FROM threads ORDER BY createdAt ASC')
|
|
110
188
|
thread_rows = cursor.fetchall()
|
|
111
189
|
threads = []
|
|
112
190
|
for thread_row in thread_rows:
|
|
113
|
-
cursor.execute('SELECT * FROM steps WHERE threadId = ?', (thread_row[0],))
|
|
191
|
+
cursor.execute('SELECT * FROM steps WHERE threadId = ? ORDER BY createdAt ASC', (thread_row[0],))
|
|
114
192
|
step_rows = cursor.fetchall()
|
|
115
193
|
steps = []
|
|
116
194
|
for step_row in step_rows:
|
|
@@ -131,6 +209,7 @@ def load_threads_from_db():
|
|
|
131
209
|
"steps": steps
|
|
132
210
|
})
|
|
133
211
|
conn.close()
|
|
212
|
+
logger.debug("Threads loaded from DB")
|
|
134
213
|
return threads
|
|
135
214
|
|
|
136
215
|
# Initialize the database
|
|
@@ -141,9 +220,11 @@ deleted_thread_ids = [] # type: List[str]
|
|
|
141
220
|
|
|
142
221
|
class TestDataLayer(cl_data.BaseDataLayer):
|
|
143
222
|
async def get_user(self, identifier: str):
|
|
223
|
+
logger.debug(f"Getting user: {identifier}")
|
|
144
224
|
return cl.PersistedUser(id="test", createdAt=now, identifier=identifier)
|
|
145
225
|
|
|
146
226
|
async def create_user(self, user: cl.User):
|
|
227
|
+
logger.debug(f"Creating user: {user.identifier}")
|
|
147
228
|
return cl.PersistedUser(id="test", createdAt=now, identifier=user.identifier)
|
|
148
229
|
|
|
149
230
|
async def update_thread(
|
|
@@ -154,6 +235,7 @@ class TestDataLayer(cl_data.BaseDataLayer):
|
|
|
154
235
|
metadata: Optional[Dict] = None,
|
|
155
236
|
tags: Optional[List[str]] = None,
|
|
156
237
|
):
|
|
238
|
+
logger.debug(f"Updating thread: {thread_id}")
|
|
157
239
|
thread = next((t for t in thread_history if t["id"] == thread_id), None)
|
|
158
240
|
if thread:
|
|
159
241
|
if name:
|
|
@@ -162,10 +244,12 @@ class TestDataLayer(cl_data.BaseDataLayer):
|
|
|
162
244
|
thread["metadata"] = metadata
|
|
163
245
|
if tags:
|
|
164
246
|
thread["tags"] = tags
|
|
165
|
-
|
|
247
|
+
|
|
248
|
+
logger.debug(f"Thread: {thread}")
|
|
166
249
|
cl.user_session.set("message_history", thread['metadata']['message_history'])
|
|
167
250
|
cl.user_session.set("thread_id", thread["id"])
|
|
168
|
-
|
|
251
|
+
update_thread_in_db(thread)
|
|
252
|
+
logger.debug(f"Thread updated: {thread_id}")
|
|
169
253
|
|
|
170
254
|
else:
|
|
171
255
|
thread_history.append(
|
|
@@ -191,6 +275,7 @@ class TestDataLayer(cl_data.BaseDataLayer):
|
|
|
191
275
|
"steps": [],
|
|
192
276
|
}
|
|
193
277
|
save_thread_to_db(thread)
|
|
278
|
+
logger.debug(f"Thread created: {thread_id}")
|
|
194
279
|
|
|
195
280
|
@cl_data.queue_until_user_message()
|
|
196
281
|
async def create_step(self, step_dict: StepDict):
|
|
@@ -204,48 +289,79 @@ class TestDataLayer(cl_data.BaseDataLayer):
|
|
|
204
289
|
thread["steps"].append(step_dict)
|
|
205
290
|
|
|
206
291
|
async def get_thread_author(self, thread_id: str):
|
|
292
|
+
logger.debug(f"Getting thread author: {thread_id}")
|
|
207
293
|
return "admin"
|
|
208
294
|
|
|
209
295
|
async def list_threads(
|
|
210
296
|
self, pagination: cl_data.Pagination, filters: cl_data.ThreadFilter
|
|
211
297
|
) -> cl_data.PaginatedResponse[cl_data.ThreadDict]:
|
|
298
|
+
logger.debug(f"Listing threads")
|
|
212
299
|
return cl_data.PaginatedResponse(
|
|
213
|
-
data=[t for t in thread_history if t["id"] not in deleted_thread_ids],
|
|
300
|
+
data=[t for t in thread_history if t["id"] not in deleted_thread_ids][::-1],
|
|
214
301
|
pageInfo=cl_data.PageInfo(
|
|
215
302
|
hasNextPage=False, startCursor=None, endCursor=None
|
|
216
303
|
),
|
|
217
304
|
)
|
|
218
305
|
|
|
219
306
|
async def get_thread(self, thread_id: str):
|
|
307
|
+
logger.debug(f"Getting thread: {thread_id}")
|
|
220
308
|
thread_history = load_threads_from_db()
|
|
221
309
|
return next((t for t in thread_history if t["id"] == thread_id), None)
|
|
222
310
|
|
|
223
311
|
async def delete_thread(self, thread_id: str):
|
|
224
312
|
deleted_thread_ids.append(thread_id)
|
|
313
|
+
delete_thread_from_db(thread_id)
|
|
314
|
+
logger.debug(f"Deleted thread: {thread_id}")
|
|
225
315
|
|
|
226
316
|
cl_data._data_layer = TestDataLayer()
|
|
227
317
|
|
|
228
318
|
@cl.on_chat_start
|
|
229
319
|
async def start():
|
|
230
320
|
initialize_db()
|
|
231
|
-
|
|
321
|
+
model_name = load_setting("model_name")
|
|
322
|
+
|
|
323
|
+
if model_name:
|
|
324
|
+
cl.user_session.set("model_name", model_name)
|
|
325
|
+
else:
|
|
326
|
+
# If no setting found, use default or environment variable
|
|
327
|
+
model_name = os.getenv("MODEL_NAME", "gpt-3.5-turbo")
|
|
328
|
+
cl.user_session.set("model_name", model_name)
|
|
329
|
+
logger.debug(f"Model name: {model_name}")
|
|
330
|
+
settings = cl.ChatSettings(
|
|
232
331
|
[
|
|
233
332
|
TextInput(
|
|
234
333
|
id="model_name",
|
|
235
334
|
label="Enter the Model Name",
|
|
236
|
-
placeholder="e.g., gpt-3.5-turbo"
|
|
335
|
+
placeholder="e.g., gpt-3.5-turbo",
|
|
336
|
+
initial=model_name
|
|
237
337
|
)
|
|
238
338
|
]
|
|
239
|
-
)
|
|
339
|
+
)
|
|
340
|
+
cl.user_session.set("settings", settings)
|
|
341
|
+
await settings.send()
|
|
240
342
|
|
|
241
343
|
@cl.on_settings_update
|
|
242
344
|
async def setup_agent(settings):
|
|
345
|
+
logger.debug(settings)
|
|
346
|
+
cl.user_session.set("settings", settings)
|
|
243
347
|
model_name = settings["model_name"]
|
|
244
348
|
cl.user_session.set("model_name", model_name)
|
|
349
|
+
|
|
350
|
+
# Save in settings table
|
|
351
|
+
save_setting("model_name", model_name)
|
|
352
|
+
|
|
353
|
+
# Save in thread metadata
|
|
354
|
+
thread_id = cl.user_session.get("thread_id")
|
|
355
|
+
if thread_id:
|
|
356
|
+
thread = await cl_data.get_thread(thread_id)
|
|
357
|
+
if thread:
|
|
358
|
+
metadata = thread.get("metadata", {})
|
|
359
|
+
metadata["model_name"] = model_name
|
|
360
|
+
await cl_data.update_thread(thread_id, metadata=metadata)
|
|
245
361
|
|
|
246
362
|
@cl.on_message
|
|
247
363
|
async def main(message: cl.Message):
|
|
248
|
-
model_name =
|
|
364
|
+
model_name = load_setting("model_name") or os.getenv("MODEL_NAME") or "gpt-3.5-turbo"
|
|
249
365
|
message_history = cl.user_session.get("message_history", [])
|
|
250
366
|
message_history.append({"role": "user", "content": message.content})
|
|
251
367
|
|
|
@@ -266,9 +382,9 @@ async def main(message: cl.Message):
|
|
|
266
382
|
if token := part['choices'][0]['delta']['content']:
|
|
267
383
|
await msg.stream_token(token)
|
|
268
384
|
full_response += token
|
|
269
|
-
|
|
385
|
+
logger.debug(f"Full response: {full_response}")
|
|
270
386
|
message_history.append({"role": "assistant", "content": full_response})
|
|
271
|
-
|
|
387
|
+
logger.debug(f"Message history: {message_history}")
|
|
272
388
|
cl.user_session.set("message_history", message_history)
|
|
273
389
|
await msg.update()
|
|
274
390
|
|
|
@@ -291,6 +407,20 @@ async def send_count():
|
|
|
291
407
|
|
|
292
408
|
@cl.on_chat_resume
|
|
293
409
|
async def on_chat_resume(thread: cl_data.ThreadDict):
|
|
410
|
+
logger.info(f"Resuming chat: {thread['id']}")
|
|
411
|
+
model_name = load_setting("model_name") or os.getenv("MODEL_NAME") or "gpt-3.5-turbo"
|
|
412
|
+
logger.debug(f"Model name: {model_name}")
|
|
413
|
+
settings = cl.ChatSettings(
|
|
414
|
+
[
|
|
415
|
+
TextInput(
|
|
416
|
+
id="model_name",
|
|
417
|
+
label="Enter the Model Name",
|
|
418
|
+
placeholder="e.g., gpt-3.5-turbo",
|
|
419
|
+
initial=model_name
|
|
420
|
+
)
|
|
421
|
+
]
|
|
422
|
+
)
|
|
423
|
+
await settings.send()
|
|
294
424
|
thread_id = thread["id"]
|
|
295
425
|
cl.user_session.set("thread_id", thread["id"])
|
|
296
426
|
message_history = cl.user_session.get("message_history", [])
|
|
@@ -303,6 +433,6 @@ async def on_chat_resume(thread: cl_data.ThreadDict):
|
|
|
303
433
|
elif msg_type == "assistant_message":
|
|
304
434
|
message_history.append({"role": "assistant", "content": message.get("output", "")})
|
|
305
435
|
else:
|
|
306
|
-
|
|
436
|
+
logger.warning(f"Message without type: {message}")
|
|
307
437
|
|
|
308
438
|
cl.user_session.set("message_history", message_history)
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
3
|
+
<svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M840.5 798.2L662.3 599.5l-151 173.7-173.7-173.7-167.7 201c-21 30.4 0.9 71.8 37.9 71.6l594.7-3.3c36.2-0.1 57.8-40.3 38-70.6z" fill="#FFB89A" /><path d="M741.6 647.3l-52.3-47.7c-12.2-11.2-31.2-10.3-42.4 1.9s-10.3 31.2 1.9 42.4l52.3 47.7c5.8 5.3 13 7.8 20.2 7.8 8.1 0 16.2-3.3 22.2-9.8 11.2-12.1 10.3-31.1-1.9-42.3zM631.2 546.5c-12.4-11-31.4-9.8-42.3 2.6l-98.8 111.7-171-165.7L87.9 724.7c-11.8 11.7-11.8 30.7-0.1 42.4 5.9 5.9 13.6 8.9 21.3 8.9 7.6 0 15.3-2.9 21.1-8.7l189.4-188.1 173.8 168.5L633.8 589c11-12.5 9.8-31.5-2.6-42.5z" fill="#33CC99" /><path d="M721.3 342.8m-35.1 0a35.1 35.1 0 1 0 70.2 0 35.1 35.1 0 1 0-70.2 0Z" fill="#33CC99" /><path d="M743.2 175.1H191.6c-70.6 0-128.3 57.7-128.3 128.3v499.2c0 70.6 57.7 128.3 128.3 128.3h551.5c70.6 0 128.3-57.7 128.3-128.3V303.5c0.1-70.6-57.7-128.4-128.2-128.4z m68.3 627.6c0 18.1-7.1 35.2-20.1 48.2-13 13-30.1 20.1-48.2 20.1H191.6c-18.1 0-35.2-7.1-48.2-20.1-13-13-20.1-30.1-20.1-48.2V303.5c0-18.1 7.1-35.2 20.1-48.2 13-13 30.1-20.1 48.2-20.1h551.5c18.1 0 35.2 7.1 48.2 20.1 13 13 20.1 30.1 20.1 48.2v499.2z" fill="#45484C" /><path d="M799.7 90.9H237.2c-16.6 0-30 13.4-30 30s13.4 30 30 30h562.4c26.1 0 50.8 10.3 69.4 28.9 18.6 18.6 28.9 43.3 28.9 69.4v482.4c0 16.6 13.4 30 30 30s30-13.4 30-30V249.2C958 161.9 887 90.9 799.7 90.9z" fill="#45484C" /></svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
3
|
+
<svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M570.2 842c-50.6 0-278.7-180-278.7-401.9 0-58.8-2.9-133.1-1-183.9-50.8 3.2-91.4 45.7-91.4 97.3v272.1c37.4 194.7 137.5 334 255.2 334 69.5 0 132.9-48.6 180.9-128.5-20.8 7.1-42.6 10.9-65 10.9z" fill="#FFB89A" /><path d="M926.1 191.8C900.5 74.1 817.9 62.1 704.9 62.1c-29.1 0-60.3 0.8-93 0.8-36 0-70.5-1.1-102.5-1.1-109.7 0-189.8 12.5-201.3 123.7-20.4 198.3 30 617.1 306.1 617.1S939 414.3 926.1 191.8z m-76.9 268.5c-9.5 47.9-22.3 90.8-38.1 127.7-16.8 39.2-37 71.4-60 95.8-37.3 39.5-82.1 58.7-137 58.7-53.4 0-97.6-20.1-134.9-61.6-45.5-50.5-79.8-131.5-99-234.2-15.6-83.5-20.3-178.9-12.4-255.2 1.8-17.3 5.7-30.7 11.6-39.8 4.4-6.8 10.1-11.7 18.7-15.8 25.8-12.5 70.8-14.2 111.4-14.2 15 0 30.7 0.2 47.3 0.5 17.8 0.3 36.2 0.6 55.2 0.6 17.2 0 33.9-0.2 50-0.4 15.1-0.2 29.3-0.4 43.1-0.4 44.5 0 89.5 1.8 118 15.1 15.9 7.4 33.4 20.8 43.6 63 2.6 53.3 3.6 153.5-17.5 260.2z" fill="#4E5155" /><path d="M532 841.7c-32.5 22.3-70.6 33.7-113.2 33.7-29.7 0-57.3-6-82.1-17.7-23.2-11-44.7-27.4-63.9-48.7-46-50.9-80.3-131.3-99.2-232.4-15.1-80.6-19.6-172.9-12-246.8 3-29.5 12-50.2 27.5-63.2 14.2-12 35.1-19.2 65.8-22.9 16.5-2 28.2-16.9 26.3-33.3-2-16.5-16.9-28.2-33.3-26.3-42.9 5.1-73.8 16.7-97.4 36.5-27.9 23.5-43.8 57.2-48.5 103-8.2 79.3-3.4 178.1 12.7 264 9.7 51.9 23.4 99.4 40.6 141.2 19.8 48.1 44.4 88.6 73 120.4 51.6 57.2 115.7 86.2 190.6 86.2 55 0 104.5-14.9 147.2-44.2 13.7-9.4 17.1-28.1 7.7-41.7-9.4-13.7-28.1-17.2-41.8-7.8z" fill="#4E5155" /><path d="M519.7 248.5c-16.6 0-30 13.4-30 30v91.3c0 16.6 13.4 30 30 30s30-13.4 30-30v-91.3c0-16.6-13.5-30-30-30zM299.5 385.5c0-16.6-13.4-30-30-30s-30 13.4-30 30v91.3c0 16.6 13.4 30 30 30s30-13.4 30-30v-91.3zM754.6 248.5c-16.6 0-30 13.4-30 30v91.3c0 16.6 13.4 30 30 30s30-13.4 30-30v-91.3c0-16.6-13.4-30-30-30zM716.7 554.5c0-16.6-13.4-30-30-30H551v30c0 58.5 38.1 123.7 92.8 123.7 22.9 0 45-11.9 62.2-33.6 10.3-13 8.1-31.9-4.9-42.1-13-10.3-31.9-8.1-42.1 4.9-5.3 6.7-11.1 10.9-15.1 10.9-4.3 0-11.9-5.1-19.1-16.4-3.3-5.3-6.2-11.2-8.4-17.4h70.4c16.4 0 29.9-13.4 29.9-30zM401.6 704c-25.4 0-46.1-24.2-46.1-53.9 0-16.6-13.4-30-30-30s-30 13.4-30 30c0 62.8 47.6 113.9 106.1 113.9 16.6 0 30-13.4 30-30s-13.5-30-30-30z" fill="#33CC99" /></svg>
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
3
|
+
<svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M861.9 383.8H218.1c-36.4 0-66.1-29.8-66.1-66.1V288c0-36.4 29.8-66.1 66.1-66.1h643.8c36.4 0 66.1 29.8 66.1 66.1v29.7c0 36.3-29.8 66.1-66.1 66.1z" fill="#FFB89A" /><path d="M822.9 129.2H199.8c-77.2 0-140.4 63.2-140.4 140.4v487.2c0 77.2 63.2 140.4 140.4 140.4h623.1c77.2 0 140.4-63.2 140.4-140.4V269.6c0-77.2-63.2-140.4-140.4-140.4z m80.4 177H760.4L864.6 201c5.4 3.3 10.4 7.3 15 11.8 15.3 15.3 23.7 35.4 23.7 56.8v36.6z m-673.3 0l104-117h61.3l-109.1 117H230z m247.4-117h169.2L532 306.2H368.3l109.1-117z m248.8 0h65.6L676 306.2h-60l112.5-114.8-2.3-2.2zM143 212.9c15.3-15.3 35.4-23.7 56.8-23.7h53.9l-104 117h-30.4v-36.5c0.1-21.4 8.5-41.5 23.7-56.8z m736.6 600.7c-15.3 15.3-35.4 23.7-56.8 23.7h-623c-21.3 0-41.5-8.4-56.8-23.7-15.3-15.3-23.7-35.4-23.7-56.8V366.2h783.9v390.6c0.1 21.3-8.3 41.5-23.6 56.8z" fill="#45484C" /><path d="M400.5 770.6V430.9L534.1 508c14.3 8.3 19.3 26.6 11 41-8.3 14.3-26.6 19.3-41 11l-43.6-25.2v131.8l114.1-65.9-7.5-4.3c-14.3-8.3-19.3-26.6-11-41 8.3-14.3 26.6-19.3 41-11l97.5 56.3-294.1 169.9z" fill="#33CC99" /></svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
3
|
+
<svg width="800px" height="800px" viewBox="0 0 1024 1024" class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M188.3 766.5a94.4 135.8 0 1 0 188.8 0 94.4 135.8 0 1 0-188.8 0Z" fill="#FFB89A" /><path d="M931.5 397s0-0.1 0 0c-34.2-82.6-119.3-141-218.8-141-129.7 0-234.9 99.3-234.9 221.9 0 52.1 19.1 100.1 50.9 138 1 14.5 1.8 29.1 1.8 43.6 0 148.5 98.1 269 219.2 269 121 0 219.2-120.4 219.2-269 0-70.1-1.7-214.7-37.4-262.5z m-36.6 347.5c-8.7 25.3-21.1 47.9-36.8 67.1-29.8 36.5-68.3 56.7-108.5 56.7s-78.7-20.1-108.5-56.7c-15.7-19.2-28-41.8-36.8-67.1-9.3-26.9-13.9-55.5-13.9-85.1 0-16.8-1-33.5-2-47.7l-1.3-19.5-12.6-15c-24.1-28.6-36.8-63-36.8-99.3 0-89.3 78.5-161.9 174.9-161.9 36.4 0 71.4 10.3 101 29.7 28.4 18.7 65.5 81.7 65.5 81.7s17.9 27.5 24.7 98.2c4.5 46.5 5 95.9 5 133.8 0.1 29.6-4.6 58.2-13.9 85.1zM377.1 219.9c-51.8 0-93.8 42-93.8 93.8s42 93.8 93.8 93.8 93.8-42 93.8-93.8-42-93.8-93.8-93.8z m0 127.5c-18.6 0-33.8-15.2-33.8-33.8 0-18.6 15.2-33.8 33.8-33.8 18.6 0 33.8 15.2 33.8 33.8 0 18.7-15.1 33.8-33.8 33.8z" fill="#45484C" /><path d="M521.2 206.7m-50.3 0a50.3 50.3 0 1 0 100.6 0 50.3 50.3 0 1 0-100.6 0Z" fill="#45484C" /><path d="M653 156.4m-50.3 0a50.3 50.3 0 1 0 100.6 0 50.3 50.3 0 1 0-100.6 0Z" fill="#45484C" /><path d="M781.9 158.4m-50.3 0a50.3 50.3 0 1 0 100.6 0 50.3 50.3 0 1 0-100.6 0Z" fill="#45484C" /><path d="M909 206.7m-50.3 0a50.3 50.3 0 1 0 100.6 0 50.3 50.3 0 1 0-100.6 0Z" fill="#45484C" /><path d="M263.9 602.7c44.7 0 81 31.5 81 70.3 0 20.9-10.2 35.9-18.7 44.8l-15.9 19.7-0.5 27.2c0.7 7.2 0.6 16.9 0.6 24.7v4.8c0 33.7-27.4 61.2-61.2 61.2-14.9 0-33.3-9.6-48.1-25-15.2-15.9-24.6-35.9-24.6-52.3v-3.2c0-12.7 0-36.2 1-60.2 1.4-33 7.4-57.3 7.4-57.3 3.9-14.7 13.4-28.2 26.8-38 14.8-11 32.8-16.7 52.2-16.7m0-60c-66.4 0-122 42.4-137 99.4-10.9 23-10.4 112.6-10.4 135.9 0 66.9 65.8 137.3 132.7 137.3 66.9 0 121.2-54.3 121.2-121.2 0-9.2 0.3-23-0.8-34.9 22-23 35.4-53.2 35.4-86.3-0.1-71.9-63.2-130.2-141.1-130.2zM444.4 559.9c-26.4 0-47.8 21.4-47.8 47.8s21.4 47.8 47.8 47.8 47.8-21.4 47.8-47.8-21.4-47.8-47.8-47.8zM377.1 494.5c-15.2 0-27.5 12.3-27.5 27.5s12.3 27.5 27.5 27.5 27.5-12.3 27.5-27.5c0-15.3-12.3-27.5-27.5-27.5zM288.1 471.5c-15.2 0-27.5 12.3-27.5 27.5s12.3 27.5 27.5 27.5 27.5-12.3 27.5-27.5-12.4-27.5-27.5-27.5zM188.3 477.9c-15.2 0-27.5 12.3-27.5 27.5s12.3 27.5 27.5 27.5 27.5-12.3 27.5-27.5-12.3-27.5-27.5-27.5zM100.6 538.4c-15.2 0-27.5 12.3-27.5 27.5s12.3 27.5 27.5 27.5 27.5-12.3 27.5-27.5c-0.1-15.2-12.4-27.5-27.5-27.5z" fill="#45484C" /><path d="M670.1 584.6c-41.4 0-80.2-20.3-103.9-54.3-9.5-13.6-6.2-32.3 7.4-41.8 13.6-9.5 32.3-6.2 41.8 7.4 12.5 17.9 33 28.6 54.7 28.6 36.8 0 66.7-29.9 66.7-66.7 0-19.8-8.7-38.4-23.9-51.2-12.7-10.6-14.4-29.6-3.7-42.3s29.6-14.4 42.3-3.7c28.9 24.2 45.4 59.6 45.4 97.2-0.1 70-56.9 126.8-126.8 126.8z" fill="#33CC99" /><path d="M853 556.4c-26 0-49.6-14.5-60.1-36.9-7-15-0.6-32.9 14.4-39.9s32.9-0.6 39.9 14.4c0.3 0.6 2.2 2.4 5.8 2.4 1.2 0 2.3-0.2 3.3-0.6 15.5-5.9 32.8 1.8 38.7 17.3 5.9 15.5-1.8 32.8-17.3 38.7-7.9 3.1-16.2 4.6-24.7 4.6z" fill="#33CC99" /></svg>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "PraisonAI"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.45"
|
|
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
|