mirror of
https://github.com/MervinPraison/PraisonAI.git
synced 2026-11-09 17:31:52 -10:00
Fixing bugs in .praisonignore and respecting .gitignore
This commit is contained in:
1 parent
af898375fa
commit
855afc8f7b
12 files changed
+1791
-261
No files matched your search
+3
-3
@@ -3,10 +3,10 @@ crewai
|
||||
.cache
|
||||
__pycache__
|
||||
chroma.sqlite3
|
||||
test/
|
||||
dist/
|
||||
test
|
||||
dist
|
||||
.env
|
||||
assets/*
|
||||
assets
|
||||
.idea
|
||||
.DS_Store
|
||||
.pytest_cache
|
||||
|
||||
+2
-73
@@ -1,74 +1,3 @@
|
||||
.*
|
||||
*.pyc
|
||||
pycache
|
||||
.git
|
||||
.gitignore
|
||||
.vscode
|
||||
.idea
|
||||
.DS_Store
|
||||
.lock
|
||||
.pyc
|
||||
.env
|
||||
docs
|
||||
tests
|
||||
test
|
||||
tmp
|
||||
temp
|
||||
.txt
|
||||
.md
|
||||
.json
|
||||
.csv
|
||||
.tsv
|
||||
public
|
||||
.sql
|
||||
.sqlite
|
||||
.db
|
||||
.db3
|
||||
.sqlite3
|
||||
.log
|
||||
.zip
|
||||
.gz
|
||||
.tar
|
||||
.rar
|
||||
.7z
|
||||
.pdf
|
||||
.jpg
|
||||
.jpeg
|
||||
.png
|
||||
.gif
|
||||
.svg
|
||||
cookbooks
|
||||
assets
|
||||
pycache
|
||||
dist
|
||||
build
|
||||
node_modules
|
||||
venv
|
||||
crewAI
|
||||
.vscode
|
||||
.cache
|
||||
*.__pycache__
|
||||
__pycache__
|
||||
*chroma.sqlite3
|
||||
test/
|
||||
dist/
|
||||
.env
|
||||
assets/*
|
||||
.idea
|
||||
.DS_Store
|
||||
.pytest_cache
|
||||
praisonAI.egg-info
|
||||
test.yaml
|
||||
db
|
||||
praisonai_prompt.txt
|
||||
watch.sh
|
||||
docs.sh
|
||||
other
|
||||
output
|
||||
*.chainlit
|
||||
.files
|
||||
site
|
||||
flagged
|
||||
*public
|
||||
threads.db
|
||||
trained_agents_data.pkl
|
||||
docs
|
||||
tests
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
FROM python:3.11-slim
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
RUN pip install flask praisonai==0.0.52 gunicorn markdown
|
||||
RUN pip install flask praisonai==0.0.53 gunicorn markdown
|
||||
EXPOSE 8080
|
||||
CMD ["gunicorn", "-b", "0.0.0.0:8080", "api:app"]
|
||||
@@ -110,7 +110,7 @@ Loads environment variables from .env file or system and sets them.</p>
|
||||
file.write("FROM python:3.11-slim\n")
|
||||
file.write("WORKDIR /app\n")
|
||||
file.write("COPY . .\n")
|
||||
file.write("RUN pip install flask praisonai==0.0.52 gunicorn markdown\n")
|
||||
file.write("RUN pip install flask praisonai==0.0.53 gunicorn markdown\n")
|
||||
file.write("EXPOSE 8080\n")
|
||||
file.write('CMD ["gunicorn", "-b", "0.0.0.0:8080", "api:app"]\n')
|
||||
|
||||
|
||||
@@ -0,0 +1,836 @@
|
||||
{
|
||||
"type": "excalidraw",
|
||||
"version": 2,
|
||||
"source": "https://excalidraw.com",
|
||||
"elements": [
|
||||
{
|
||||
"id": "gBkFdzkAVdEWutG3qTrB0",
|
||||
"type": "rectangle",
|
||||
"x": 536.4349670410156,
|
||||
"y": -677.1792297363279,
|
||||
"width": 178.43490600585935,
|
||||
"height": 44.315124511718736,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0g",
|
||||
"roundness": {
|
||||
"type": 3
|
||||
},
|
||||
"seed": 1579902398,
|
||||
"version": 443,
|
||||
"versionNonce": 523921598,
|
||||
"isDeleted": false,
|
||||
"boundElements": [
|
||||
{
|
||||
"type": "text",
|
||||
"id": "rXvHMTDzQw3KXG5Bw6Miq"
|
||||
},
|
||||
{
|
||||
"id": "3zLj8LrUzhGGXhZaDSJgs",
|
||||
"type": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "cKGXib4-dKdUl9yJcSfq-",
|
||||
"type": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "BS019CDTkphQWLmagOrGS",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1721295852022,
|
||||
"link": null,
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"id": "rXvHMTDzQw3KXG5Bw6Miq",
|
||||
"type": "text",
|
||||
"x": 564.0524749755859,
|
||||
"y": -667.5216674804685,
|
||||
"width": 123.19989013671875,
|
||||
"height": 25,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0gV",
|
||||
"roundness": null,
|
||||
"seed": 1207531362,
|
||||
"version": 342,
|
||||
"versionNonce": 538330338,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721295807540,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"text": "Multi Agents",
|
||||
"fontSize": 20,
|
||||
"fontFamily": 1,
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": "gBkFdzkAVdEWutG3qTrB0",
|
||||
"originalText": "Multi Agents",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
{
|
||||
"type": "rectangle",
|
||||
"version": 725,
|
||||
"versionNonce": 1063769278,
|
||||
"index": "b0i",
|
||||
"isDeleted": false,
|
||||
"id": "hOUwrI2Zw6CbQVBzSj3j_",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 823.7187652587891,
|
||||
"y": -680.7326354980466,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 186.26303100585935,
|
||||
"height": 40.635437011718736,
|
||||
"seed": 1055936190,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 3
|
||||
},
|
||||
"boundElements": [
|
||||
{
|
||||
"id": "YYmrmCN3zGtGeOPK2Ccbw",
|
||||
"type": "arrow"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"id": "Fnl1rz2BlXU6J8Yq8YZwu"
|
||||
},
|
||||
{
|
||||
"id": "e8q5v4IQp7HYVNQjKLNNS",
|
||||
"type": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "jBFbBBsN9eixvuKN38SL2",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1721295856562,
|
||||
"link": null,
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"id": "Fnl1rz2BlXU6J8Yq8YZwu",
|
||||
"type": "text",
|
||||
"x": 858.4403305053711,
|
||||
"y": -672.9149169921873,
|
||||
"width": 116.81990051269531,
|
||||
"height": 25,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0iV",
|
||||
"roundness": null,
|
||||
"seed": 594220962,
|
||||
"version": 142,
|
||||
"versionNonce": 1682602622,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721295812159,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"text": "Single Agent",
|
||||
"fontSize": 20,
|
||||
"fontFamily": 1,
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": "hOUwrI2Zw6CbQVBzSj3j_",
|
||||
"originalText": "Single Agent",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
{
|
||||
"id": "3zLj8LrUzhGGXhZaDSJgs",
|
||||
"type": "arrow",
|
||||
"x": 775.7563686946191,
|
||||
"y": -733.9083557128904,
|
||||
"width": 64.00441130704803,
|
||||
"height": 52.950469970703125,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0k",
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"seed": 1611346302,
|
||||
"version": 800,
|
||||
"versionNonce": 1469757538,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721296052140,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
-64.00441130704803,
|
||||
52.950469970703125
|
||||
]
|
||||
],
|
||||
"lastCommittedPoint": null,
|
||||
"startBinding": null,
|
||||
"endBinding": {
|
||||
"elementId": "gBkFdzkAVdEWutG3qTrB0",
|
||||
"gap": 3.778656005859375,
|
||||
"focus": 0.47197049085398457
|
||||
},
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "YYmrmCN3zGtGeOPK2Ccbw",
|
||||
"type": "arrow",
|
||||
"x": 810.3017634410855,
|
||||
"y": -732.6739807128904,
|
||||
"width": 85.77694061921636,
|
||||
"height": 44.679656982421875,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0l",
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"seed": 412089534,
|
||||
"version": 776,
|
||||
"versionNonce": 774462498,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721296052140,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
85.77694061921636,
|
||||
44.679656982421875
|
||||
]
|
||||
],
|
||||
"lastCommittedPoint": null,
|
||||
"startBinding": null,
|
||||
"endBinding": {
|
||||
"elementId": "hOUwrI2Zw6CbQVBzSj3j_",
|
||||
"gap": 7.261688232421875,
|
||||
"focus": 0.24350278296403458
|
||||
},
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow"
|
||||
},
|
||||
{
|
||||
"type": "rectangle",
|
||||
"version": 752,
|
||||
"versionNonce": 1452690686,
|
||||
"index": "b0o",
|
||||
"isDeleted": false,
|
||||
"id": "nsG_S4C6dOJXv5Hn71Vpv",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 491.27333068847656,
|
||||
"y": -569.7236175537107,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 130.18418049302826,
|
||||
"height": 37.446437865250886,
|
||||
"seed": 902159166,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 3
|
||||
},
|
||||
"boundElements": [
|
||||
{
|
||||
"type": "text",
|
||||
"id": "EDt610N0slRoDwCoDDSiH"
|
||||
},
|
||||
{
|
||||
"id": "cKGXib4-dKdUl9yJcSfq-",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1721295849323,
|
||||
"link": null,
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 535,
|
||||
"versionNonce": 1980346430,
|
||||
"index": "b0p",
|
||||
"isDeleted": false,
|
||||
"id": "EDt610N0slRoDwCoDDSiH",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 522.0554462645805,
|
||||
"y": -563.5003986210853,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 68.61994934082031,
|
||||
"height": 25,
|
||||
"seed": 2032386942,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1721295835808,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 1,
|
||||
"text": "CrewAI",
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": "nsG_S4C6dOJXv5Hn71Vpv",
|
||||
"originalText": "CrewAI",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
{
|
||||
"type": "rectangle",
|
||||
"version": 851,
|
||||
"versionNonce": 1844039998,
|
||||
"index": "b0q",
|
||||
"isDeleted": false,
|
||||
"id": "QCX8dp2PO9HkjqWidvhuK",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 648.4615867188858,
|
||||
"y": -569.9485283193521,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 130.18418049302826,
|
||||
"height": 37.446437865250886,
|
||||
"seed": 555393982,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 3
|
||||
},
|
||||
"boundElements": [
|
||||
{
|
||||
"type": "text",
|
||||
"id": "hGN-D4W-BHfkd2cd-XnSP"
|
||||
},
|
||||
{
|
||||
"id": "BS019CDTkphQWLmagOrGS",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1721295852022,
|
||||
"link": null,
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 241,
|
||||
"versionNonce": 2015226750,
|
||||
"index": "b0r",
|
||||
"isDeleted": false,
|
||||
"id": "hGN-D4W-BHfkd2cd-XnSP",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 672.0937083985053,
|
||||
"y": -563.7253093867267,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 82.91993713378906,
|
||||
"height": 25,
|
||||
"seed": 533429246,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1721295841280,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 1,
|
||||
"text": "AutoGen",
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": "QCX8dp2PO9HkjqWidvhuK",
|
||||
"originalText": "AutoGen",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
{
|
||||
"type": "rectangle",
|
||||
"version": 768,
|
||||
"versionNonce": 1459025150,
|
||||
"index": "b0s",
|
||||
"isDeleted": false,
|
||||
"id": "7Ii8GSxtLkw5d3u_f-_kt",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 819.1223602294922,
|
||||
"y": -575.3343048095701,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 130.18418049302826,
|
||||
"height": 37.446437865250886,
|
||||
"seed": 1314962402,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 3
|
||||
},
|
||||
"boundElements": [
|
||||
{
|
||||
"type": "text",
|
||||
"id": "nbS4zZL3SX1ojYnZ8ubj4"
|
||||
},
|
||||
{
|
||||
"id": "e8q5v4IQp7HYVNQjKLNNS",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1721295854370,
|
||||
"link": null,
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 546,
|
||||
"versionNonce": 1535924578,
|
||||
"index": "b0t",
|
||||
"isDeleted": false,
|
||||
"id": "nbS4zZL3SX1ojYnZ8ubj4",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 860.5144687865532,
|
||||
"y": -569.1110858769447,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 47.39996337890625,
|
||||
"height": 25,
|
||||
"seed": 1952640930,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1721295829009,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 1,
|
||||
"text": "Chat",
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": "7Ii8GSxtLkw5d3u_f-_kt",
|
||||
"originalText": "Chat",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
{
|
||||
"type": "rectangle",
|
||||
"version": 963,
|
||||
"versionNonce": 1521237310,
|
||||
"index": "b0u",
|
||||
"isDeleted": false,
|
||||
"id": "PqS5K_ghWhUe3nTiPZEWE",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 970.203835254042,
|
||||
"y": -574.8456535634928,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 130.18418049302826,
|
||||
"height": 37.446437865250886,
|
||||
"seed": 1265150818,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 3
|
||||
},
|
||||
"boundElements": [
|
||||
{
|
||||
"type": "text",
|
||||
"id": "sCKqppUowczlf2-SGqYyT"
|
||||
},
|
||||
{
|
||||
"id": "jBFbBBsN9eixvuKN38SL2",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1721295856562,
|
||||
"link": null,
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 343,
|
||||
"versionNonce": 1701505250,
|
||||
"index": "b0v",
|
||||
"isDeleted": false,
|
||||
"id": "sCKqppUowczlf2-SGqYyT",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 1012.1559489990913,
|
||||
"y": -568.6224346308674,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 46.27995300292969,
|
||||
"height": 25,
|
||||
"seed": 2042687266,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1721295829009,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 1,
|
||||
"text": "Code",
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": "PqS5K_ghWhUe3nTiPZEWE",
|
||||
"originalText": "Code",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
{
|
||||
"id": "cKGXib4-dKdUl9yJcSfq-",
|
||||
"type": "arrow",
|
||||
"x": 627.2005615234375,
|
||||
"y": -630.5438232421873,
|
||||
"width": 60.1224365234375,
|
||||
"height": 55.1927490234375,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0w",
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"seed": 233127038,
|
||||
"version": 98,
|
||||
"versionNonce": 1160484030,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721295849323,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
-60.1224365234375,
|
||||
55.1927490234375
|
||||
]
|
||||
],
|
||||
"lastCommittedPoint": null,
|
||||
"startBinding": {
|
||||
"elementId": "gBkFdzkAVdEWutG3qTrB0",
|
||||
"focus": -0.24888641301408482,
|
||||
"gap": 2.320281982421875
|
||||
},
|
||||
"endBinding": {
|
||||
"elementId": "nsG_S4C6dOJXv5Hn71Vpv",
|
||||
"focus": -0.18497317396435772,
|
||||
"gap": 5.627456665039119
|
||||
},
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "BS019CDTkphQWLmagOrGS",
|
||||
"type": "arrow",
|
||||
"x": 630.2474365234375,
|
||||
"y": -629.0698547363279,
|
||||
"width": 80.703125,
|
||||
"height": 53.463531494140625,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0x",
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"seed": 310377790,
|
||||
"version": 80,
|
||||
"versionNonce": 799711486,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721295852022,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
80.703125,
|
||||
53.463531494140625
|
||||
]
|
||||
],
|
||||
"lastCommittedPoint": null,
|
||||
"startBinding": {
|
||||
"elementId": "gBkFdzkAVdEWutG3qTrB0",
|
||||
"focus": 0.28190124455103954,
|
||||
"gap": 3.79425048828125
|
||||
},
|
||||
"endBinding": {
|
||||
"elementId": "QCX8dp2PO9HkjqWidvhuK",
|
||||
"focus": 0.366344355951018,
|
||||
"gap": 5.657794922835194
|
||||
},
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "e8q5v4IQp7HYVNQjKLNNS",
|
||||
"type": "arrow",
|
||||
"x": 923.2083740234375,
|
||||
"y": -638.9448547363279,
|
||||
"width": 36.4427490234375,
|
||||
"height": 58.135406494140625,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0y",
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"seed": 895023486,
|
||||
"version": 78,
|
||||
"versionNonce": 780221630,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721295854370,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
-36.4427490234375,
|
||||
58.135406494140625
|
||||
]
|
||||
],
|
||||
"lastCommittedPoint": null,
|
||||
"startBinding": {
|
||||
"elementId": "hOUwrI2Zw6CbQVBzSj3j_",
|
||||
"focus": -0.1871843733465698,
|
||||
"gap": 1.15234375
|
||||
},
|
||||
"endBinding": {
|
||||
"elementId": "7Ii8GSxtLkw5d3u_f-_kt",
|
||||
"focus": -0.16423249726949576,
|
||||
"gap": 5.475143432617244
|
||||
},
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "jBFbBBsN9eixvuKN38SL2",
|
||||
"type": "arrow",
|
||||
"x": 922.2291870117188,
|
||||
"y": -637.4943237304685,
|
||||
"width": 98.93487548828125,
|
||||
"height": 53.84375,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0z",
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"seed": 277587262,
|
||||
"version": 96,
|
||||
"versionNonce": 1061850366,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721295856562,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
98.93487548828125,
|
||||
53.84375
|
||||
]
|
||||
],
|
||||
"lastCommittedPoint": null,
|
||||
"startBinding": {
|
||||
"elementId": "hOUwrI2Zw6CbQVBzSj3j_",
|
||||
"focus": 0.2815822612188661,
|
||||
"gap": 2.602874755859375
|
||||
},
|
||||
"endBinding": {
|
||||
"elementId": "PqS5K_ghWhUe3nTiPZEWE",
|
||||
"focus": 0.3663457157233071,
|
||||
"gap": 8.804920166975819
|
||||
},
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "TPQS4IlMmufv2ygx4l4Yf",
|
||||
"type": "image",
|
||||
"x": 653.6796875,
|
||||
"y": -811.0686543782549,
|
||||
"width": 266.3379620962191,
|
||||
"height": 88.4737120216356,
|
||||
"angle": 0,
|
||||
"strokeColor": "transparent",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b10",
|
||||
"roundness": null,
|
||||
"seed": 1698053026,
|
||||
"version": 457,
|
||||
"versionNonce": 1848779518,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721296094680,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"status": "saved",
|
||||
"fileId": "80dea94d36f7e9692b17699d94280a7f4cdefbfe",
|
||||
"scale": [
|
||||
1,
|
||||
1
|
||||
]
|
||||
}
|
||||
],
|
||||
"appState": {
|
||||
"gridSize": null,
|
||||
"viewBackgroundColor": "#ffffff"
|
||||
},
|
||||
"files": {
|
||||
"80dea94d36f7e9692b17699d94280a7f4cdefbfe": {
|
||||
"mimeType": "image/png",
|
||||
"id": "80dea94d36f7e9692b17699d94280a7f4cdefbfe",
|
||||
"dataURL": "data:image/png;base64,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 truncated
|
||||
"created": 1721296075040,
|
||||
"lastRetrieved": 1721296075040
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 134 KiB |
@@ -0,0 +1,853 @@
|
||||
{
|
||||
"type": "excalidraw",
|
||||
"version": 2,
|
||||
"source": "https://excalidraw.com",
|
||||
"elements": [
|
||||
{
|
||||
"id": "ZVmbn-ir2uHhJ_qUop7GE",
|
||||
"type": "image",
|
||||
"x": 669.690185546875,
|
||||
"y": -822.9161682128904,
|
||||
"width": 254.83337402343744,
|
||||
"height": 84.20964435722587,
|
||||
"angle": 0,
|
||||
"strokeColor": "transparent",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0f",
|
||||
"roundness": null,
|
||||
"seed": 873820286,
|
||||
"version": 722,
|
||||
"versionNonce": 1653069566,
|
||||
"isDeleted": false,
|
||||
"boundElements": [
|
||||
{
|
||||
"id": "3zLj8LrUzhGGXhZaDSJgs",
|
||||
"type": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "YYmrmCN3zGtGeOPK2Ccbw",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1721295867729,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"status": "saved",
|
||||
"fileId": "daf9ace2f7f7a3f554f96c82cd99723eda6409d6",
|
||||
"scale": [
|
||||
1,
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "gBkFdzkAVdEWutG3qTrB0",
|
||||
"type": "rectangle",
|
||||
"x": 536.4349670410156,
|
||||
"y": -677.1792297363279,
|
||||
"width": 178.43490600585935,
|
||||
"height": 44.315124511718736,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0g",
|
||||
"roundness": {
|
||||
"type": 3
|
||||
},
|
||||
"seed": 1579902398,
|
||||
"version": 443,
|
||||
"versionNonce": 523921598,
|
||||
"isDeleted": false,
|
||||
"boundElements": [
|
||||
{
|
||||
"type": "text",
|
||||
"id": "rXvHMTDzQw3KXG5Bw6Miq"
|
||||
},
|
||||
{
|
||||
"id": "3zLj8LrUzhGGXhZaDSJgs",
|
||||
"type": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "cKGXib4-dKdUl9yJcSfq-",
|
||||
"type": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "BS019CDTkphQWLmagOrGS",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1721295852022,
|
||||
"link": null,
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"id": "rXvHMTDzQw3KXG5Bw6Miq",
|
||||
"type": "text",
|
||||
"x": 564.0524749755859,
|
||||
"y": -667.5216674804685,
|
||||
"width": 123.19989013671875,
|
||||
"height": 25,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0gV",
|
||||
"roundness": null,
|
||||
"seed": 1207531362,
|
||||
"version": 342,
|
||||
"versionNonce": 538330338,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721295807540,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"text": "Multi Agents",
|
||||
"fontSize": 20,
|
||||
"fontFamily": 1,
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": "gBkFdzkAVdEWutG3qTrB0",
|
||||
"originalText": "Multi Agents",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
{
|
||||
"type": "rectangle",
|
||||
"version": 725,
|
||||
"versionNonce": 1063769278,
|
||||
"index": "b0i",
|
||||
"isDeleted": false,
|
||||
"id": "hOUwrI2Zw6CbQVBzSj3j_",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 823.7187652587891,
|
||||
"y": -680.7326354980466,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 186.26303100585935,
|
||||
"height": 40.635437011718736,
|
||||
"seed": 1055936190,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 3
|
||||
},
|
||||
"boundElements": [
|
||||
{
|
||||
"id": "YYmrmCN3zGtGeOPK2Ccbw",
|
||||
"type": "arrow"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"id": "Fnl1rz2BlXU6J8Yq8YZwu"
|
||||
},
|
||||
{
|
||||
"id": "e8q5v4IQp7HYVNQjKLNNS",
|
||||
"type": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "jBFbBBsN9eixvuKN38SL2",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1721295856562,
|
||||
"link": null,
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"id": "Fnl1rz2BlXU6J8Yq8YZwu",
|
||||
"type": "text",
|
||||
"x": 858.4403305053711,
|
||||
"y": -672.9149169921873,
|
||||
"width": 116.81990051269531,
|
||||
"height": 25,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0iV",
|
||||
"roundness": null,
|
||||
"seed": 594220962,
|
||||
"version": 142,
|
||||
"versionNonce": 1682602622,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721295812159,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"text": "Single Agent",
|
||||
"fontSize": 20,
|
||||
"fontFamily": 1,
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": "hOUwrI2Zw6CbQVBzSj3j_",
|
||||
"originalText": "Single Agent",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
{
|
||||
"id": "3zLj8LrUzhGGXhZaDSJgs",
|
||||
"type": "arrow",
|
||||
"x": 775.7563686946191,
|
||||
"y": -733.9083557128904,
|
||||
"width": 64.00441130704803,
|
||||
"height": 52.950469970703125,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0k",
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"seed": 1611346302,
|
||||
"version": 799,
|
||||
"versionNonce": 1860218750,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721295867729,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
-64.00441130704803,
|
||||
52.950469970703125
|
||||
]
|
||||
],
|
||||
"lastCommittedPoint": null,
|
||||
"startBinding": {
|
||||
"elementId": "ZVmbn-ir2uHhJ_qUop7GE",
|
||||
"gap": 4.798168142774102,
|
||||
"focus": -0.19800863838720784
|
||||
},
|
||||
"endBinding": {
|
||||
"elementId": "gBkFdzkAVdEWutG3qTrB0",
|
||||
"gap": 3.778656005859375,
|
||||
"focus": 0.47197049085398457
|
||||
},
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "YYmrmCN3zGtGeOPK2Ccbw",
|
||||
"type": "arrow",
|
||||
"x": 810.3017634410855,
|
||||
"y": -732.6739807128904,
|
||||
"width": 85.77694061921636,
|
||||
"height": 44.679656982421875,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0l",
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"seed": 412089534,
|
||||
"version": 775,
|
||||
"versionNonce": 1681745918,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721295867729,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
85.77694061921636,
|
||||
44.679656982421875
|
||||
]
|
||||
],
|
||||
"lastCommittedPoint": null,
|
||||
"startBinding": {
|
||||
"elementId": "ZVmbn-ir2uHhJ_qUop7GE",
|
||||
"gap": 6.032543142774102,
|
||||
"focus": 0.38025747349732314
|
||||
},
|
||||
"endBinding": {
|
||||
"elementId": "hOUwrI2Zw6CbQVBzSj3j_",
|
||||
"gap": 7.261688232421875,
|
||||
"focus": 0.24350278296403458
|
||||
},
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow"
|
||||
},
|
||||
{
|
||||
"type": "rectangle",
|
||||
"version": 752,
|
||||
"versionNonce": 1452690686,
|
||||
"index": "b0o",
|
||||
"isDeleted": false,
|
||||
"id": "nsG_S4C6dOJXv5Hn71Vpv",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 491.27333068847656,
|
||||
"y": -569.7236175537107,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 130.18418049302826,
|
||||
"height": 37.446437865250886,
|
||||
"seed": 902159166,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 3
|
||||
},
|
||||
"boundElements": [
|
||||
{
|
||||
"type": "text",
|
||||
"id": "EDt610N0slRoDwCoDDSiH"
|
||||
},
|
||||
{
|
||||
"id": "cKGXib4-dKdUl9yJcSfq-",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1721295849323,
|
||||
"link": null,
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 535,
|
||||
"versionNonce": 1980346430,
|
||||
"index": "b0p",
|
||||
"isDeleted": false,
|
||||
"id": "EDt610N0slRoDwCoDDSiH",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 522.0554462645805,
|
||||
"y": -563.5003986210853,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 68.61994934082031,
|
||||
"height": 25,
|
||||
"seed": 2032386942,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1721295835808,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 1,
|
||||
"text": "CrewAI",
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": "nsG_S4C6dOJXv5Hn71Vpv",
|
||||
"originalText": "CrewAI",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
{
|
||||
"type": "rectangle",
|
||||
"version": 851,
|
||||
"versionNonce": 1844039998,
|
||||
"index": "b0q",
|
||||
"isDeleted": false,
|
||||
"id": "QCX8dp2PO9HkjqWidvhuK",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 648.4615867188858,
|
||||
"y": -569.9485283193521,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 130.18418049302826,
|
||||
"height": 37.446437865250886,
|
||||
"seed": 555393982,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 3
|
||||
},
|
||||
"boundElements": [
|
||||
{
|
||||
"type": "text",
|
||||
"id": "hGN-D4W-BHfkd2cd-XnSP"
|
||||
},
|
||||
{
|
||||
"id": "BS019CDTkphQWLmagOrGS",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1721295852022,
|
||||
"link": null,
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 241,
|
||||
"versionNonce": 2015226750,
|
||||
"index": "b0r",
|
||||
"isDeleted": false,
|
||||
"id": "hGN-D4W-BHfkd2cd-XnSP",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 672.0937083985053,
|
||||
"y": -563.7253093867267,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 82.91993713378906,
|
||||
"height": 25,
|
||||
"seed": 533429246,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1721295841280,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 1,
|
||||
"text": "AutoGen",
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": "QCX8dp2PO9HkjqWidvhuK",
|
||||
"originalText": "AutoGen",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
{
|
||||
"type": "rectangle",
|
||||
"version": 768,
|
||||
"versionNonce": 1459025150,
|
||||
"index": "b0s",
|
||||
"isDeleted": false,
|
||||
"id": "7Ii8GSxtLkw5d3u_f-_kt",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 819.1223602294922,
|
||||
"y": -575.3343048095701,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 130.18418049302826,
|
||||
"height": 37.446437865250886,
|
||||
"seed": 1314962402,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 3
|
||||
},
|
||||
"boundElements": [
|
||||
{
|
||||
"type": "text",
|
||||
"id": "nbS4zZL3SX1ojYnZ8ubj4"
|
||||
},
|
||||
{
|
||||
"id": "e8q5v4IQp7HYVNQjKLNNS",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1721295854370,
|
||||
"link": null,
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 546,
|
||||
"versionNonce": 1535924578,
|
||||
"index": "b0t",
|
||||
"isDeleted": false,
|
||||
"id": "nbS4zZL3SX1ojYnZ8ubj4",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 860.5144687865532,
|
||||
"y": -569.1110858769447,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 47.39996337890625,
|
||||
"height": 25,
|
||||
"seed": 1952640930,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1721295829009,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 1,
|
||||
"text": "Chat",
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": "7Ii8GSxtLkw5d3u_f-_kt",
|
||||
"originalText": "Chat",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
{
|
||||
"type": "rectangle",
|
||||
"version": 963,
|
||||
"versionNonce": 1521237310,
|
||||
"index": "b0u",
|
||||
"isDeleted": false,
|
||||
"id": "PqS5K_ghWhUe3nTiPZEWE",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 970.203835254042,
|
||||
"y": -574.8456535634928,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 130.18418049302826,
|
||||
"height": 37.446437865250886,
|
||||
"seed": 1265150818,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": {
|
||||
"type": 3
|
||||
},
|
||||
"boundElements": [
|
||||
{
|
||||
"type": "text",
|
||||
"id": "sCKqppUowczlf2-SGqYyT"
|
||||
},
|
||||
{
|
||||
"id": "jBFbBBsN9eixvuKN38SL2",
|
||||
"type": "arrow"
|
||||
}
|
||||
],
|
||||
"updated": 1721295856562,
|
||||
"link": null,
|
||||
"locked": false
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"version": 343,
|
||||
"versionNonce": 1701505250,
|
||||
"index": "b0v",
|
||||
"isDeleted": false,
|
||||
"id": "sCKqppUowczlf2-SGqYyT",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"angle": 0,
|
||||
"x": 1012.1559489990913,
|
||||
"y": -568.6224346308674,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"width": 46.27995300292969,
|
||||
"height": 25,
|
||||
"seed": 2042687266,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"roundness": null,
|
||||
"boundElements": [],
|
||||
"updated": 1721295829009,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"fontSize": 20,
|
||||
"fontFamily": 1,
|
||||
"text": "Code",
|
||||
"textAlign": "center",
|
||||
"verticalAlign": "middle",
|
||||
"containerId": "PqS5K_ghWhUe3nTiPZEWE",
|
||||
"originalText": "Code",
|
||||
"autoResize": true,
|
||||
"lineHeight": 1.25
|
||||
},
|
||||
{
|
||||
"id": "cKGXib4-dKdUl9yJcSfq-",
|
||||
"type": "arrow",
|
||||
"x": 627.2005615234375,
|
||||
"y": -630.5438232421873,
|
||||
"width": 60.1224365234375,
|
||||
"height": 55.1927490234375,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0w",
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"seed": 233127038,
|
||||
"version": 98,
|
||||
"versionNonce": 1160484030,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721295849323,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
-60.1224365234375,
|
||||
55.1927490234375
|
||||
]
|
||||
],
|
||||
"lastCommittedPoint": null,
|
||||
"startBinding": {
|
||||
"elementId": "gBkFdzkAVdEWutG3qTrB0",
|
||||
"focus": -0.24888641301408482,
|
||||
"gap": 2.320281982421875
|
||||
},
|
||||
"endBinding": {
|
||||
"elementId": "nsG_S4C6dOJXv5Hn71Vpv",
|
||||
"focus": -0.18497317396435772,
|
||||
"gap": 5.627456665039119
|
||||
},
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "BS019CDTkphQWLmagOrGS",
|
||||
"type": "arrow",
|
||||
"x": 630.2474365234375,
|
||||
"y": -629.0698547363279,
|
||||
"width": 80.703125,
|
||||
"height": 53.463531494140625,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0x",
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"seed": 310377790,
|
||||
"version": 80,
|
||||
"versionNonce": 799711486,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721295852022,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
80.703125,
|
||||
53.463531494140625
|
||||
]
|
||||
],
|
||||
"lastCommittedPoint": null,
|
||||
"startBinding": {
|
||||
"elementId": "gBkFdzkAVdEWutG3qTrB0",
|
||||
"focus": 0.28190124455103954,
|
||||
"gap": 3.79425048828125
|
||||
},
|
||||
"endBinding": {
|
||||
"elementId": "QCX8dp2PO9HkjqWidvhuK",
|
||||
"focus": 0.366344355951018,
|
||||
"gap": 5.657794922835194
|
||||
},
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "e8q5v4IQp7HYVNQjKLNNS",
|
||||
"type": "arrow",
|
||||
"x": 923.2083740234375,
|
||||
"y": -638.9448547363279,
|
||||
"width": 36.4427490234375,
|
||||
"height": 58.135406494140625,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0y",
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"seed": 895023486,
|
||||
"version": 78,
|
||||
"versionNonce": 780221630,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721295854370,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
-36.4427490234375,
|
||||
58.135406494140625
|
||||
]
|
||||
],
|
||||
"lastCommittedPoint": null,
|
||||
"startBinding": {
|
||||
"elementId": "hOUwrI2Zw6CbQVBzSj3j_",
|
||||
"focus": -0.1871843733465698,
|
||||
"gap": 1.15234375
|
||||
},
|
||||
"endBinding": {
|
||||
"elementId": "7Ii8GSxtLkw5d3u_f-_kt",
|
||||
"focus": -0.16423249726949576,
|
||||
"gap": 5.475143432617244
|
||||
},
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow"
|
||||
},
|
||||
{
|
||||
"id": "jBFbBBsN9eixvuKN38SL2",
|
||||
"type": "arrow",
|
||||
"x": 922.2291870117188,
|
||||
"y": -637.4943237304685,
|
||||
"width": 98.93487548828125,
|
||||
"height": 53.84375,
|
||||
"angle": 0,
|
||||
"strokeColor": "#1e1e1e",
|
||||
"backgroundColor": "transparent",
|
||||
"fillStyle": "solid",
|
||||
"strokeWidth": 2,
|
||||
"strokeStyle": "solid",
|
||||
"roughness": 1,
|
||||
"opacity": 100,
|
||||
"groupIds": [],
|
||||
"frameId": null,
|
||||
"index": "b0z",
|
||||
"roundness": {
|
||||
"type": 2
|
||||
},
|
||||
"seed": 277587262,
|
||||
"version": 96,
|
||||
"versionNonce": 1061850366,
|
||||
"isDeleted": false,
|
||||
"boundElements": null,
|
||||
"updated": 1721295856562,
|
||||
"link": null,
|
||||
"locked": false,
|
||||
"points": [
|
||||
[
|
||||
0,
|
||||
0
|
||||
],
|
||||
[
|
||||
98.93487548828125,
|
||||
53.84375
|
||||
]
|
||||
],
|
||||
"lastCommittedPoint": null,
|
||||
"startBinding": {
|
||||
"elementId": "hOUwrI2Zw6CbQVBzSj3j_",
|
||||
"focus": 0.2815822612188661,
|
||||
"gap": 2.602874755859375
|
||||
},
|
||||
"endBinding": {
|
||||
"elementId": "PqS5K_ghWhUe3nTiPZEWE",
|
||||
"focus": 0.3663457157233071,
|
||||
"gap": 8.804920166975819
|
||||
},
|
||||
"startArrowhead": null,
|
||||
"endArrowhead": "arrow"
|
||||
}
|
||||
],
|
||||
"appState": {
|
||||
"gridSize": null,
|
||||
"viewBackgroundColor": "#ffffff"
|
||||
},
|
||||
"files": {
|
||||
"daf9ace2f7f7a3f554f96c82cd99723eda6409d6": {
|
||||
"mimeType": "image/png",
|
||||
"id": "daf9ace2f7f7a3f554f96c82cd99723eda6409d6",
|
||||
"dataURL": "data:image/png;base64,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 truncated
|
||||
"created": 1721295668118,
|
||||
"lastRetrieved": 1721295668118
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 138 KiB |
+1
-1
@@ -56,7 +56,7 @@ class CloudDeployer:
|
||||
file.write("FROM python:3.11-slim\n")
|
||||
file.write("WORKDIR /app\n")
|
||||
file.write("COPY . .\n")
|
||||
file.write("RUN pip install flask praisonai==0.0.52 gunicorn markdown\n")
|
||||
file.write("RUN pip install flask praisonai==0.0.53 gunicorn markdown\n")
|
||||
file.write("EXPOSE 8080\n")
|
||||
file.write('CMD ["gunicorn", "-b", "0.0.0.0:8080", "api:app"]\n')
|
||||
|
||||
|
||||
+92
-107
@@ -2,7 +2,9 @@ import os
|
||||
import fnmatch
|
||||
import re
|
||||
import yaml
|
||||
from pathlib import Path
|
||||
import logging
|
||||
|
||||
# Set up logging
|
||||
logger = logging.getLogger(__name__)
|
||||
log_level = os.getenv("LOGLEVEL", "INFO").upper()
|
||||
@@ -24,111 +26,103 @@ class ContextGatherer:
|
||||
self.directory = directory
|
||||
self.output_file = output_file
|
||||
self.relevant_extensions = relevant_extensions or [
|
||||
'.py', # Python
|
||||
'.js', # JavaScript
|
||||
'.ts', # TypeScript
|
||||
'.java', # Java
|
||||
'.rb', # Ruby
|
||||
'.php', # PHP
|
||||
'.pl', # Perl
|
||||
'.pm', # Perl Module
|
||||
'.c', # C
|
||||
'.h', # C Header
|
||||
'.cpp', # C++
|
||||
'.hpp', # C++ Header
|
||||
'.cs', # C#
|
||||
'.vb', # Visual Basic
|
||||
'.swift', # Swift
|
||||
'.kt', # Kotlin
|
||||
'.m', # Objective-C
|
||||
'.mm', # Objective-C++
|
||||
'.go', # Go
|
||||
'.rs', # Rust
|
||||
'.hs', # Haskell
|
||||
'.r', # R
|
||||
'.lua', # Lua
|
||||
'.sh', # Shell Script
|
||||
'.bat', # Batch File
|
||||
'.clj', # Clojure
|
||||
'.scala', # Scala
|
||||
'.erl', # Erlang
|
||||
'.ex', # Elixir
|
||||
'.ml', # OCaml
|
||||
'.fs', # F#
|
||||
'.groovy', # Groovy
|
||||
'.jsm', # JavaScript Module
|
||||
'.jsx', # JavaScript XML
|
||||
'.tsx', # TypeScript XML
|
||||
'.yaml', # YAML
|
||||
'.py', '.js', '.ts', '.java', '.rb', '.php', '.pl', '.pm', '.c', '.h',
|
||||
'.cpp', '.hpp', '.cs', '.vb', '.swift', '.kt', '.m', '.mm', '.go', '.rs',
|
||||
'.hs', '.r', '.lua', '.sh', '.bat', '.clj', '.scala', '.erl', '.ex',
|
||||
'.ml', '.fs', '.groovy', '.jsm', '.jsx', '.tsx', '.yaml'
|
||||
]
|
||||
self.max_file_size = max_file_size
|
||||
self.max_tokens = int(os.getenv("PRAISONAI_MAX_TOKENS", max_tokens))
|
||||
self.ignore_patterns = self.get_ignore_patterns()
|
||||
|
||||
def get_ignore_patterns(self):
|
||||
"""Read .gitignore file and return ignore patterns."""
|
||||
|
||||
# 1. Check for .praisonignore
|
||||
praisonignore_path = os.path.join(self.directory, '.praisonignore')
|
||||
if os.path.exists(praisonignore_path):
|
||||
with open(praisonignore_path, 'r') as f:
|
||||
praisonignore_patterns = [line.strip() for line in f if line.strip() and not line.startswith('#')]
|
||||
logger.debug(f"Using ignore patterns from .praisonignore: {praisonignore_patterns}")
|
||||
return praisonignore_patterns
|
||||
"""
|
||||
Loads ignore patterns from various sources, prioritizing them in
|
||||
the following order:
|
||||
1. .praisonignore
|
||||
2. settings.yaml (under code.ignore_files)
|
||||
3. PRAISONAI_IGNORE_FILES environment variable
|
||||
4. .gitignore
|
||||
5. Default patterns
|
||||
"""
|
||||
ignore_patterns = []
|
||||
|
||||
# 2. Fallback to settings.yaml
|
||||
def load_from_file(filepath):
|
||||
if os.path.exists(filepath):
|
||||
with open(filepath, 'r') as f:
|
||||
ignore_patterns.extend(
|
||||
line.strip() for line in f
|
||||
if line.strip() and not line.startswith('#')
|
||||
)
|
||||
|
||||
# 1. Load from .praisonignore
|
||||
load_from_file(os.path.join(self.directory, '.praisonignore'))
|
||||
|
||||
# 2. Load from settings.yaml
|
||||
settings_path = os.path.join(self.directory, 'settings.yaml')
|
||||
if os.path.exists(settings_path):
|
||||
with open(settings_path, 'r') as f:
|
||||
settings = yaml.safe_load(f)
|
||||
if 'code' in settings and 'ignore_files' in settings['code']:
|
||||
logger.debug(f"Using ignore patterns from settings.yaml: {settings['code']['ignore_files']}")
|
||||
return settings['code']['ignore_files']
|
||||
ignore_patterns.extend(settings['code']['ignore_files'])
|
||||
|
||||
# 3. Fallback to PRAISONAI_IGNORE_FILES env variable
|
||||
# 3. Load from environment variable
|
||||
ignore_files_env = os.getenv("PRAISONAI_IGNORE_FILES")
|
||||
if ignore_files_env:
|
||||
logger.debug(f"Using ignore patterns from PRAISONAI_IGNORE_FILES: {ignore_files_env}")
|
||||
return ignore_files_env.split(",")
|
||||
|
||||
default_patterns = [".*", "*.pyc", "__pycache__", ".git", ".gitignore", ".vscode",
|
||||
".idea", ".DS_Store", "*.lock", "*.pyc", ".env",
|
||||
"docs", "tests", "test", "tmp", "temp",
|
||||
"*.txt", "*.md", "*.json", "*.csv", "*.tsv","public",
|
||||
"*.sql", "*.sqlite", "*.db", "*.db3", "*.sqlite3", "*.log", "*.zip", "*.gz",
|
||||
"*.tar", "*.rar", "*.7z", "*.pdf", "*.jpg", "*.jpeg", "*.png", "*.gif", "*.svg",
|
||||
"cookbooks", "assets", "__pycache__", "dist", "build", "node_modules", "venv",]
|
||||
gitignore_path = os.path.join(self.directory, '.gitignore')
|
||||
if os.path.exists(gitignore_path):
|
||||
with open(gitignore_path, 'r') as f:
|
||||
gitignore_patterns = [line.strip() for line in f if line.strip() and not line.startswith('#')]
|
||||
logger.debug(f"Ignored gitignore and default files: {ignore_files_env}")
|
||||
return list(set(default_patterns + gitignore_patterns))
|
||||
return default_patterns
|
||||
ignore_patterns.extend(ignore_files_env.split(","))
|
||||
|
||||
# 4. Load from .gitignore
|
||||
load_from_file(os.path.join(self.directory, '.gitignore'))
|
||||
|
||||
# 5. Default patterns (only if no patterns loaded from above sources)
|
||||
if not ignore_patterns:
|
||||
ignore_patterns = [
|
||||
".*", "*.pyc", "__pycache__", ".git", ".gitignore", ".vscode",
|
||||
".idea", ".DS_Store", "*.lock", "*.pyc", ".env", "docs", "tests",
|
||||
"test", "tmp", "temp", "*.txt", "*.md", "*.json", "*.csv", "*.tsv",
|
||||
"public", "*.sql", "*.sqlite", "*.db", "*.db3", "*.sqlite3",
|
||||
"*.log", "*.zip", "*.gz", "*.tar", "*.rar", "*.7z", "*.pdf",
|
||||
"*.jpg", "*.jpeg", "*.png", "*.gif", "*.svg", "cookbooks",
|
||||
"assets", "__pycache__", "dist", "build", "node_modules", "venv"
|
||||
]
|
||||
logger.debug(f"Using default ignore patterns: {ignore_patterns}")
|
||||
|
||||
# Modify patterns to match directories and add leading '*' if necessary
|
||||
modified_ignore_patterns = [
|
||||
'*' + pattern if not pattern.startswith('.') and not pattern.startswith('*') else pattern
|
||||
for pattern in ignore_patterns
|
||||
]
|
||||
logger.debug(f"Final ignore patterns: {modified_ignore_patterns}")
|
||||
return modified_ignore_patterns
|
||||
|
||||
def should_ignore(self, file_path):
|
||||
"""Check if a file should be ignored based on patterns."""
|
||||
"""
|
||||
Check if a file or directory should be ignored based on patterns.
|
||||
Handles both file names and directory names for more comprehensive filtering.
|
||||
"""
|
||||
relative_path = os.path.relpath(file_path, self.directory)
|
||||
if relative_path.startswith('.'):
|
||||
return True
|
||||
for pattern in self.ignore_patterns:
|
||||
if fnmatch.fnmatch(relative_path, pattern):
|
||||
if fnmatch.fnmatch(relative_path, pattern) or \
|
||||
fnmatch.fnmatch(os.path.basename(file_path), pattern):
|
||||
return True
|
||||
return False
|
||||
|
||||
def is_relevant_file(self, file_path):
|
||||
"""Determine if a file is relevant for the context."""
|
||||
if os.path.getsize(file_path) > self.max_file_size:
|
||||
return False
|
||||
return any(file_path.endswith(ext) for ext in self.relevant_extensions)
|
||||
return os.path.isfile(file_path) and \
|
||||
os.path.getsize(file_path) <= self.max_file_size and \
|
||||
any(file_path.endswith(ext) for ext in self.relevant_extensions)
|
||||
|
||||
def gather_context(self):
|
||||
"""Gather context from relevant files in the directory."""
|
||||
"""Gather context from relevant files, respecting ignore patterns."""
|
||||
context = []
|
||||
total_files = sum(len(files) for _, _, files in os.walk(self.directory))
|
||||
total_files = 0
|
||||
processed_files = 0
|
||||
|
||||
for root, dirs, files in os.walk(self.directory):
|
||||
total_files += len(files)
|
||||
dirs[:] = [d for d in dirs if not self.should_ignore(os.path.join(root, d))]
|
||||
for file in files:
|
||||
file_path = os.path.join(root, file)
|
||||
@@ -138,57 +132,54 @@ class ContextGatherer:
|
||||
content = f.read()
|
||||
context.append(f"File: {file_path}\n\n{content}\n\n{'='*50}\n")
|
||||
except Exception as e:
|
||||
print(f"Error reading {file_path}: {e}")
|
||||
logger.error(f"Error reading {file_path}: {e}")
|
||||
processed_files += 1
|
||||
print(f"\rProcessed {processed_files}/{total_files} files", end="", flush=True)
|
||||
print() # New line after progress indicator
|
||||
return '\n'.join(context)
|
||||
|
||||
def count_tokens(self, text):
|
||||
"""Count the number of tokens in the given text using a simple tokenizer."""
|
||||
# Split on whitespace and punctuation
|
||||
tokens = re.findall(r'\b\w+\b|[^\w\s]', text)
|
||||
return len(tokens)
|
||||
"""Count tokens using a simple whitespace-based tokenizer."""
|
||||
return len(text.split())
|
||||
|
||||
def truncate_context(self, context):
|
||||
"""Truncate context to fit within the specified token limit."""
|
||||
tokens = re.findall(r'\b\w+\b|[^\w\s]', context)
|
||||
"""Truncate context to stay within the token limit."""
|
||||
tokens = context.split()
|
||||
if len(tokens) > self.max_tokens:
|
||||
truncated_tokens = tokens[:self.max_tokens]
|
||||
return ' '.join(truncated_tokens)
|
||||
truncated_context = ' '.join(tokens[:self.max_tokens])
|
||||
logger.warning("Context truncated due to token limit.")
|
||||
return truncated_context
|
||||
return context
|
||||
|
||||
def save_context(self, context):
|
||||
"""Save the gathered context to a file."""
|
||||
with open(self.output_file, 'w', encoding='utf-8') as f:
|
||||
f.write(context)
|
||||
|
||||
|
||||
def get_context_tree(self):
|
||||
"""Generate a formatted tree structure of the folder, including only relevant files."""
|
||||
"""Generate a formatted tree structure of included files and folders."""
|
||||
tree = []
|
||||
start_dir = os.path.abspath(self.directory)
|
||||
|
||||
start_dir = Path(self.directory)
|
||||
|
||||
def add_to_tree(path, prefix=''):
|
||||
contents = sorted(os.listdir(path))
|
||||
contents = sorted(path.iterdir())
|
||||
pointers = [('└── ' if i == len(contents) - 1 else '├── ') for i in range(len(contents))]
|
||||
for pointer, name in zip(pointers, contents):
|
||||
full_path = os.path.join(path, name)
|
||||
if self.should_ignore(full_path):
|
||||
for pointer, item in zip(pointers, contents):
|
||||
# Use should_ignore for consistency
|
||||
if self.should_ignore(item):
|
||||
continue
|
||||
|
||||
rel_path = os.path.relpath(full_path, start_dir)
|
||||
tree.append(f"{prefix}{pointer}{name}")
|
||||
|
||||
if os.path.isdir(full_path):
|
||||
add_to_tree(full_path, prefix + (' ' if pointer == '└── ' else '│ '))
|
||||
elif self.is_relevant_file(full_path):
|
||||
continue # We've already added the file to the tree
|
||||
|
||||
rel_path = item.relative_to(start_dir)
|
||||
tree.append(f"{prefix}{pointer}{rel_path}")
|
||||
|
||||
if item.is_dir():
|
||||
add_to_tree(item, prefix + (' ' if pointer == '└── ' else '│ '))
|
||||
|
||||
add_to_tree(start_dir)
|
||||
return '\n'.join(tree)
|
||||
|
||||
def run(self):
|
||||
"""Run the context gathering process and return the context and token count."""
|
||||
"""Execute the context gathering, truncation, and reporting."""
|
||||
context = self.gather_context()
|
||||
context = self.truncate_context(context)
|
||||
token_count = self.count_tokens(context)
|
||||
@@ -200,17 +191,11 @@ class ContextGatherer:
|
||||
return context, token_count, context_tree
|
||||
|
||||
def main():
|
||||
gatherer = ContextGatherer(
|
||||
directory='.',
|
||||
output_file='context.txt',
|
||||
relevant_extensions=['.py'],
|
||||
max_file_size=500_000, # 500KB
|
||||
max_tokens=60000
|
||||
)
|
||||
gatherer = ContextGatherer()
|
||||
context, token_count, context_tree = gatherer.run()
|
||||
print(f"\nThe context contains approximately {token_count} tokens.")
|
||||
print("First 500 characters of context:")
|
||||
print(context[:500] + "...")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
main()
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[tool.poetry]
|
||||
name = "PraisonAI"
|
||||
version = "0.0.52"
|
||||
version = "0.0.53"
|
||||
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."
|
||||
authors = ["Mervin Praison"]
|
||||
license = ""
|
||||
|
||||
+1
-74
@@ -1,76 +1,3 @@
|
||||
code:
|
||||
ignore_files:
|
||||
- ".*"
|
||||
- "*.pyc"
|
||||
- "pycache"
|
||||
- ".git"
|
||||
- ".gitignore"
|
||||
- ".vscode"
|
||||
- ".idea"
|
||||
- ".DS_Store"
|
||||
- ".lock"
|
||||
- ".pyc"
|
||||
- ".env"
|
||||
- "docs"
|
||||
- "tests"
|
||||
- "test"
|
||||
- "tmp"
|
||||
- "temp"
|
||||
- ".txt"
|
||||
- ".md"
|
||||
- ".json"
|
||||
- ".csv"
|
||||
- ".tsv"
|
||||
- "public"
|
||||
- ".sql"
|
||||
- ".sqlite"
|
||||
- ".db"
|
||||
- ".db3"
|
||||
- ".sqlite3"
|
||||
- ".log"
|
||||
- ".zip"
|
||||
- ".gz"
|
||||
- ".tar"
|
||||
- ".rar"
|
||||
- ".7z"
|
||||
- ".pdf"
|
||||
- ".jpg"
|
||||
- ".jpeg"
|
||||
- ".png"
|
||||
- ".gif"
|
||||
- ".svg"
|
||||
- "cookbooks"
|
||||
- "assets"
|
||||
- "pycache"
|
||||
- "dist"
|
||||
- "build"
|
||||
- "node_modules"
|
||||
- "venv"
|
||||
- "crewAI"
|
||||
- ".vscode"
|
||||
- ".cache"
|
||||
- "*.__pycache__"
|
||||
- "__pycache__"
|
||||
- "*chroma.sqlite3"
|
||||
- test/
|
||||
- dist/
|
||||
- .env
|
||||
- assets/*
|
||||
- .idea
|
||||
- .DS_Store
|
||||
- .pytest_cache
|
||||
- praisonAI.egg-info
|
||||
- test.yaml
|
||||
- db
|
||||
- praisonai_prompt.txt
|
||||
- watch.sh
|
||||
- docs.sh
|
||||
- other
|
||||
- output
|
||||
- "*.chainlit"
|
||||
- .files
|
||||
- site
|
||||
- flagged
|
||||
- "*public"
|
||||
- "threads.db"
|
||||
- "trained_agents_data.pkl"
|
||||
- "*/__pycache__/*"
|
||||
Reference in new issue
Block a user