From c772a4dcdda3b1cc19ce3c0de08c0a6b6da7d34d Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Sat, 27 May 2023 11:55:41 -0300 Subject: [PATCH 01/72] =?UTF-8?q?=F0=9F=9A=80=20chore(package.json):=20add?= =?UTF-8?q?=20vite-plugin-svgr=20dependency=20to=20both=20root=20and=20fro?= =?UTF-8?q?ntend=20package.json=20=E2=9C=A8=20feat(GenericNode):=20add=20C?= =?UTF-8?q?hromaIcon=20and=20fix=20validation=20status=20icons=20?= =?UTF-8?q?=F0=9F=8E=A8=20style(GenericNode):=20refactor=20GenericNode=20c?= =?UTF-8?q?omponent=20to=20improve=20readability=20=F0=9F=90=9B=20fix(vite?= =?UTF-8?q?.config.ts):=20add=20svgr=20plugin=20to=20the=20frontend=20Vite?= =?UTF-8?q?=20configuration=20The=20vite-plugin-svgr=20dependency=20was=20?= =?UTF-8?q?added=20to=20both=20the=20root=20and=20frontend=20package.json?= =?UTF-8?q?=20files=20to=20enable=20the=20use=20of=20SVG=20files=20as=20Re?= =?UTF-8?q?act=20components.=20The=20GenericNode=20component=20was=20updat?= =?UTF-8?q?ed=20to=20include=20the=20ChromaIcon=20component=20and=20to=20f?= =?UTF-8?q?ix=20the=20validation=20status=20icons.=20The=20component=20was?= =?UTF-8?q?=20also=20refactored=20to=20improve=20readability.=20The=20svgr?= =?UTF-8?q?=20plugin=20was=20added=20to=20the=20frontend=20Vite=20configur?= =?UTF-8?q?ation=20to=20enable=20the=20use=20of=20SVG=20files=20as=20React?= =?UTF-8?q?=20components.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 5 + src/frontend/package-lock.json | 510 +++++++++++++----- src/frontend/package.json | 3 +- .../src/CustomNodes/GenericNode/index.tsx | 37 +- src/frontend/src/icons/ChromaIcon/chroma.svg | 7 + src/frontend/src/icons/ChromaIcon/index.tsx | 12 + src/frontend/src/icons/index.tsx | 1 + src/frontend/vite.config.ts | 4 +- 8 files changed, 421 insertions(+), 158 deletions(-) create mode 100644 package.json create mode 100644 src/frontend/src/icons/ChromaIcon/chroma.svg create mode 100644 src/frontend/src/icons/ChromaIcon/index.tsx create mode 100644 src/frontend/src/icons/index.tsx diff --git a/package.json b/package.json new file mode 100644 index 000000000..091eb76c4 --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "vite-plugin-svgr": "^3.2.0" + } +} diff --git a/src/frontend/package-lock.json b/src/frontend/package-lock.json index b98a26b64..b55c44b46 100644 --- a/src/frontend/package-lock.json +++ b/src/frontend/package-lock.json @@ -37,6 +37,7 @@ "remark-gfm": "^3.0.1", "remark-math": "^5.1.1", "uuid": "^9.0.0", + "vite-plugin-svgr": "^3.2.0", "web-vitals": "^2.1.4" }, "devDependencies": { @@ -79,7 +80,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "peer": true, "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -100,30 +100,28 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.21.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.7.tgz", - "integrity": "sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==", - "peer": true, + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.3.tgz", + "integrity": "sha512-aNtko9OPOwVESUFp3MZfD8Uzxl7JzSeJpd7npIoxCasU37PFbAQRpKglkaKwlHOyeJdrREpo8TW8ldrkYWwvIQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "peer": true, + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.1.tgz", + "integrity": "sha512-Hkqu7J4ynysSXxmAahpN1jjRwVJ+NdpraFLIWflgjpVob3KNyK3/tIUc7Q7szed8WMp0JNa7Qtd1E9Oo22F9gA==", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helpers": "^7.21.5", - "@babel/parser": "^7.21.8", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5", + "@babel/generator": "^7.22.0", + "@babel/helper-compilation-targets": "^7.22.1", + "@babel/helper-module-transforms": "^7.22.1", + "@babel/helpers": "^7.22.0", + "@babel/parser": "^7.22.0", + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -138,22 +136,12 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/generator": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.5.tgz", - "integrity": "sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==", - "peer": true, + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.3.tgz", + "integrity": "sha512-C17MW4wlk//ES/CJDL51kPNwl+qiBQyN7b9SKyVp11BLGFeSPoVaHrv+MNt8jwQFhQWowW88z1eeBx3pFz9v8A==", "dependencies": { - "@babel/types": "^7.21.5", + "@babel/types": "^7.22.3", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -163,10 +151,9 @@ } }, "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "peer": true, + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -177,12 +164,11 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.5.tgz", - "integrity": "sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==", - "peer": true, + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.1.tgz", + "integrity": "sha512-Rqx13UM3yVB5q0D/KwQ8+SPfX/+Rnsy1Lw1k/UwOC4KC6qrzIQoY3lYnBu5EHKBlEHHcj0M0W8ltPSkD8rqfsQ==", "dependencies": { - "@babel/compat-data": "^7.21.5", + "@babel/compat-data": "^7.22.0", "@babel/helper-validator-option": "^7.21.0", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", @@ -195,20 +181,10 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.21.5.tgz", - "integrity": "sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==", - "peer": true, + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.1.tgz", + "integrity": "sha512-Z2tgopurB/kTbidvzeBrc2To3PUP/9i5MUe+fU6QJCQDyPwSH2oRapkLw3KGECDYSjhQZCNxEvNvZlLw8JjGwA==", "engines": { "node": ">=6.9.0" } @@ -217,7 +193,6 @@ "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "peer": true, "dependencies": { "@babel/template": "^7.20.7", "@babel/types": "^7.21.0" @@ -230,7 +205,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "peer": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -250,19 +224,18 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.5.tgz", - "integrity": "sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==", - "peer": true, + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.1.tgz", + "integrity": "sha512-dxAe9E7ySDGbQdCVOY/4+UcD8M9ZFqZcZhSPsPacvCG4M+9lwtDDQfI2EoaSvmf7W/8yCBkGU0m7Pvt1ru3UZw==", "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", + "@babel/helper-environment-visitor": "^7.22.1", "@babel/helper-module-imports": "^7.21.4", "@babel/helper-simple-access": "^7.21.5", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.0" }, "engines": { "node": ">=6.9.0" @@ -280,7 +253,6 @@ "version": "7.21.5", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.21.5.tgz", "integrity": "sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==", - "peer": true, "dependencies": { "@babel/types": "^7.21.5" }, @@ -292,7 +264,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "peer": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -320,20 +291,18 @@ "version": "7.21.0", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "peer": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.5.tgz", - "integrity": "sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==", - "peer": true, + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.3.tgz", + "integrity": "sha512-jBJ7jWblbgr7r6wYZHMdIqKc73ycaTcCaWRq4/2LpuPHcx7xMlZvpGQkOYc9HeSjn6rcx15CPlgVcBtZ4WZJ2w==", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" + "@babel/template": "^7.21.9", + "@babel/traverse": "^7.22.1", + "@babel/types": "^7.22.3" }, "engines": { "node": ">=6.9.0" @@ -353,10 +322,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.21.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.8.tgz", - "integrity": "sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==", - "peer": true, + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.3.tgz", + "integrity": "sha512-vrukxyW/ep8UD1UDzOYpTKQ6abgjFoeG6L+4ar9+c5TN9QnlqiOi6QK7LSR5ewm/ERyGkT/Ai6VboNrxhbr9Uw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -390,33 +358,31 @@ } }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "peer": true, + "version": "7.21.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz", + "integrity": "sha512-MK0X5k8NKOuWRamiEfc3KEJiHMTkGZNUjzMipqCGDDc6ijRl/B7RGSKVGncu4Ro/HdyzzY6cmoXuKI2Gffk7vQ==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.21.4", + "@babel/parser": "^7.21.9", + "@babel/types": "^7.21.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.5.tgz", - "integrity": "sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==", - "peer": true, + "version": "7.22.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.1.tgz", + "integrity": "sha512-lAWkdCoUFnmwLBhIRLciFntGYsIIoC6vIbN8zrLPqBnJmPu7Z6nzqnKd7FsxQUNAvZfVZ0x6KdNvNp8zWIOHSQ==", "dependencies": { "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-environment-visitor": "^7.21.5", + "@babel/generator": "^7.22.0", + "@babel/helper-environment-visitor": "^7.22.1", "@babel/helper-function-name": "^7.21.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.5", - "@babel/types": "^7.21.5", + "@babel/parser": "^7.22.0", + "@babel/types": "^7.22.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -425,9 +391,9 @@ } }, "node_modules/@babel/types": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "version": "7.22.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.3.tgz", + "integrity": "sha512-P3na3xIQHTKY4L0YOG7pM8M8uoUIB910WQaSiiMCZUC2Cy8XFEQONGABFnHWBa2gpGKODTAJcNhi5Zk0sLRrzg==", "dependencies": { "@babel/helper-string-parser": "^7.21.5", "@babel/helper-validator-identifier": "^7.19.1", @@ -608,7 +574,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "android" @@ -624,7 +589,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "android" @@ -640,7 +604,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "android" @@ -656,7 +619,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -672,7 +634,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -688,7 +649,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -704,7 +664,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -720,7 +679,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "linux" @@ -736,7 +694,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -752,7 +709,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "linux" @@ -768,7 +724,6 @@ "cpu": [ "loong64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -784,7 +739,6 @@ "cpu": [ "mips64el" ], - "dev": true, "optional": true, "os": [ "linux" @@ -800,7 +754,6 @@ "cpu": [ "ppc64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -816,7 +769,6 @@ "cpu": [ "riscv64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -832,7 +784,6 @@ "cpu": [ "s390x" ], - "dev": true, "optional": true, "os": [ "linux" @@ -848,7 +799,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -864,7 +814,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "netbsd" @@ -880,7 +829,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "openbsd" @@ -896,7 +844,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "sunos" @@ -912,7 +859,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -928,7 +874,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "win32" @@ -944,7 +889,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -980,7 +924,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "peer": true, "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -1009,7 +952,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, "optional": true, "peer": true, "dependencies": { @@ -1021,7 +963,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, "optional": true, "peer": true, "dependencies": { @@ -1406,6 +1347,252 @@ "node": ">=14" } }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-7.0.0.tgz", + "integrity": "sha512-khWbXesWIP9v8HuKCl2NU2HNAyqpSQ/vkIl36Nbn4HIwEYSRWL0H7Gs6idJdha2DkpFDWlsqMELvoCE8lfFY6Q==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-7.0.0.tgz", + "integrity": "sha512-iiZaIvb3H/c7d3TH2HBeK91uI2rMhZNwnsIrvd7ZwGLkFw6mmunOCoVnjdYua662MqGFxlN9xTq4fv9hgR4VXQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-7.0.0.tgz", + "integrity": "sha512-sQQmyo+qegBx8DfFc04PFmIO1FP1MHI1/QEpzcIcclo5OAISsOJPW76ZIs0bDyO/DBSJEa/tDa1W26pVtt0FRw==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-7.0.0.tgz", + "integrity": "sha512-i6MaAqIZXDOJeikJuzocByBf8zO+meLwfQ/qMHIjCcvpnfvWf82PFvredEZElErB5glQFJa2KVKk8N2xV6tRRA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-7.0.0.tgz", + "integrity": "sha512-BoVSh6ge3SLLpKC0pmmN9DFlqgFy4NxNgdZNLPNJWBUU7TQpDWeBuyVuDW88iXydb5Cv0ReC+ffa5h3VrKfk1w==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-7.0.0.tgz", + "integrity": "sha512-tNDcBa+hYn0gO+GkP/AuNKdVtMufVhU9fdzu+vUQsR18RIJ9RWe7h/pSBY338RO08wArntwbDk5WhQBmhf2PaA==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-7.0.0.tgz", + "integrity": "sha512-qw54u8ljCJYL2KtBOjI5z7Nzg8LnSvQOP5hPKj77H4VQL4+HdKbAT5pnkkZLmHKYwzsIHSYKXxHouD8zZamCFQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-7.0.0.tgz", + "integrity": "sha512-CcFECkDj98daOg9jE3Bh3uyD9kzevCAnZ+UtzG6+BQG/jOQ2OA3jHnX6iG4G1MCJkUQFnUvEv33NvQfqrb/F3A==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-7.0.0.tgz", + "integrity": "sha512-EX/NHeFa30j5UjldQGVQikuuQNHUdGmbh9kEpBKofGUtF0GUPJ4T4rhoYiqDAOmBOxojyot36JIFiDUHUK1ilQ==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^7.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^7.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^7.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^7.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "^7.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "^7.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "^7.0.0", + "@svgr/babel-plugin-transform-svg-component": "^7.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-7.0.0.tgz", + "integrity": "sha512-ztAoxkaKhRVloa3XydohgQQCb0/8x9T63yXovpmHzKMkHO6pkjdsIAWKOS4bE95P/2quVh1NtjSKlMRNzSBffw==", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "^7.0.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core/node_modules/cosmiconfig": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz", + "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==", + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-7.0.0.tgz", + "integrity": "sha512-42Ej9sDDEmsJKjrfQ1PHmiDiHagh/u9AHO9QWbeNx4KmD9yS5d1XHmXUNINfUcykAU+4431Cn+k6Vn5mWBYimQ==", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-7.0.0.tgz", + "integrity": "sha512-SWlTpPQmBUtLKxXWgpv8syzqIU8XgFRvyhfkam2So8b3BE0OS0HPe5UfmlJ2KIC+a7dpuuYovPR2WAQuSyMoPw==", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "^7.0.0", + "@svgr/hast-util-to-babel-ast": "^7.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, "node_modules/@swc/core": { "version": "1.3.57", "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.57.tgz", @@ -2125,6 +2312,11 @@ "@types/ms": "*" } }, + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" + }, "node_modules/@types/geojson": { "version": "7946.0.10", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", @@ -2190,7 +2382,7 @@ "version": "16.18.12", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.12.tgz", "integrity": "sha512-vzLe5NaNMjIE3mcddFVGlAXN1LEWueUsMsOJWaT6wWMJGyljHAWHznqfnKUQWGzu7TLPrGvWdNAsvQYW+C0xtw==", - "dev": true + "devOptional": true }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -2395,6 +2587,11 @@ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "node_modules/aria-query": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", @@ -2588,7 +2785,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, "optional": true, "peer": true }, @@ -2613,6 +2809,17 @@ "node": ">=6" } }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/camelcase-css": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", @@ -3134,7 +3341,6 @@ "version": "0.17.18", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz", "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==", - "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -3288,6 +3494,11 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -3453,7 +3664,6 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -3487,7 +3697,6 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "peer": true, "engines": { "node": ">=4" } @@ -4360,11 +4569,21 @@ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -4381,7 +4600,6 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "peer": true, "bin": { "json5": "lib/cli.js" }, @@ -4487,7 +4705,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "peer": true, "dependencies": { "yallist": "^3.0.2" } @@ -6541,6 +6758,14 @@ "loose-envify": "^1.1.0" } }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -6567,7 +6792,6 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, "optional": true, "peer": true, "dependencies": { @@ -6579,7 +6803,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "optional": true, "peer": true, "engines": { @@ -6736,6 +6959,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -6782,7 +7010,6 @@ "version": "5.16.3", "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.3.tgz", "integrity": "sha512-v8wWLaS/xt3nE9dgKEWhNUFP6q4kngO5B8eYFUuebsu7Dw/UNAnpUod6UHo04jSSkv8TzKHjZDSd7EXdDQAl8Q==", - "dev": true, "optional": true, "peer": true, "dependencies": { @@ -6802,7 +7029,6 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, "optional": true, "peer": true }, @@ -7150,7 +7376,6 @@ "version": "4.3.5", "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.5.tgz", "integrity": "sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==", - "dev": true, "dependencies": { "esbuild": "^0.17.5", "postcss": "^8.4.23", @@ -7194,11 +7419,23 @@ } } }, + "node_modules/vite-plugin-svgr": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vite-plugin-svgr/-/vite-plugin-svgr-3.2.0.tgz", + "integrity": "sha512-Uvq6niTvhqJU6ga78qLKBFJSDvxWhOnyfQSoKpDPMAGxJPo5S3+9hyjExE5YDj6Lpa4uaLkGc1cBgxXov+LjSw==", + "dependencies": { + "@rollup/pluginutils": "^5.0.2", + "@svgr/core": "^7.0.0", + "@svgr/plugin-jsx": "^7.0.0" + }, + "peerDependencies": { + "vite": "^2.6.0 || 3 || 4" + } + }, "node_modules/vite/node_modules/rollup": { "version": "3.21.6", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.6.tgz", "integrity": "sha512-SXIICxvxQxR3D4dp/3LDHZIJPC8a4anKMHd4E3Jiz2/JnY+2bEjqrOokAauc5ShGVNFHlEFjBXAXlaxkJqIqSg==", - "dev": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -7326,8 +7563,7 @@ "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "peer": true + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/yaml": { "version": "1.10.2", @@ -7370,4 +7606,4 @@ } } } -} \ No newline at end of file +} diff --git a/src/frontend/package.json b/src/frontend/package.json index 6315deb05..9fffaca0b 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -32,6 +32,7 @@ "remark-gfm": "^3.0.1", "remark-math": "^5.1.1", "uuid": "^9.0.0", + "vite-plugin-svgr": "^3.2.0", "web-vitals": "^2.1.4" }, "scripts": { @@ -77,4 +78,4 @@ "typescript": "^5.0.2", "vite": "^4.3.5" } -} \ No newline at end of file +} diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index 96890d76e..9d5ad3128 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -30,7 +30,8 @@ export default function GenericNode({ const showError = useRef(true); const { types, deleteNode } = useContext(typesContext); const { openPopUp } = useContext(PopUpContext); - const Icon = nodeIcons[types[data.type]]; + + const Icon = nodeIcons[data.type] || nodeIcons[types[data.type]]; const [validationStatus, setValidationStatus] = useState(null); // State for outline color const [isValid, setIsValid] = useState(false); @@ -90,13 +91,13 @@ export default function GenericNode({
-
-
+
+
-
+
@@ -153,7 +154,7 @@ export default function GenericNode({ openPopUp(); }} > -
+
{Object.keys(data.node.template).some( (t) => data.node.template[t].advanced && @@ -170,7 +171,7 @@ export default function GenericNode({ ) ? "" : "hidden", - "w-6 h-6 dark:text-gray-300 hover:animate-spin" + "h-6 w-6 hover:animate-spin dark:text-gray-300" )} > @@ -179,13 +180,13 @@ export default function GenericNode({ deleteNode(data.id); }} > - +
-
-
+
+
{data.node.description}
@@ -247,7 +248,7 @@ export default function GenericNode({
{" "} diff --git a/src/frontend/src/icons/ChromaIcon/chroma.svg b/src/frontend/src/icons/ChromaIcon/chroma.svg new file mode 100644 index 000000000..64090685b --- /dev/null +++ b/src/frontend/src/icons/ChromaIcon/chroma.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/frontend/src/icons/ChromaIcon/index.tsx b/src/frontend/src/icons/ChromaIcon/index.tsx new file mode 100644 index 000000000..045108535 --- /dev/null +++ b/src/frontend/src/icons/ChromaIcon/index.tsx @@ -0,0 +1,12 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as ChromaSVG } from "./chroma.svg"; + +const ChromaIcon = forwardRef>( + (props, ref) => { + return ( + + ); + } +); + +export default ChromaIcon; diff --git a/src/frontend/src/icons/index.tsx b/src/frontend/src/icons/index.tsx new file mode 100644 index 000000000..2b01bf567 --- /dev/null +++ b/src/frontend/src/icons/index.tsx @@ -0,0 +1 @@ +export { default as ChromaIcon } from "./ChromaIcon"; diff --git a/src/frontend/vite.config.ts b/src/frontend/vite.config.ts index 39f563827..172b37733 100644 --- a/src/frontend/vite.config.ts +++ b/src/frontend/vite.config.ts @@ -1,6 +1,6 @@ import { defineConfig } from "vite"; import react from "@vitejs/plugin-react-swc"; - +import svgr from "vite-plugin-svgr"; const apiRoutes = [ "/all", "/predict", @@ -28,7 +28,7 @@ export default defineConfig(() => { build: { outDir: "build", }, - plugins: [react()], + plugins: [react(), svgr()], server: { port: 3000, proxy: { From fbe6e2beb85c84f1cda609467960db51fd4a08cd Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Sat, 27 May 2023 11:57:16 -0300 Subject: [PATCH 02/72] Format --- src/frontend/src/utils.ts | 786 +++++++++++++++++++------------------- 1 file changed, 392 insertions(+), 394 deletions(-) diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 72e44f781..d464290e1 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -1,20 +1,20 @@ import { - RocketLaunchIcon, - LinkIcon, - CpuChipIcon, - LightBulbIcon, - CommandLineIcon, - WrenchScrewdriverIcon, - WrenchIcon, - ComputerDesktopIcon, - Bars3CenterLeftIcon, - GiftIcon, - PaperClipIcon, - QuestionMarkCircleIcon, - FingerPrintIcon, - ScissorsIcon, - CircleStackIcon, - Squares2X2Icon, + RocketLaunchIcon, + LinkIcon, + CpuChipIcon, + LightBulbIcon, + CommandLineIcon, + WrenchScrewdriverIcon, + WrenchIcon, + ComputerDesktopIcon, + Bars3CenterLeftIcon, + GiftIcon, + PaperClipIcon, + QuestionMarkCircleIcon, + FingerPrintIcon, + ScissorsIcon, + CircleStackIcon, + Squares2X2Icon, } from "@heroicons/react/24/outline"; import { Connection, Edge, Node, ReactFlowInstance } from "reactflow"; import { FlowType } from "./types/flow"; @@ -22,475 +22,473 @@ import { APITemplateType, TemplateVariableType } from "./types/api"; import _ from "lodash"; export function classNames(...classes: Array) { - return classes.filter(Boolean).join(" "); + return classes.filter(Boolean).join(" "); } export const textColors = { - white: "text-white", - red: "text-red-700", - orange: "text-orange-700", - amber: "text-amber-700", - yellow: "text-yellow-700", - lime: "text-lime-700", - green: "text-green-700", - emerald: "text-emerald-700", - teal: "text-teal-700", - cyan: "text-cyan-700", - sky: "text-sky-700", - blue: "text-blue-700", - indigo: "text-indigo-700", - violet: "text-violet-700", - purple: "text-purple-700", - fuchsia: "text-fuchsia-700", - pink: "text-pink-700", - rose: "text-rose-700", - black: "text-black-700", - gray: "text-gray-700", + white: "text-white", + red: "text-red-700", + orange: "text-orange-700", + amber: "text-amber-700", + yellow: "text-yellow-700", + lime: "text-lime-700", + green: "text-green-700", + emerald: "text-emerald-700", + teal: "text-teal-700", + cyan: "text-cyan-700", + sky: "text-sky-700", + blue: "text-blue-700", + indigo: "text-indigo-700", + violet: "text-violet-700", + purple: "text-purple-700", + fuchsia: "text-fuchsia-700", + pink: "text-pink-700", + rose: "text-rose-700", + black: "text-black-700", + gray: "text-gray-700", }; export const borderLColors = { - white: "border-l-white", - red: "border-l-red-500", - orange: "border-l-orange-500", - amber: "border-l-amber-500", - yellow: "border-l-yellow-500", - lime: "border-l-lime-500", - green: "border-l-green-500", - emerald: "border-l-emerald-500", - teal: "border-l-teal-500", - cyan: "border-l-cyan-500", - sky: "border-l-sky-500", - blue: "border-l-blue-500", - indigo: "border-l-indigo-500", - violet: "border-l-violet-500", - purple: "border-l-purple-500", - fuchsia: "border-l-fuchsia-500", - pink: "border-l-pink-500", - rose: "border-l-rose-500", - black: "border-l-black-500", - gray: "border-l-gray-500", + white: "border-l-white", + red: "border-l-red-500", + orange: "border-l-orange-500", + amber: "border-l-amber-500", + yellow: "border-l-yellow-500", + lime: "border-l-lime-500", + green: "border-l-green-500", + emerald: "border-l-emerald-500", + teal: "border-l-teal-500", + cyan: "border-l-cyan-500", + sky: "border-l-sky-500", + blue: "border-l-blue-500", + indigo: "border-l-indigo-500", + violet: "border-l-violet-500", + purple: "border-l-purple-500", + fuchsia: "border-l-fuchsia-500", + pink: "border-l-pink-500", + rose: "border-l-rose-500", + black: "border-l-black-500", + gray: "border-l-gray-500", }; export const nodeColors: { [char: string]: string } = { - prompts: "#4367BF", - llms: "#6344BE", - chains: "#FE7500", - agents: "#903BBE", - tools: "#FF3434", - memories: "#F5B85A", - advanced: "#000000", - chat: "#198BF6", - thought: "#272541", - embeddings: "#42BAA7", - documentloaders: "#7AAE42", - vectorstores: "#AA8742", - textsplitters: "#B47CB5", - toolkits: "#DB2C2C", - wrappers: "#E6277A", - utilities: "#31A3CC", - unknown: "#9CA3AF", + prompts: "#4367BF", + llms: "#6344BE", + chains: "#FE7500", + agents: "#903BBE", + tools: "#FF3434", + memories: "#F5B85A", + advanced: "#000000", + chat: "#198BF6", + thought: "#272541", + embeddings: "#42BAA7", + documentloaders: "#7AAE42", + vectorstores: "#AA8742", + textsplitters: "#B47CB5", + toolkits: "#DB2C2C", + wrappers: "#E6277A", + utilities: "#31A3CC", + unknown: "#9CA3AF", }; export const nodeNames: { [char: string]: string } = { - prompts: "Prompts", - llms: "LLMs", - chains: "Chains", - agents: "Agents", - tools: "Tools", - memories: "Memories", - advanced: "Advanced", - chat: "Chat", - embeddings: "Embeddings", - documentloaders: "Loaders", - vectorstores: "Vector Stores", - toolkits: "Toolkits", - wrappers: "Wrappers", - textsplitters: "Text Splitters", - utilities: "Utilities", - unknown: "Unknown", + prompts: "Prompts", + llms: "LLMs", + chains: "Chains", + agents: "Agents", + tools: "Tools", + memories: "Memories", + advanced: "Advanced", + chat: "Chat", + embeddings: "Embeddings", + documentloaders: "Loaders", + vectorstores: "Vector Stores", + toolkits: "Toolkits", + wrappers: "Wrappers", + textsplitters: "Text Splitters", + utilities: "Utilities", + unknown: "Unknown", }; export const nodeIcons: { - [char: string]: React.ForwardRefExoticComponent< - React.SVGProps - >; + [char: string]: React.ForwardRefExoticComponent< + React.SVGProps + >; } = { - agents: RocketLaunchIcon, - chains: LinkIcon, - memories: CpuChipIcon, - llms: LightBulbIcon, - prompts: CommandLineIcon, - tools: WrenchIcon, - advanced: ComputerDesktopIcon, - chat: Bars3CenterLeftIcon, - embeddings: FingerPrintIcon, - documentloaders: PaperClipIcon, - vectorstores: CircleStackIcon, - toolkits: WrenchScrewdriverIcon, - textsplitters: ScissorsIcon, - wrappers: GiftIcon, - utilities: Squares2X2Icon, - unknown: QuestionMarkCircleIcon, + agents: RocketLaunchIcon, + chains: LinkIcon, + memories: CpuChipIcon, + llms: LightBulbIcon, + prompts: CommandLineIcon, + tools: WrenchIcon, + advanced: ComputerDesktopIcon, + chat: Bars3CenterLeftIcon, + embeddings: FingerPrintIcon, + documentloaders: PaperClipIcon, + vectorstores: CircleStackIcon, + toolkits: WrenchScrewdriverIcon, + textsplitters: ScissorsIcon, + wrappers: GiftIcon, + utilities: Squares2X2Icon, + unknown: QuestionMarkCircleIcon, }; export const bgColors = { - white: "bg-white", - red: "bg-red-100", - orange: "bg-orange-100", - amber: "bg-amber-100", - yellow: "bg-yellow-100", - lime: "bg-lime-100", - green: "bg-green-100", - emerald: "bg-emerald-100", - teal: "bg-teal-100", - cyan: "bg-cyan-100", - sky: "bg-sky-100", - blue: "bg-blue-100", - indigo: "bg-indigo-100", - violet: "bg-violet-100", - purple: "bg-purple-100", - fuchsia: "bg-fuchsia-100", - pink: "bg-pink-100", - rose: "bg-rose-100", - black: "bg-black-100", - gray: "bg-gray-100", + white: "bg-white", + red: "bg-red-100", + orange: "bg-orange-100", + amber: "bg-amber-100", + yellow: "bg-yellow-100", + lime: "bg-lime-100", + green: "bg-green-100", + emerald: "bg-emerald-100", + teal: "bg-teal-100", + cyan: "bg-cyan-100", + sky: "bg-sky-100", + blue: "bg-blue-100", + indigo: "bg-indigo-100", + violet: "bg-violet-100", + purple: "bg-purple-100", + fuchsia: "bg-fuchsia-100", + pink: "bg-pink-100", + rose: "bg-rose-100", + black: "bg-black-100", + gray: "bg-gray-100", }; export const bgColorsHover = { - white: "hover:bg-white", - black: "hover:bg-black-50", - gray: "hover:bg-gray-50", - red: "hover:bg-red-50", - orange: "hover:bg-orange-50", - amber: "hover:bg-amber-50", - yellow: "hover:bg-yellow-50", - lime: "hover:bg-lime-50", - green: "hover:bg-green-50", - emerald: "hover:bg-emerald-50", - teal: "hover:bg-teal-50", - cyan: "hover:bg-cyan-50", - sky: "hover:bg-sky-50", - blue: "hover:bg-blue-50", - indigo: "hover:bg-indigo-50", - violet: "hover:bg-violet-50", - purple: "hover:bg-purple-50", - fuchsia: "hover:bg-fuchsia-50", - pink: "hover:bg-pink-50", - rose: "hover:bg-rose-50", + white: "hover:bg-white", + black: "hover:bg-black-50", + gray: "hover:bg-gray-50", + red: "hover:bg-red-50", + orange: "hover:bg-orange-50", + amber: "hover:bg-amber-50", + yellow: "hover:bg-yellow-50", + lime: "hover:bg-lime-50", + green: "hover:bg-green-50", + emerald: "hover:bg-emerald-50", + teal: "hover:bg-teal-50", + cyan: "hover:bg-cyan-50", + sky: "hover:bg-sky-50", + blue: "hover:bg-blue-50", + indigo: "hover:bg-indigo-50", + violet: "hover:bg-violet-50", + purple: "hover:bg-purple-50", + fuchsia: "hover:bg-fuchsia-50", + pink: "hover:bg-pink-50", + rose: "hover:bg-rose-50", }; export const textColorsHex = { - red: "rgb(185 28 28)", - orange: "rgb(194 65 12)", - amber: "rgb(180 83 9)", - yellow: "rgb(161 98 7)", - lime: "rgb(77 124 15)", - green: "rgb(21 128 61)", - emerald: "rgb(4 120 87)", - teal: "rgb(15 118 110)", - cyan: "rgb(14 116 144)", - sky: "rgb(3 105 161)", - blue: "rgb(29 78 216)", - indigo: "rgb(67 56 202)", - violet: "rgb(109 40 217)", - purple: "rgb(126 34 206)", - fuchsia: "rgb(162 28 175)", - pink: "rgb(190 24 93)", - rose: "rgb(190 18 60)", + red: "rgb(185 28 28)", + orange: "rgb(194 65 12)", + amber: "rgb(180 83 9)", + yellow: "rgb(161 98 7)", + lime: "rgb(77 124 15)", + green: "rgb(21 128 61)", + emerald: "rgb(4 120 87)", + teal: "rgb(15 118 110)", + cyan: "rgb(14 116 144)", + sky: "rgb(3 105 161)", + blue: "rgb(29 78 216)", + indigo: "rgb(67 56 202)", + violet: "rgb(109 40 217)", + purple: "rgb(126 34 206)", + fuchsia: "rgb(162 28 175)", + pink: "rgb(190 24 93)", + rose: "rgb(190 18 60)", }; export const bgColorsHex = { - red: "rgb(254 226 226)", - orange: "rgb(255 237 213)", - amber: "rgb(254 243 199)", - yellow: "rgb(254 249 195)", - lime: "rgb(236 252 203)", - green: "rgb(220 252 231)", - emerald: "rgb(209 250 229)", - teal: "rgb(204 251 241)", - cyan: "rgb(207 250 254)", - sky: "rgb(224 242 254)", - blue: "rgb(219 234 254)", - indigo: "rgb(224 231 255)", - violet: "rgb(237 233 254)", - purple: "rgb(243 232 255)", - fuchsia: "rgb(250 232 255)", - pink: "rgb(252 231 243)", - rose: "rgb(255 228 230)", + red: "rgb(254 226 226)", + orange: "rgb(255 237 213)", + amber: "rgb(254 243 199)", + yellow: "rgb(254 249 195)", + lime: "rgb(236 252 203)", + green: "rgb(220 252 231)", + emerald: "rgb(209 250 229)", + teal: "rgb(204 251 241)", + cyan: "rgb(207 250 254)", + sky: "rgb(224 242 254)", + blue: "rgb(219 234 254)", + indigo: "rgb(224 231 255)", + violet: "rgb(237 233 254)", + purple: "rgb(243 232 255)", + fuchsia: "rgb(250 232 255)", + pink: "rgb(252 231 243)", + rose: "rgb(255 228 230)", }; export const taskTypeMap: { [key: string]: string } = { - MULTICLASS_CLASSIFICATION: "Multiclass Classification", + MULTICLASS_CLASSIFICATION: "Multiclass Classification", }; const charWidths: { [char: string]: number } = { - " ": 0.2, - "!": 0.2, - '"': 0.3, - "#": 0.5, - $: 0.5, - "%": 0.5, - "&": 0.5, - "(": 0.2, - ")": 0.2, - "*": 0.5, - "+": 0.5, - ",": 0.2, - "-": 0.2, - ".": 0.1, - "/": 0.5, - ":": 0.2, - ";": 0.2, - "<": 0.5, - "=": 0.5, - ">": 0.5, - "?": 0.2, - "@": 0.5, - "[": 0.2, - "\\": 0.5, - "]": 0.2, - "^": 0.5, - _: 0.2, - "`": 0.5, - "{": 0.2, - "|": 0.2, - "}": 0.2, - "~": 0.5, + " ": 0.2, + "!": 0.2, + '"': 0.3, + "#": 0.5, + $: 0.5, + "%": 0.5, + "&": 0.5, + "(": 0.2, + ")": 0.2, + "*": 0.5, + "+": 0.5, + ",": 0.2, + "-": 0.2, + ".": 0.1, + "/": 0.5, + ":": 0.2, + ";": 0.2, + "<": 0.5, + "=": 0.5, + ">": 0.5, + "?": 0.2, + "@": 0.5, + "[": 0.2, + "\\": 0.5, + "]": 0.2, + "^": 0.5, + _: 0.2, + "`": 0.5, + "{": 0.2, + "|": 0.2, + "}": 0.2, + "~": 0.5, }; for (let i = 65; i <= 90; i++) { - charWidths[String.fromCharCode(i)] = 0.6; + charWidths[String.fromCharCode(i)] = 0.6; } for (let i = 97; i <= 122; i++) { - charWidths[String.fromCharCode(i)] = 0.5; + charWidths[String.fromCharCode(i)] = 0.5; } export function measureTextWidth(text: string, fontSize: number) { - let wordWidth = 0; - for (let j = 0; j < text.length; j++) { - let char = text[j]; - let charWidth = charWidths[char] || 0.5; - wordWidth += charWidth * fontSize; - } - return wordWidth; + let wordWidth = 0; + for (let j = 0; j < text.length; j++) { + let char = text[j]; + let charWidth = charWidths[char] || 0.5; + wordWidth += charWidth * fontSize; + } + return wordWidth; } export function measureTextHeight( - text: string, - width: number, - fontSize: number + text: string, + width: number, + fontSize: number ) { - const charHeight = fontSize; - const lineHeight = charHeight * 1.5; - const words = text.split(" "); - let lineWidth = 0; - let totalHeight = 0; - for (let i = 0; i < words.length; i++) { - let word = words[i]; - let wordWidth = measureTextWidth(word, fontSize); - if (lineWidth + wordWidth + charWidths[" "] * fontSize <= width) { - lineWidth += wordWidth + charWidths[" "] * fontSize; - } else { - totalHeight += lineHeight; - lineWidth = wordWidth; - } - } - totalHeight += lineHeight; - return totalHeight; + const charHeight = fontSize; + const lineHeight = charHeight * 1.5; + const words = text.split(" "); + let lineWidth = 0; + let totalHeight = 0; + for (let i = 0; i < words.length; i++) { + let word = words[i]; + let wordWidth = measureTextWidth(word, fontSize); + if (lineWidth + wordWidth + charWidths[" "] * fontSize <= width) { + lineWidth += wordWidth + charWidths[" "] * fontSize; + } else { + totalHeight += lineHeight; + lineWidth = wordWidth; + } + } + totalHeight += lineHeight; + return totalHeight; } export function toCamelCase(str: string) { - return str - .split(" ") - .map((word, index) => - index === 0 - ? word.toLowerCase() - : word[0].toUpperCase() + word.slice(1).toLowerCase() - ) - .join(""); + return str + .split(" ") + .map((word, index) => + index === 0 + ? word.toLowerCase() + : word[0].toUpperCase() + word.slice(1).toLowerCase() + ) + .join(""); } export function toFirstUpperCase(str: string) { - return str - .split(" ") - .map((word, index) => word[0].toUpperCase() + word.slice(1).toLowerCase()) - .join(""); + return str + .split(" ") + .map((word, index) => word[0].toUpperCase() + word.slice(1).toLowerCase()) + .join(""); } export function snakeToSpaces(str: string) { - let result = str - .split("_") - .join(" "); + let result = str.split("_").join(" "); - return result + return result; } export function toNormalCase(str: string) { - let result = str - .split("_") - .map((word, index) => { - if (index === 0) { - return word[0].toUpperCase() + word.slice(1).toLowerCase(); - } - return word.toLowerCase(); - }) - .join(" "); + let result = str + .split("_") + .map((word, index) => { + if (index === 0) { + return word[0].toUpperCase() + word.slice(1).toLowerCase(); + } + return word.toLowerCase(); + }) + .join(" "); - return result - .split("-") - .map((word, index) => { - if (index === 0) { - return word[0].toUpperCase() + word.slice(1).toLowerCase(); - } - return word.toLowerCase(); - }) - .join(" "); + return result + .split("-") + .map((word, index) => { + if (index === 0) { + return word[0].toUpperCase() + word.slice(1).toLowerCase(); + } + return word.toLowerCase(); + }) + .join(" "); } export function normalCaseToSnakeCase(str: string) { - return str - .split(" ") - .map((word, index) => { - if (index === 0) { - return word[0].toUpperCase() + word.slice(1).toLowerCase(); - } - return word.toLowerCase(); - }) - .join("_"); + return str + .split(" ") + .map((word, index) => { + if (index === 0) { + return word[0].toUpperCase() + word.slice(1).toLowerCase(); + } + return word.toLowerCase(); + }) + .join("_"); } export function roundNumber(x: number, decimals: number) { - return Math.round(x * Math.pow(10, decimals)) / Math.pow(10, decimals); + return Math.round(x * Math.pow(10, decimals)) / Math.pow(10, decimals); } export function getConnectedNodes(edge: Edge, nodes: Array): Array { - const sourceId = edge.source; - const targetId = edge.target; - const connectedNodes = nodes.filter( - (node) => node.id === targetId || node.id === sourceId - ); - return connectedNodes; + const sourceId = edge.source; + const targetId = edge.target; + const connectedNodes = nodes.filter( + (node) => node.id === targetId || node.id === sourceId + ); + return connectedNodes; } export function isValidConnection( - { source, target, sourceHandle, targetHandle }: Connection, - reactFlowInstance: ReactFlowInstance + { source, target, sourceHandle, targetHandle }: Connection, + reactFlowInstance: ReactFlowInstance ) { - if ( - sourceHandle.split("|")[0] === targetHandle.split("|")[0] || - sourceHandle - .split("|") - .slice(2) - .some((t) => t === targetHandle.split("|")[0]) || - targetHandle.split("|")[0] === "str" - ) { - let targetNode = reactFlowInstance.getNode(target).data.node; - if (!targetNode) { - if ( - !reactFlowInstance - .getEdges() - .find((e) => e.targetHandle === targetHandle) - ) { - return true; - } - } else if ( - (!targetNode.template[targetHandle.split("|")[1]].list && - !reactFlowInstance - .getEdges() - .find((e) => e.targetHandle === targetHandle)) || - targetNode.template[targetHandle.split("|")[1]].list - ) { - return true; - } - } - return false; + if ( + sourceHandle.split("|")[0] === targetHandle.split("|")[0] || + sourceHandle + .split("|") + .slice(2) + .some((t) => t === targetHandle.split("|")[0]) || + targetHandle.split("|")[0] === "str" + ) { + let targetNode = reactFlowInstance.getNode(target).data.node; + if (!targetNode) { + if ( + !reactFlowInstance + .getEdges() + .find((e) => e.targetHandle === targetHandle) + ) { + return true; + } + } else if ( + (!targetNode.template[targetHandle.split("|")[1]].list && + !reactFlowInstance + .getEdges() + .find((e) => e.targetHandle === targetHandle)) || + targetNode.template[targetHandle.split("|")[1]].list + ) { + return true; + } + } + return false; } export function removeApiKeys(flow: FlowType): FlowType { - let cleanFLow = _.cloneDeep(flow); - cleanFLow.data.nodes.forEach((node) => { - for (const key in node.data.node.template) { - if (key.includes("api")) { - node.data.node.template[key].value = ""; - } - } - }); - return cleanFLow; + let cleanFLow = _.cloneDeep(flow); + cleanFLow.data.nodes.forEach((node) => { + for (const key in node.data.node.template) { + if (key.includes("api")) { + node.data.node.template[key].value = ""; + } + } + }); + return cleanFLow; } export function updateObject>( - reference: T, - objectToUpdate: T + reference: T, + objectToUpdate: T ): T { - let clonedObject = _.cloneDeep(objectToUpdate); - // Loop through each key in the object to update - for (const key in clonedObject) { - // If the key is not in the reference object, delete it - if (!(key in reference)) { - delete clonedObject[key]; - } - } - // Loop through each key in the reference object - for (const key in reference) { - // If the key is not in the object to update, add it - if (!(key in clonedObject)) { - clonedObject[key] = reference[key]; - } - } - return clonedObject; + let clonedObject = _.cloneDeep(objectToUpdate); + // Loop through each key in the object to update + for (const key in clonedObject) { + // If the key is not in the reference object, delete it + if (!(key in reference)) { + delete clonedObject[key]; + } + } + // Loop through each key in the reference object + for (const key in reference) { + // If the key is not in the object to update, add it + if (!(key in clonedObject)) { + clonedObject[key] = reference[key]; + } + } + return clonedObject; } export function debounce(func, wait) { - let timeout; - return function (...args) { - const context = this; - clearTimeout(timeout); - timeout = setTimeout(() => func.apply(context, args), wait); - }; + let timeout; + return function (...args) { + const context = this; + clearTimeout(timeout); + timeout = setTimeout(() => func.apply(context, args), wait); + }; } export function updateTemplate( - reference: APITemplateType, - objectToUpdate: APITemplateType + reference: APITemplateType, + objectToUpdate: APITemplateType ): APITemplateType { - let clonedObject: APITemplateType = _.cloneDeep(reference); + let clonedObject: APITemplateType = _.cloneDeep(reference); - // Loop through each key in the reference object - for (const key in clonedObject) { - // If the key is not in the object to update, add it - if (objectToUpdate[key] && objectToUpdate[key].value) { - clonedObject[key].value = objectToUpdate[key].value; - } - } - return clonedObject; + // Loop through each key in the reference object + for (const key in clonedObject) { + // If the key is not in the object to update, add it + if (objectToUpdate[key] && objectToUpdate[key].value) { + clonedObject[key].value = objectToUpdate[key].value; + } + } + return clonedObject; } interface languageMap { - [key: string]: string | undefined; + [key: string]: string | undefined; } export const programmingLanguages: languageMap = { - javascript: ".js", - python: ".py", - java: ".java", - c: ".c", - cpp: ".cpp", - "c++": ".cpp", - "c#": ".cs", - ruby: ".rb", - php: ".php", - swift: ".swift", - "objective-c": ".m", - kotlin: ".kt", - typescript: ".ts", - go: ".go", - perl: ".pl", - rust: ".rs", - scala: ".scala", - haskell: ".hs", - lua: ".lua", - shell: ".sh", - sql: ".sql", - html: ".html", - css: ".css", - // add more file extensions here, make sure the key is same as language prop in CodeBlock.tsx component + javascript: ".js", + python: ".py", + java: ".java", + c: ".c", + cpp: ".cpp", + "c++": ".cpp", + "c#": ".cs", + ruby: ".rb", + php: ".php", + swift: ".swift", + "objective-c": ".m", + kotlin: ".kt", + typescript: ".ts", + go: ".go", + perl: ".pl", + rust: ".rs", + scala: ".scala", + haskell: ".hs", + lua: ".lua", + shell: ".sh", + sql: ".sql", + html: ".html", + css: ".css", + // add more file extensions here, make sure the key is same as language prop in CodeBlock.tsx component }; From 3f12363adc7af8ccbf68d342f4a82ecabf045eaa Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Sat, 27 May 2023 11:58:15 -0300 Subject: [PATCH 03/72] Format and add ChromaIcon --- src/frontend/src/utils.ts | 788 +++++++++++++++++++------------------- 1 file changed, 396 insertions(+), 392 deletions(-) diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index d464290e1..2f7c91f7c 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -1,494 +1,498 @@ import { - RocketLaunchIcon, - LinkIcon, - CpuChipIcon, - LightBulbIcon, - CommandLineIcon, - WrenchScrewdriverIcon, - WrenchIcon, - ComputerDesktopIcon, - Bars3CenterLeftIcon, - GiftIcon, - PaperClipIcon, - QuestionMarkCircleIcon, - FingerPrintIcon, - ScissorsIcon, - CircleStackIcon, - Squares2X2Icon, + RocketLaunchIcon, + LinkIcon, + CpuChipIcon, + LightBulbIcon, + CommandLineIcon, + WrenchScrewdriverIcon, + WrenchIcon, + ComputerDesktopIcon, + Bars3CenterLeftIcon, + GiftIcon, + PaperClipIcon, + QuestionMarkCircleIcon, + FingerPrintIcon, + ScissorsIcon, + CircleStackIcon, + Squares2X2Icon, } from "@heroicons/react/24/outline"; import { Connection, Edge, Node, ReactFlowInstance } from "reactflow"; import { FlowType } from "./types/flow"; import { APITemplateType, TemplateVariableType } from "./types/api"; import _ from "lodash"; +import { ChromaIcon } from "./icons"; export function classNames(...classes: Array) { - return classes.filter(Boolean).join(" "); + return classes.filter(Boolean).join(" "); } export const textColors = { - white: "text-white", - red: "text-red-700", - orange: "text-orange-700", - amber: "text-amber-700", - yellow: "text-yellow-700", - lime: "text-lime-700", - green: "text-green-700", - emerald: "text-emerald-700", - teal: "text-teal-700", - cyan: "text-cyan-700", - sky: "text-sky-700", - blue: "text-blue-700", - indigo: "text-indigo-700", - violet: "text-violet-700", - purple: "text-purple-700", - fuchsia: "text-fuchsia-700", - pink: "text-pink-700", - rose: "text-rose-700", - black: "text-black-700", - gray: "text-gray-700", + white: "text-white", + red: "text-red-700", + orange: "text-orange-700", + amber: "text-amber-700", + yellow: "text-yellow-700", + lime: "text-lime-700", + green: "text-green-700", + emerald: "text-emerald-700", + teal: "text-teal-700", + cyan: "text-cyan-700", + sky: "text-sky-700", + blue: "text-blue-700", + indigo: "text-indigo-700", + violet: "text-violet-700", + purple: "text-purple-700", + fuchsia: "text-fuchsia-700", + pink: "text-pink-700", + rose: "text-rose-700", + black: "text-black-700", + gray: "text-gray-700", }; export const borderLColors = { - white: "border-l-white", - red: "border-l-red-500", - orange: "border-l-orange-500", - amber: "border-l-amber-500", - yellow: "border-l-yellow-500", - lime: "border-l-lime-500", - green: "border-l-green-500", - emerald: "border-l-emerald-500", - teal: "border-l-teal-500", - cyan: "border-l-cyan-500", - sky: "border-l-sky-500", - blue: "border-l-blue-500", - indigo: "border-l-indigo-500", - violet: "border-l-violet-500", - purple: "border-l-purple-500", - fuchsia: "border-l-fuchsia-500", - pink: "border-l-pink-500", - rose: "border-l-rose-500", - black: "border-l-black-500", - gray: "border-l-gray-500", + white: "border-l-white", + red: "border-l-red-500", + orange: "border-l-orange-500", + amber: "border-l-amber-500", + yellow: "border-l-yellow-500", + lime: "border-l-lime-500", + green: "border-l-green-500", + emerald: "border-l-emerald-500", + teal: "border-l-teal-500", + cyan: "border-l-cyan-500", + sky: "border-l-sky-500", + blue: "border-l-blue-500", + indigo: "border-l-indigo-500", + violet: "border-l-violet-500", + purple: "border-l-purple-500", + fuchsia: "border-l-fuchsia-500", + pink: "border-l-pink-500", + rose: "border-l-rose-500", + black: "border-l-black-500", + gray: "border-l-gray-500", }; export const nodeColors: { [char: string]: string } = { - prompts: "#4367BF", - llms: "#6344BE", - chains: "#FE7500", - agents: "#903BBE", - tools: "#FF3434", - memories: "#F5B85A", - advanced: "#000000", - chat: "#198BF6", - thought: "#272541", - embeddings: "#42BAA7", - documentloaders: "#7AAE42", - vectorstores: "#AA8742", - textsplitters: "#B47CB5", - toolkits: "#DB2C2C", - wrappers: "#E6277A", - utilities: "#31A3CC", - unknown: "#9CA3AF", + prompts: "#4367BF", + llms: "#6344BE", + chains: "#FE7500", + agents: "#903BBE", + tools: "#FF3434", + memories: "#F5B85A", + advanced: "#000000", + chat: "#198BF6", + thought: "#272541", + embeddings: "#42BAA7", + documentloaders: "#7AAE42", + vectorstores: "#AA8742", + textsplitters: "#B47CB5", + toolkits: "#DB2C2C", + wrappers: "#E6277A", + utilities: "#31A3CC", + unknown: "#9CA3AF", }; export const nodeNames: { [char: string]: string } = { - prompts: "Prompts", - llms: "LLMs", - chains: "Chains", - agents: "Agents", - tools: "Tools", - memories: "Memories", - advanced: "Advanced", - chat: "Chat", - embeddings: "Embeddings", - documentloaders: "Loaders", - vectorstores: "Vector Stores", - toolkits: "Toolkits", - wrappers: "Wrappers", - textsplitters: "Text Splitters", - utilities: "Utilities", - unknown: "Unknown", + prompts: "Prompts", + llms: "LLMs", + chains: "Chains", + agents: "Agents", + tools: "Tools", + memories: "Memories", + advanced: "Advanced", + chat: "Chat", + embeddings: "Embeddings", + documentloaders: "Loaders", + vectorstores: "Vector Stores", + toolkits: "Toolkits", + wrappers: "Wrappers", + textsplitters: "Text Splitters", + utilities: "Utilities", + unknown: "Unknown", }; export const nodeIcons: { - [char: string]: React.ForwardRefExoticComponent< - React.SVGProps - >; + [char: string]: React.ForwardRefExoticComponent< + React.SVGProps + >; } = { - agents: RocketLaunchIcon, - chains: LinkIcon, - memories: CpuChipIcon, - llms: LightBulbIcon, - prompts: CommandLineIcon, - tools: WrenchIcon, - advanced: ComputerDesktopIcon, - chat: Bars3CenterLeftIcon, - embeddings: FingerPrintIcon, - documentloaders: PaperClipIcon, - vectorstores: CircleStackIcon, - toolkits: WrenchScrewdriverIcon, - textsplitters: ScissorsIcon, - wrappers: GiftIcon, - utilities: Squares2X2Icon, - unknown: QuestionMarkCircleIcon, + Chroma: ChromaIcon, + agents: RocketLaunchIcon, + chains: LinkIcon, + memories: CpuChipIcon, + llms: LightBulbIcon, + prompts: CommandLineIcon, + tools: WrenchIcon, + advanced: ComputerDesktopIcon, + chat: Bars3CenterLeftIcon, + embeddings: FingerPrintIcon, + documentloaders: PaperClipIcon, + vectorstores: CircleStackIcon, + toolkits: WrenchScrewdriverIcon, + textsplitters: ScissorsIcon, + wrappers: GiftIcon, + utilities: Squares2X2Icon, + unknown: QuestionMarkCircleIcon, }; export const bgColors = { - white: "bg-white", - red: "bg-red-100", - orange: "bg-orange-100", - amber: "bg-amber-100", - yellow: "bg-yellow-100", - lime: "bg-lime-100", - green: "bg-green-100", - emerald: "bg-emerald-100", - teal: "bg-teal-100", - cyan: "bg-cyan-100", - sky: "bg-sky-100", - blue: "bg-blue-100", - indigo: "bg-indigo-100", - violet: "bg-violet-100", - purple: "bg-purple-100", - fuchsia: "bg-fuchsia-100", - pink: "bg-pink-100", - rose: "bg-rose-100", - black: "bg-black-100", - gray: "bg-gray-100", + white: "bg-white", + red: "bg-red-100", + orange: "bg-orange-100", + amber: "bg-amber-100", + yellow: "bg-yellow-100", + lime: "bg-lime-100", + green: "bg-green-100", + emerald: "bg-emerald-100", + teal: "bg-teal-100", + cyan: "bg-cyan-100", + sky: "bg-sky-100", + blue: "bg-blue-100", + indigo: "bg-indigo-100", + violet: "bg-violet-100", + purple: "bg-purple-100", + fuchsia: "bg-fuchsia-100", + pink: "bg-pink-100", + rose: "bg-rose-100", + black: "bg-black-100", + gray: "bg-gray-100", }; export const bgColorsHover = { - white: "hover:bg-white", - black: "hover:bg-black-50", - gray: "hover:bg-gray-50", - red: "hover:bg-red-50", - orange: "hover:bg-orange-50", - amber: "hover:bg-amber-50", - yellow: "hover:bg-yellow-50", - lime: "hover:bg-lime-50", - green: "hover:bg-green-50", - emerald: "hover:bg-emerald-50", - teal: "hover:bg-teal-50", - cyan: "hover:bg-cyan-50", - sky: "hover:bg-sky-50", - blue: "hover:bg-blue-50", - indigo: "hover:bg-indigo-50", - violet: "hover:bg-violet-50", - purple: "hover:bg-purple-50", - fuchsia: "hover:bg-fuchsia-50", - pink: "hover:bg-pink-50", - rose: "hover:bg-rose-50", + white: "hover:bg-white", + black: "hover:bg-black-50", + gray: "hover:bg-gray-50", + red: "hover:bg-red-50", + orange: "hover:bg-orange-50", + amber: "hover:bg-amber-50", + yellow: "hover:bg-yellow-50", + lime: "hover:bg-lime-50", + green: "hover:bg-green-50", + emerald: "hover:bg-emerald-50", + teal: "hover:bg-teal-50", + cyan: "hover:bg-cyan-50", + sky: "hover:bg-sky-50", + blue: "hover:bg-blue-50", + indigo: "hover:bg-indigo-50", + violet: "hover:bg-violet-50", + purple: "hover:bg-purple-50", + fuchsia: "hover:bg-fuchsia-50", + pink: "hover:bg-pink-50", + rose: "hover:bg-rose-50", }; export const textColorsHex = { - red: "rgb(185 28 28)", - orange: "rgb(194 65 12)", - amber: "rgb(180 83 9)", - yellow: "rgb(161 98 7)", - lime: "rgb(77 124 15)", - green: "rgb(21 128 61)", - emerald: "rgb(4 120 87)", - teal: "rgb(15 118 110)", - cyan: "rgb(14 116 144)", - sky: "rgb(3 105 161)", - blue: "rgb(29 78 216)", - indigo: "rgb(67 56 202)", - violet: "rgb(109 40 217)", - purple: "rgb(126 34 206)", - fuchsia: "rgb(162 28 175)", - pink: "rgb(190 24 93)", - rose: "rgb(190 18 60)", + red: "rgb(185 28 28)", + orange: "rgb(194 65 12)", + amber: "rgb(180 83 9)", + yellow: "rgb(161 98 7)", + lime: "rgb(77 124 15)", + green: "rgb(21 128 61)", + emerald: "rgb(4 120 87)", + teal: "rgb(15 118 110)", + cyan: "rgb(14 116 144)", + sky: "rgb(3 105 161)", + blue: "rgb(29 78 216)", + indigo: "rgb(67 56 202)", + violet: "rgb(109 40 217)", + purple: "rgb(126 34 206)", + fuchsia: "rgb(162 28 175)", + pink: "rgb(190 24 93)", + rose: "rgb(190 18 60)", }; export const bgColorsHex = { - red: "rgb(254 226 226)", - orange: "rgb(255 237 213)", - amber: "rgb(254 243 199)", - yellow: "rgb(254 249 195)", - lime: "rgb(236 252 203)", - green: "rgb(220 252 231)", - emerald: "rgb(209 250 229)", - teal: "rgb(204 251 241)", - cyan: "rgb(207 250 254)", - sky: "rgb(224 242 254)", - blue: "rgb(219 234 254)", - indigo: "rgb(224 231 255)", - violet: "rgb(237 233 254)", - purple: "rgb(243 232 255)", - fuchsia: "rgb(250 232 255)", - pink: "rgb(252 231 243)", - rose: "rgb(255 228 230)", + red: "rgb(254 226 226)", + orange: "rgb(255 237 213)", + amber: "rgb(254 243 199)", + yellow: "rgb(254 249 195)", + lime: "rgb(236 252 203)", + green: "rgb(220 252 231)", + emerald: "rgb(209 250 229)", + teal: "rgb(204 251 241)", + cyan: "rgb(207 250 254)", + sky: "rgb(224 242 254)", + blue: "rgb(219 234 254)", + indigo: "rgb(224 231 255)", + violet: "rgb(237 233 254)", + purple: "rgb(243 232 255)", + fuchsia: "rgb(250 232 255)", + pink: "rgb(252 231 243)", + rose: "rgb(255 228 230)", }; export const taskTypeMap: { [key: string]: string } = { - MULTICLASS_CLASSIFICATION: "Multiclass Classification", + MULTICLASS_CLASSIFICATION: "Multiclass Classification", }; const charWidths: { [char: string]: number } = { - " ": 0.2, - "!": 0.2, - '"': 0.3, - "#": 0.5, - $: 0.5, - "%": 0.5, - "&": 0.5, - "(": 0.2, - ")": 0.2, - "*": 0.5, - "+": 0.5, - ",": 0.2, - "-": 0.2, - ".": 0.1, - "/": 0.5, - ":": 0.2, - ";": 0.2, - "<": 0.5, - "=": 0.5, - ">": 0.5, - "?": 0.2, - "@": 0.5, - "[": 0.2, - "\\": 0.5, - "]": 0.2, - "^": 0.5, - _: 0.2, - "`": 0.5, - "{": 0.2, - "|": 0.2, - "}": 0.2, - "~": 0.5, + " ": 0.2, + "!": 0.2, + '"': 0.3, + "#": 0.5, + $: 0.5, + "%": 0.5, + "&": 0.5, + "(": 0.2, + ")": 0.2, + "*": 0.5, + "+": 0.5, + ",": 0.2, + "-": 0.2, + ".": 0.1, + "/": 0.5, + ":": 0.2, + ";": 0.2, + "<": 0.5, + "=": 0.5, + ">": 0.5, + "?": 0.2, + "@": 0.5, + "[": 0.2, + "\\": 0.5, + "]": 0.2, + "^": 0.5, + _: 0.2, + "`": 0.5, + "{": 0.2, + "|": 0.2, + "}": 0.2, + "~": 0.5, }; for (let i = 65; i <= 90; i++) { - charWidths[String.fromCharCode(i)] = 0.6; + charWidths[String.fromCharCode(i)] = 0.6; } for (let i = 97; i <= 122; i++) { - charWidths[String.fromCharCode(i)] = 0.5; + charWidths[String.fromCharCode(i)] = 0.5; } export function measureTextWidth(text: string, fontSize: number) { - let wordWidth = 0; - for (let j = 0; j < text.length; j++) { - let char = text[j]; - let charWidth = charWidths[char] || 0.5; - wordWidth += charWidth * fontSize; - } - return wordWidth; + let wordWidth = 0; + for (let j = 0; j < text.length; j++) { + let char = text[j]; + let charWidth = charWidths[char] || 0.5; + wordWidth += charWidth * fontSize; + } + return wordWidth; } export function measureTextHeight( - text: string, - width: number, - fontSize: number + text: string, + width: number, + fontSize: number ) { - const charHeight = fontSize; - const lineHeight = charHeight * 1.5; - const words = text.split(" "); - let lineWidth = 0; - let totalHeight = 0; - for (let i = 0; i < words.length; i++) { - let word = words[i]; - let wordWidth = measureTextWidth(word, fontSize); - if (lineWidth + wordWidth + charWidths[" "] * fontSize <= width) { - lineWidth += wordWidth + charWidths[" "] * fontSize; - } else { - totalHeight += lineHeight; - lineWidth = wordWidth; - } - } - totalHeight += lineHeight; - return totalHeight; + const charHeight = fontSize; + const lineHeight = charHeight * 1.5; + const words = text.split(" "); + let lineWidth = 0; + let totalHeight = 0; + for (let i = 0; i < words.length; i++) { + let word = words[i]; + let wordWidth = measureTextWidth(word, fontSize); + if (lineWidth + wordWidth + charWidths[" "] * fontSize <= width) { + lineWidth += wordWidth + charWidths[" "] * fontSize; + } else { + totalHeight += lineHeight; + lineWidth = wordWidth; + } + } + totalHeight += lineHeight; + return totalHeight; } export function toCamelCase(str: string) { - return str - .split(" ") - .map((word, index) => - index === 0 - ? word.toLowerCase() - : word[0].toUpperCase() + word.slice(1).toLowerCase() - ) - .join(""); + return str + .split(" ") + .map((word, index) => + index === 0 + ? word.toLowerCase() + : word[0].toUpperCase() + word.slice(1).toLowerCase() + ) + .join(""); } export function toFirstUpperCase(str: string) { - return str - .split(" ") - .map((word, index) => word[0].toUpperCase() + word.slice(1).toLowerCase()) - .join(""); + return str + .split(" ") + .map((word, index) => word[0].toUpperCase() + word.slice(1).toLowerCase()) + .join(""); } export function snakeToSpaces(str: string) { - let result = str.split("_").join(" "); + let result = str + .split("_") + .join(" "); - return result; + return result } export function toNormalCase(str: string) { - let result = str - .split("_") - .map((word, index) => { - if (index === 0) { - return word[0].toUpperCase() + word.slice(1).toLowerCase(); - } - return word.toLowerCase(); - }) - .join(" "); + let result = str + .split("_") + .map((word, index) => { + if (index === 0) { + return word[0].toUpperCase() + word.slice(1).toLowerCase(); + } + return word.toLowerCase(); + }) + .join(" "); - return result - .split("-") - .map((word, index) => { - if (index === 0) { - return word[0].toUpperCase() + word.slice(1).toLowerCase(); - } - return word.toLowerCase(); - }) - .join(" "); + return result + .split("-") + .map((word, index) => { + if (index === 0) { + return word[0].toUpperCase() + word.slice(1).toLowerCase(); + } + return word.toLowerCase(); + }) + .join(" "); } export function normalCaseToSnakeCase(str: string) { - return str - .split(" ") - .map((word, index) => { - if (index === 0) { - return word[0].toUpperCase() + word.slice(1).toLowerCase(); - } - return word.toLowerCase(); - }) - .join("_"); + return str + .split(" ") + .map((word, index) => { + if (index === 0) { + return word[0].toUpperCase() + word.slice(1).toLowerCase(); + } + return word.toLowerCase(); + }) + .join("_"); } export function roundNumber(x: number, decimals: number) { - return Math.round(x * Math.pow(10, decimals)) / Math.pow(10, decimals); + return Math.round(x * Math.pow(10, decimals)) / Math.pow(10, decimals); } export function getConnectedNodes(edge: Edge, nodes: Array): Array { - const sourceId = edge.source; - const targetId = edge.target; - const connectedNodes = nodes.filter( - (node) => node.id === targetId || node.id === sourceId - ); - return connectedNodes; + const sourceId = edge.source; + const targetId = edge.target; + const connectedNodes = nodes.filter( + (node) => node.id === targetId || node.id === sourceId + ); + return connectedNodes; } export function isValidConnection( - { source, target, sourceHandle, targetHandle }: Connection, - reactFlowInstance: ReactFlowInstance + { source, target, sourceHandle, targetHandle }: Connection, + reactFlowInstance: ReactFlowInstance ) { - if ( - sourceHandle.split("|")[0] === targetHandle.split("|")[0] || - sourceHandle - .split("|") - .slice(2) - .some((t) => t === targetHandle.split("|")[0]) || - targetHandle.split("|")[0] === "str" - ) { - let targetNode = reactFlowInstance.getNode(target).data.node; - if (!targetNode) { - if ( - !reactFlowInstance - .getEdges() - .find((e) => e.targetHandle === targetHandle) - ) { - return true; - } - } else if ( - (!targetNode.template[targetHandle.split("|")[1]].list && - !reactFlowInstance - .getEdges() - .find((e) => e.targetHandle === targetHandle)) || - targetNode.template[targetHandle.split("|")[1]].list - ) { - return true; - } - } - return false; + if ( + sourceHandle.split("|")[0] === targetHandle.split("|")[0] || + sourceHandle + .split("|") + .slice(2) + .some((t) => t === targetHandle.split("|")[0]) || + targetHandle.split("|")[0] === "str" + ) { + let targetNode = reactFlowInstance.getNode(target).data.node; + if (!targetNode) { + if ( + !reactFlowInstance + .getEdges() + .find((e) => e.targetHandle === targetHandle) + ) { + return true; + } + } else if ( + (!targetNode.template[targetHandle.split("|")[1]].list && + !reactFlowInstance + .getEdges() + .find((e) => e.targetHandle === targetHandle)) || + targetNode.template[targetHandle.split("|")[1]].list + ) { + return true; + } + } + return false; } export function removeApiKeys(flow: FlowType): FlowType { - let cleanFLow = _.cloneDeep(flow); - cleanFLow.data.nodes.forEach((node) => { - for (const key in node.data.node.template) { - if (key.includes("api")) { - node.data.node.template[key].value = ""; - } - } - }); - return cleanFLow; + let cleanFLow = _.cloneDeep(flow); + cleanFLow.data.nodes.forEach((node) => { + for (const key in node.data.node.template) { + if (key.includes("api")) { + node.data.node.template[key].value = ""; + } + } + }); + return cleanFLow; } export function updateObject>( - reference: T, - objectToUpdate: T + reference: T, + objectToUpdate: T ): T { - let clonedObject = _.cloneDeep(objectToUpdate); - // Loop through each key in the object to update - for (const key in clonedObject) { - // If the key is not in the reference object, delete it - if (!(key in reference)) { - delete clonedObject[key]; - } - } - // Loop through each key in the reference object - for (const key in reference) { - // If the key is not in the object to update, add it - if (!(key in clonedObject)) { - clonedObject[key] = reference[key]; - } - } - return clonedObject; + let clonedObject = _.cloneDeep(objectToUpdate); + // Loop through each key in the object to update + for (const key in clonedObject) { + // If the key is not in the reference object, delete it + if (!(key in reference)) { + delete clonedObject[key]; + } + } + // Loop through each key in the reference object + for (const key in reference) { + // If the key is not in the object to update, add it + if (!(key in clonedObject)) { + clonedObject[key] = reference[key]; + } + } + return clonedObject; } export function debounce(func, wait) { - let timeout; - return function (...args) { - const context = this; - clearTimeout(timeout); - timeout = setTimeout(() => func.apply(context, args), wait); - }; + let timeout; + return function (...args) { + const context = this; + clearTimeout(timeout); + timeout = setTimeout(() => func.apply(context, args), wait); + }; } export function updateTemplate( - reference: APITemplateType, - objectToUpdate: APITemplateType + reference: APITemplateType, + objectToUpdate: APITemplateType ): APITemplateType { - let clonedObject: APITemplateType = _.cloneDeep(reference); + let clonedObject: APITemplateType = _.cloneDeep(reference); - // Loop through each key in the reference object - for (const key in clonedObject) { - // If the key is not in the object to update, add it - if (objectToUpdate[key] && objectToUpdate[key].value) { - clonedObject[key].value = objectToUpdate[key].value; - } - } - return clonedObject; + // Loop through each key in the reference object + for (const key in clonedObject) { + // If the key is not in the object to update, add it + if (objectToUpdate[key] && objectToUpdate[key].value) { + clonedObject[key].value = objectToUpdate[key].value; + } + } + return clonedObject; } interface languageMap { - [key: string]: string | undefined; + [key: string]: string | undefined; } export const programmingLanguages: languageMap = { - javascript: ".js", - python: ".py", - java: ".java", - c: ".c", - cpp: ".cpp", - "c++": ".cpp", - "c#": ".cs", - ruby: ".rb", - php: ".php", - swift: ".swift", - "objective-c": ".m", - kotlin: ".kt", - typescript: ".ts", - go: ".go", - perl: ".pl", - rust: ".rs", - scala: ".scala", - haskell: ".hs", - lua: ".lua", - shell: ".sh", - sql: ".sql", - html: ".html", - css: ".css", - // add more file extensions here, make sure the key is same as language prop in CodeBlock.tsx component + javascript: ".js", + python: ".py", + java: ".java", + c: ".c", + cpp: ".cpp", + "c++": ".cpp", + "c#": ".cs", + ruby: ".rb", + php: ".php", + swift: ".swift", + "objective-c": ".m", + kotlin: ".kt", + typescript: ".ts", + go: ".go", + perl: ".pl", + rust: ".rs", + scala: ".scala", + haskell: ".hs", + lua: ".lua", + shell: ".sh", + sql: ".sql", + html: ".html", + css: ".css", + // add more file extensions here, make sure the key is same as language prop in CodeBlock.tsx component }; From 209e31da26dd95c4e6c274a3f0b0ab17dd3679e5 Mon Sep 17 00:00:00 2001 From: Gabriel Ferreira Rosalino Date: Sun, 28 May 2023 02:05:32 -0300 Subject: [PATCH 04/72] feat: adds NotionDirectoryLoader --- src/backend/langflow/config.yaml | 1 + .../interface/document_loaders/base.py | 2 +- .../inputDirectoryComponent/index.tsx | 98 +++++++++++++++++++ 3 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 src/frontend/src/components/inputDirectoryComponent/index.tsx diff --git a/src/backend/langflow/config.yaml b/src/backend/langflow/config.yaml index b1da1b622..6dadc7a88 100644 --- a/src/backend/langflow/config.yaml +++ b/src/backend/langflow/config.yaml @@ -42,6 +42,7 @@ documentloaders: - IMSDbLoader - GitbookLoader - ReadTheDocsLoader + - NotionDirectoryLoader embeddings: - OpenAIEmbeddings - HuggingFaceEmbeddings diff --git a/src/backend/langflow/interface/document_loaders/base.py b/src/backend/langflow/interface/document_loaders/base.py index aab017c0f..a13d5cd5b 100644 --- a/src/backend/langflow/interface/document_loaders/base.py +++ b/src/backend/langflow/interface/document_loaders/base.py @@ -118,7 +118,7 @@ class DocumentLoaderCreator(LangChainTypeCreator): "value": "", "display_name": "Web Page", } - elif name in {"ReadTheDocsLoader"}: + elif name in {"ReadTheDocsLoader", "NotionDirectoryLoader"}: signature["template"]["path"] = { "type": "str", "required": True, diff --git a/src/frontend/src/components/inputDirectoryComponent/index.tsx b/src/frontend/src/components/inputDirectoryComponent/index.tsx new file mode 100644 index 000000000..eb167bbee --- /dev/null +++ b/src/frontend/src/components/inputDirectoryComponent/index.tsx @@ -0,0 +1,98 @@ +import { DocumentMagnifyingGlassIcon } from "@heroicons/react/24/outline"; +import { useContext, useEffect, useState } from "react"; +import { alertContext } from "../../contexts/alertContext"; +import { FileComponentType } from "../../types/components"; + +export default function InputDirectoryComponent({ + value, + onChange, + disabled, + suffixes, + fileTypes, + onFileChange, +}: FileComponentType) { + const [myValue, setMyValue] = useState(value); + const { setErrorData } = useContext(alertContext); + useEffect(() => { + if (disabled) { + setMyValue(""); + onChange(""); + onFileChange(""); + } + }, [disabled, onChange]); + + function attachFiles(files) { + onFileChange(files); + } + + function checkFileType(fileName: string): boolean { + for (let index = 0; index < suffixes.length; index++) { + if (fileName.endsWith(suffixes[index])) { + return true; + } + } + return false; + } + + const handleDirectoryButtonClick = () => { + const input = document.createElement("input"); + input.type = "file"; + input.accept = suffixes.join(","); + input.style.display = "none"; + input.multiple = true; + input.webkitdirectory = true; + input.onchange = (e: Event) => { + const filesArray = []; + const inputElement = e.target as HTMLInputElement; + console.log(inputElement.webkitEntries); // Not working + const files = (e.target as HTMLInputElement).files; + const directory = (e.target as HTMLInputElement).dirName; // Not working + + console.log(directory); + if (files) { + for (let index = 0; index < files.length; index++) { + const file = files[index]; + if (checkFileType(file.name)) { + console.log("going in: ", file); + filesArray.push(file); + } + } + if (filesArray.length > 0) { + setMyValue(filesArray[0].webkitRelativePath); + onChange(filesArray[0].webkitRelativePath); + attachFiles(filesArray[0].webkitRelativePath); + } else { + setErrorData({ + title: + "Please select a valid directory. Only directories containing files with these file types are allowed:", + list: fileTypes, + }); + } + } + }; + input.click(); + }; + + return ( +
+
+ + {myValue !== "" ? myValue : "No directory"} + + +
+
+ ); +} From b16b9d687becfce6e2fc301d702bf63d2d8110b8 Mon Sep 17 00:00:00 2001 From: Gabriel Ferreira Rosalino Date: Sun, 28 May 2023 02:10:31 -0300 Subject: [PATCH 05/72] feat: SlackDirectoryLoader --- src/backend/langflow/config.yaml | 1 + src/backend/langflow/interface/document_loaders/base.py | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/backend/langflow/config.yaml b/src/backend/langflow/config.yaml index b1da1b622..9f069d2f4 100644 --- a/src/backend/langflow/config.yaml +++ b/src/backend/langflow/config.yaml @@ -42,6 +42,7 @@ documentloaders: - IMSDbLoader - GitbookLoader - ReadTheDocsLoader + - SlackDirectoryLoader embeddings: - OpenAIEmbeddings - HuggingFaceEmbeddings diff --git a/src/backend/langflow/interface/document_loaders/base.py b/src/backend/langflow/interface/document_loaders/base.py index aab017c0f..35a7c7add 100644 --- a/src/backend/langflow/interface/document_loaders/base.py +++ b/src/backend/langflow/interface/document_loaders/base.py @@ -89,6 +89,9 @@ class DocumentLoaderCreator(LangChainTypeCreator): "UnstructuredWordDocumentLoader": build_file_path_template( suffixes=[".docx", ".doc"], fileTypes=["docx", "doc"] ), + "SlackDirectoryLoader": build_file_path_template( + suffixes=[".zip"], fileTypes=["zip"] + ), } if name in file_path_templates: From 36910ff1872ea26a20c29b5164b9320d313222e3 Mon Sep 17 00:00:00 2001 From: Gabriel Ferreira Rosalino Date: Sun, 28 May 2023 02:13:24 -0300 Subject: [PATCH 06/72] chore: removed not needed inputDirectoryComponent --- .../inputDirectoryComponent/index.tsx | 98 ------------------- 1 file changed, 98 deletions(-) delete mode 100644 src/frontend/src/components/inputDirectoryComponent/index.tsx diff --git a/src/frontend/src/components/inputDirectoryComponent/index.tsx b/src/frontend/src/components/inputDirectoryComponent/index.tsx deleted file mode 100644 index eb167bbee..000000000 --- a/src/frontend/src/components/inputDirectoryComponent/index.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import { DocumentMagnifyingGlassIcon } from "@heroicons/react/24/outline"; -import { useContext, useEffect, useState } from "react"; -import { alertContext } from "../../contexts/alertContext"; -import { FileComponentType } from "../../types/components"; - -export default function InputDirectoryComponent({ - value, - onChange, - disabled, - suffixes, - fileTypes, - onFileChange, -}: FileComponentType) { - const [myValue, setMyValue] = useState(value); - const { setErrorData } = useContext(alertContext); - useEffect(() => { - if (disabled) { - setMyValue(""); - onChange(""); - onFileChange(""); - } - }, [disabled, onChange]); - - function attachFiles(files) { - onFileChange(files); - } - - function checkFileType(fileName: string): boolean { - for (let index = 0; index < suffixes.length; index++) { - if (fileName.endsWith(suffixes[index])) { - return true; - } - } - return false; - } - - const handleDirectoryButtonClick = () => { - const input = document.createElement("input"); - input.type = "file"; - input.accept = suffixes.join(","); - input.style.display = "none"; - input.multiple = true; - input.webkitdirectory = true; - input.onchange = (e: Event) => { - const filesArray = []; - const inputElement = e.target as HTMLInputElement; - console.log(inputElement.webkitEntries); // Not working - const files = (e.target as HTMLInputElement).files; - const directory = (e.target as HTMLInputElement).dirName; // Not working - - console.log(directory); - if (files) { - for (let index = 0; index < files.length; index++) { - const file = files[index]; - if (checkFileType(file.name)) { - console.log("going in: ", file); - filesArray.push(file); - } - } - if (filesArray.length > 0) { - setMyValue(filesArray[0].webkitRelativePath); - onChange(filesArray[0].webkitRelativePath); - attachFiles(filesArray[0].webkitRelativePath); - } else { - setErrorData({ - title: - "Please select a valid directory. Only directories containing files with these file types are allowed:", - list: fileTypes, - }); - } - } - }; - input.click(); - }; - - return ( -
-
- - {myValue !== "" ? myValue : "No directory"} - - -
-
- ); -} From 023df99ecc7c07da78b8f7f545685e255c20f427 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Sun, 28 May 2023 16:18:33 -0300 Subject: [PATCH 07/72] =?UTF-8?q?=F0=9F=94=A8=20refactor(embeddings.py):?= =?UTF-8?q?=20move=20openai=20fields=20formatting=20to=20a=20separate=20me?= =?UTF-8?q?thod=20=E2=9C=85=20test(embeddings=5Ftemplate.py):=20add=20test?= =?UTF-8?q?s=20for=20openai=20fields=20formatting=20The=20openai=20fields?= =?UTF-8?q?=20formatting=20is=20now=20done=20in=20a=20separate=20method,?= =?UTF-8?q?=20which=20improves=20the=20readability=20and=20maintainability?= =?UTF-8?q?=20of=20the=20code.=20Tests=20were=20added=20to=20ensure=20that?= =?UTF-8?q?=20the=20formatting=20is=20done=20correctly.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/frontend_node/embeddings.py | 21 +++++-- tests/test_embeddings_template.py | 59 +++++++++++++++++++ 2 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 tests/test_embeddings_template.py diff --git a/src/backend/langflow/template/frontend_node/embeddings.py b/src/backend/langflow/template/frontend_node/embeddings.py index d21e12e73..d466b11a4 100644 --- a/src/backend/langflow/template/frontend_node/embeddings.py +++ b/src/backend/langflow/template/frontend_node/embeddings.py @@ -22,6 +22,22 @@ class EmbeddingFrontendNode(FrontendNode): field.display_name = "Jina API URL" field.password = False + @staticmethod + def format_openai_fields(field: TemplateField): + if "openai" in field.name: + field.show = True + field.advanced = True + split_name = field.name.split("_") + title_name = " ".join([s.capitalize() for s in split_name]) + field.display_name = title_name.replace("Openai", "OpenAI").replace( + "Api", "API" + ) + + if "api_key" in field.name: + field.password = True + field.show = True + field.advanced = False + @staticmethod def format_field(field: TemplateField, name: Optional[str] = None) -> None: FrontendNode.format_field(field, name) @@ -30,9 +46,6 @@ class EmbeddingFrontendNode(FrontendNode): if field.name == "headers": field.show = False - if "openai" in field.name: - field.show = True - field.advanced = "api_key" not in field.name - # Format Jina fields EmbeddingFrontendNode.format_jina_fields(field) + EmbeddingFrontendNode.format_openai_fields(field) diff --git a/tests/test_embeddings_template.py b/tests/test_embeddings_template.py new file mode 100644 index 000000000..7334c2abd --- /dev/null +++ b/tests/test_embeddings_template.py @@ -0,0 +1,59 @@ +from langflow.template.field.base import TemplateField +from langflow.template.frontend_node.embeddings import EmbeddingFrontendNode + + +def test_format_jina_fields(): + field = TemplateField(name="jina") + EmbeddingFrontendNode.format_jina_fields(field) + assert field.show is True + assert field.advanced is False + + field = TemplateField(name="auth") + EmbeddingFrontendNode.format_jina_fields(field) + assert field.password is True + assert field.show is True + assert field.advanced is False + + field = TemplateField(name="jina_api_url") + EmbeddingFrontendNode.format_jina_fields(field) + assert field.show is True + assert field.advanced is True + assert field.display_name == "Jina API URL" + assert field.password is False + + +def test_format_openai_fields(): + field = TemplateField(name="openai") + EmbeddingFrontendNode.format_openai_fields(field) + assert field.show is True + assert field.advanced is True + assert field.display_name == "OpenAI" + + field = TemplateField(name="openai_api_key") + EmbeddingFrontendNode.format_openai_fields(field) + assert field.password is True + assert field.show is True + assert field.advanced is False + + +def test_format_field(): + field = TemplateField(name="headers") + EmbeddingFrontendNode.format_field(field) + assert field.show is False + + field = TemplateField(name="jina") + EmbeddingFrontendNode.format_field(field) + assert field.advanced is False + assert field.show is True + + field = TemplateField(name="openai") + EmbeddingFrontendNode.format_field(field) + assert field.advanced is True + assert field.show is True + assert field.display_name == "OpenAI" + + field = TemplateField(name="test_field", required=True) + EmbeddingFrontendNode.format_field(field) + assert field.advanced is False + assert field.show is True + assert field.required is True From 4848759aeb6bd0568df868bb588841092865c6ac Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Sun, 28 May 2023 16:36:57 -0300 Subject: [PATCH 08/72] =?UTF-8?q?=F0=9F=9A=80=20chore(Makefile):=20add=20m?= =?UTF-8?q?ake=20targets=20to=20install=20backend=20and=20frontend=20depen?= =?UTF-8?q?dencies=20The=20Makefile=20now=20has=20two=20new=20targets,=20`?= =?UTF-8?q?install=5Fbackend`=20and=20`install=5Ffrontend`,=20which=20inst?= =?UTF-8?q?all=20the=20dependencies=20for=20the=20backend=20and=20frontend?= =?UTF-8?q?=20respectively.=20This=20makes=20it=20easier=20for=20developer?= =?UTF-8?q?s=20to=20set=20up=20the=20project=20as=20they=20can=20now=20run?= =?UTF-8?q?=20`make=20init`=20to=20install=20the=20pre-commit=20hooks=20an?= =?UTF-8?q?d=20all=20dependencies.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Makefile b/Makefile index e03967b23..fdb09a13e 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,10 @@ all: help init: @echo 'Installing pre-commit hooks' git config core.hooksPath .githooks + @echo 'Installing backend dependencies' + make install_backend + @echo 'Installing frontend dependencies' + make install_frontend coverage: poetry run pytest --cov \ From c2027898de8d1500c36aa7547d1a23c09b58519f Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Sun, 28 May 2023 17:14:49 -0300 Subject: [PATCH 09/72] =?UTF-8?q?=F0=9F=90=9B=20fix(config.yaml):=20add=20?= =?UTF-8?q?CTransformers=20to=20the=20list=20of=20supported=20llms=20?= =?UTF-8?q?=F0=9F=90=9B=20fix(utils.py):=20fix=20setting=20of=20streaming?= =?UTF-8?q?=20option=20for=20llm=20=F0=9F=8E=A8=20style(llms.py):=20add=20?= =?UTF-8?q?model=5Ffile=20and=20model=5Ftype=20fields=20to=20the=20list=20?= =?UTF-8?q?of=20non-advanced=20fields=20The=20first=20change=20adds=20CTra?= =?UTF-8?q?nsformers=20to=20the=20list=20of=20supported=20llms=20in=20the?= =?UTF-8?q?=20config.yaml=20file.=20The=20second=20change=20fixes=20a=20bu?= =?UTF-8?q?g=20in=20the=20try=5Fsetting=5Fstreaming=5Foptions=20function?= =?UTF-8?q?=20in=20utils.py=20where=20the=20streaming=20option=20was=20not?= =?UTF-8?q?=20being=20set=20correctly.=20The=20third=20change=20is=20a=20s?= =?UTF-8?q?tyle=20change=20that=20adds=20the=20model=5Ffile=20and=20model?= =?UTF-8?q?=5Ftype=20fields=20to=20the=20list=20of=20non-advanced=20fields?= =?UTF-8?q?=20in=20the=20LLMFrontendNode=20class=20in=20llms.py.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/config.yaml | 4 ++-- src/backend/langflow/interface/utils.py | 4 ++-- src/backend/langflow/template/frontend_node/llms.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/backend/langflow/config.yaml b/src/backend/langflow/config.yaml index b1da1b622..18bdaf9e2 100644 --- a/src/backend/langflow/config.yaml +++ b/src/backend/langflow/config.yaml @@ -45,13 +45,13 @@ documentloaders: embeddings: - OpenAIEmbeddings - HuggingFaceEmbeddings - llms: - OpenAI # - AzureOpenAI - ChatOpenAI - HuggingFaceHub - LlamaCpp + - CTransformers memories: - ConversationBufferMemory - ConversationSummaryMemory @@ -113,7 +113,7 @@ vectorstores: - Qdrant - Weaviate wrappers: - - RequestsWrapper # Wait more tests + - RequestsWrapper # - ChatPromptTemplate # - SystemMessagePromptTemplate # - HumanMessagePromptTemplate diff --git a/src/backend/langflow/interface/utils.py b/src/backend/langflow/interface/utils.py index 7368fda3e..2b7c5acd1 100644 --- a/src/backend/langflow/interface/utils.py +++ b/src/backend/langflow/interface/utils.py @@ -44,7 +44,7 @@ def try_setting_streaming_options(langchain_object, websocket): langchain_object.llm_chain, "llm" ): llm = langchain_object.llm_chain.llm - if isinstance(llm, BaseLanguageModel): - llm.streaming = bool(hasattr(llm, "streaming")) + if isinstance(llm, BaseLanguageModel) and hasattr(llm, "streaming"): + llm.streaming = True return langchain_object diff --git a/src/backend/langflow/template/frontend_node/llms.py b/src/backend/langflow/template/frontend_node/llms.py index 4dc32dff1..272770e2e 100644 --- a/src/backend/langflow/template/frontend_node/llms.py +++ b/src/backend/langflow/template/frontend_node/llms.py @@ -43,7 +43,7 @@ class LLMFrontendNode(FrontendNode): field.field_type = "code" field.advanced = True field.show = True - elif field.name in ["model_name", "temperature"]: + elif field.name in ["model_name", "temperature", "model_file", "model_type"]: field.advanced = False field.show = True From f315d78f14871b99c94ec389cecc69f5e31c978f Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Sun, 28 May 2023 17:15:10 -0300 Subject: [PATCH 10/72] =?UTF-8?q?=F0=9F=94=BA=20chore(pyproject.toml):=20u?= =?UTF-8?q?pdate=20langchain=20dependency=20from=200.0.176=20to=200.0.183?= =?UTF-8?q?=20=E2=9C=A8=20feat(pyproject.toml):=20add=20ctransformers=20de?= =?UTF-8?q?pendency=20to=20support=20text=20classification=20tasks=20The?= =?UTF-8?q?=20langchain=20dependency=20has=20been=20updated=20to=20version?= =?UTF-8?q?=200.0.183=20to=20ensure=20that=20the=20latest=20features=20and?= =?UTF-8?q?=20bug=20fixes=20are=20available.=20The=20ctransformers=20depen?= =?UTF-8?q?dency=20has=20been=20added=20to=20support=20text=20classificati?= =?UTF-8?q?on=20tasks.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- poetry.lock | 37 +++++++++++++++++++++++++++---------- pyproject.toml | 3 ++- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/poetry.lock b/poetry.lock index aad835dc1..201830ac9 100644 --- a/poetry.lock +++ b/poetry.lock @@ -876,6 +876,24 @@ test = ["iso8601", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-co test-randomorder = ["pytest-randomly"] tox = ["tox"] +[[package]] +name = "ctransformers" +version = "0.2.2" +description = "Python bindings for the Transformer models implemented in C/C++ using GGML library." +category = "main" +optional = false +python-versions = "*" +files = [ + {file = "ctransformers-0.2.2-py3-none-any.whl", hash = "sha256:bf682dd0293dd87911c9a9a1169a4873ff55baebc16d465c6029c77f11b18cf6"}, + {file = "ctransformers-0.2.2.tar.gz", hash = "sha256:1fc36b3fde36d9fd3cb69e48993315bb1f5f54ae552720eb909dc4b3a131c743"}, +] + +[package.dependencies] +huggingface-hub = "*" + +[package.extras] +tests = ["pytest"] + [[package]] name = "dataclasses-json" version = "0.5.7" @@ -2293,14 +2311,14 @@ test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] [[package]] name = "langchain" -version = "0.0.176" +version = "0.0.183" description = "Building applications with LLMs through composability" category = "main" optional = false python-versions = ">=3.8.1,<4.0" files = [ - {file = "langchain-0.0.176-py3-none-any.whl", hash = "sha256:b2a1958ed07d884869b4bdaa28d63a005787e7f4938d2bbe984b3662827db861"}, - {file = "langchain-0.0.176.tar.gz", hash = "sha256:25f2875d48efab9b32affbe886b85580b1a9df0fb5ae54798eb28aeafba60bec"}, + {file = "langchain-0.0.183-py3-none-any.whl", hash = "sha256:d98e56bf5189599f6500d59908f85b5a6cdf65545e34b41165c7c98beb1ccd0e"}, + {file = "langchain-0.0.183.tar.gz", hash = "sha256:ec9712ae9d11b14f02e703f123d9493f82d49fd80e86df4ff4014df2af06aeca"}, ] [package.dependencies] @@ -2317,14 +2335,13 @@ SQLAlchemy = ">=1.4,<3" tenacity = ">=8.1.0,<9.0.0" [package.extras] -all = ["O365 (>=2.0.26,<3.0.0)", "aleph-alpha-client (>=2.15.0,<3.0.0)", "anthropic (>=0.2.6,<0.3.0)", "arxiv (>=1.4,<2.0)", "atlassian-python-api (>=3.36.0,<4.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "beautifulsoup4 (>=4,<5)", "clickhouse-connect (>=0.5.14,<0.6.0)", "cohere (>=3,<4)", "deeplake (>=3.3.0,<4.0.0)", "docarray (>=0.31.0,<0.32.0)", "duckduckgo-search (>=2.8.6,<3.0.0)", "elasticsearch (>=8,<9)", "faiss-cpu (>=1,<2)", "google-api-python-client (==2.70.0)", "google-search-results (>=2,<3)", "gptcache (>=0.1.7)", "hnswlib (>=0.7.0,<0.8.0)", "html2text (>=2020.1.16,<2021.0.0)", "huggingface_hub (>=0,<1)", "jina (>=3.14,<4.0)", "jinja2 (>=3,<4)", "jq (>=1.4.1,<2.0.0)", "lancedb (>=0.1,<0.2)", "lark (>=1.1.5,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "manifest-ml (>=0.0.1,<0.0.2)", "networkx (>=2.6.3,<3.0.0)", "nlpcloud (>=1,<2)", "nltk (>=3,<4)", "nomic (>=1.0.43,<2.0.0)", "openai (>=0,<1)", "opensearch-py (>=2.0.0,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "pexpect (>=4.8.0,<5.0.0)", "pgvector (>=0.1.6,<0.2.0)", "pinecone-client (>=2,<3)", "pinecone-text (>=0.4.2,<0.5.0)", "protobuf (==3.19.6)", "psycopg2-binary (>=2.9.5,<3.0.0)", "pyowm (>=3.3.0,<4.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pytesseract (>=0.3.10,<0.4.0)", "pyvespa (>=0.33.0,<0.34.0)", "qdrant-client (>=1.1.2,<2.0.0)", "redis (>=4,<5)", "sentence-transformers (>=2,<3)", "spacy (>=3,<4)", "steamship (>=2.16.9,<3.0.0)", "tensorflow-text (>=2.11.0,<3.0.0)", "tiktoken (>=0.3.2,<0.4.0)", "torch (>=1,<3)", "transformers (>=4,<5)", "weaviate-client (>=3,<4)", "wikipedia (>=1,<2)", "wolframalpha (==5.0.0)"] -azure = ["azure-core (>=1.26.4,<2.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "openai (>=0,<1)"] +all = ["O365 (>=2.0.26,<3.0.0)", "aleph-alpha-client (>=2.15.0,<3.0.0)", "anthropic (>=0.2.6,<0.3.0)", "arxiv (>=1.4,<2.0)", "atlassian-python-api (>=3.36.0,<4.0.0)", "azure-ai-formrecognizer (>=3.2.1,<4.0.0)", "azure-ai-vision (>=0.11.1b1,<0.12.0)", "azure-cognitiveservices-speech (>=1.28.0,<2.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "beautifulsoup4 (>=4,<5)", "clickhouse-connect (>=0.5.14,<0.6.0)", "cohere (>=3,<4)", "deeplake (>=3.3.0,<4.0.0)", "docarray[hnswlib] (>=0.32.0,<0.33.0)", "duckduckgo-search (>=2.8.6,<3.0.0)", "elasticsearch (>=8,<9)", "faiss-cpu (>=1,<2)", "google-api-python-client (==2.70.0)", "google-search-results (>=2,<3)", "gptcache (>=0.1.7)", "html2text (>=2020.1.16,<2021.0.0)", "huggingface_hub (>=0,<1)", "jina (>=3.14,<4.0)", "jinja2 (>=3,<4)", "jq (>=1.4.1,<2.0.0)", "lancedb (>=0.1,<0.2)", "langkit (>=0.0.1.dev3,<0.1.0)", "lark (>=1.1.5,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "manifest-ml (>=0.0.1,<0.0.2)", "momento (>=1.5.0,<2.0.0)", "neo4j (>=5.8.1,<6.0.0)", "networkx (>=2.6.3,<3.0.0)", "nlpcloud (>=1,<2)", "nltk (>=3,<4)", "nomic (>=1.0.43,<2.0.0)", "openai (>=0,<1)", "openlm (>=0.0.5,<0.0.6)", "opensearch-py (>=2.0.0,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "pexpect (>=4.8.0,<5.0.0)", "pgvector (>=0.1.6,<0.2.0)", "pinecone-client (>=2,<3)", "pinecone-text (>=0.4.2,<0.5.0)", "psycopg2-binary (>=2.9.5,<3.0.0)", "pyowm (>=3.3.0,<4.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pytesseract (>=0.3.10,<0.4.0)", "pyvespa (>=0.33.0,<0.34.0)", "qdrant-client (>=1.1.2,<2.0.0)", "redis (>=4,<5)", "requests-toolbelt (>=1.0.0,<2.0.0)", "sentence-transformers (>=2,<3)", "spacy (>=3,<4)", "steamship (>=2.16.9,<3.0.0)", "tensorflow-text (>=2.11.0,<3.0.0)", "tiktoken (>=0.3.2,<0.4.0)", "torch (>=1,<3)", "transformers (>=4,<5)", "weaviate-client (>=3,<4)", "wikipedia (>=1,<2)", "wolframalpha (==5.0.0)"] +azure = ["azure-ai-formrecognizer (>=3.2.1,<4.0.0)", "azure-ai-vision (>=0.11.1b1,<0.12.0)", "azure-cognitiveservices-speech (>=1.28.0,<2.0.0)", "azure-core (>=1.26.4,<2.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "openai (>=0,<1)"] cohere = ["cohere (>=3,<4)"] +docarray = ["docarray[hnswlib] (>=0.32.0,<0.33.0)"] embeddings = ["sentence-transformers (>=2,<3)"] -extended-testing = ["atlassian-python-api (>=3.36.0,<4.0.0)", "beautifulsoup4 (>=4,<5)", "chardet (>=5.1.0,<6.0.0)", "gql (>=3.4.1,<4.0.0)", "html2text (>=2020.1.16,<2021.0.0)", "jq (>=1.4.1,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "pandas (>=2.0.1,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "psychicapi (>=0.2,<0.3)", "pymupdf (>=1.22.3,<2.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pypdfium2 (>=4.10.0,<5.0.0)", "requests-toolbelt (>=1.0.0,<2.0.0)", "telethon (>=1.28.5,<2.0.0)", "tqdm (>=4.48.0)", "zep-python (>=0.25,<0.26)"] -hnswlib = ["docarray (>=0.31.0,<0.32.0)", "hnswlib (>=0.7.0,<0.8.0)", "protobuf (==3.19.6)"] -in-memory-store = ["docarray (>=0.31.0,<0.32.0)"] -llms = ["anthropic (>=0.2.6,<0.3.0)", "cohere (>=3,<4)", "huggingface_hub (>=0,<1)", "manifest-ml (>=0.0.1,<0.0.2)", "nlpcloud (>=1,<2)", "openai (>=0,<1)", "torch (>=1,<3)", "transformers (>=4,<5)"] +extended-testing = ["atlassian-python-api (>=3.36.0,<4.0.0)", "beautifulsoup4 (>=4,<5)", "bibtexparser (>=1.4.0,<2.0.0)", "chardet (>=5.1.0,<6.0.0)", "gql (>=3.4.1,<4.0.0)", "html2text (>=2020.1.16,<2021.0.0)", "jq (>=1.4.1,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "pandas (>=2.0.1,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "psychicapi (>=0.2,<0.3)", "pymupdf (>=1.22.3,<2.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pypdfium2 (>=4.10.0,<5.0.0)", "requests-toolbelt (>=1.0.0,<2.0.0)", "scikit-learn (>=1.2.2,<2.0.0)", "telethon (>=1.28.5,<2.0.0)", "tqdm (>=4.48.0)", "zep-python (>=0.30,<0.31)"] +llms = ["anthropic (>=0.2.6,<0.3.0)", "cohere (>=3,<4)", "huggingface_hub (>=0,<1)", "manifest-ml (>=0.0.1,<0.0.2)", "nlpcloud (>=1,<2)", "openai (>=0,<1)", "openlm (>=0.0.5,<0.0.6)", "torch (>=1,<3)", "transformers (>=4,<5)"] openai = ["openai (>=0,<1)", "tiktoken (>=0.3.2,<0.4.0)"] qdrant = ["qdrant-client (>=1.1.2,<2.0.0)"] text-helpers = ["chardet (>=5.1.0,<6.0.0)"] @@ -6133,4 +6150,4 @@ deploy = ["langchain-serve"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.12" -content-hash = "abbb024a67e3326821999f9a0a6164b13e877b0b72d1cd6912ca694c83fffa22" +content-hash = "76ed90caa5b359e5c367272e7db37230e8dea200e7171f1ccfc2015eacebe1b0" diff --git a/pyproject.toml b/pyproject.toml index 1cb6f3581..f261aea9b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ google-search-results = "^2.4.1" google-api-python-client = "^2.79.0" typer = "^0.7.0" gunicorn = "^20.1.0" -langchain = "^0.0.176" +langchain = "^0.0.183" openai = "^0.27.2" types-pyyaml = "^6.0.12.8" dill = "^0.3.6" @@ -55,6 +55,7 @@ websockets = "^11.0.3" weaviate-client = "^3.19.2" jina = "3.15.2" sentence-transformers = "^2.2.2" +ctransformers = "^0.2.2" [tool.poetry.group.dev.dependencies] black = "^23.1.0" From 5f25bb0d580de827722043b85a408bbf1812d6c5 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Sun, 28 May 2023 17:25:27 -0300 Subject: [PATCH 11/72] =?UTF-8?q?=F0=9F=90=9B=20fix(utils.py):=20fix=20try?= =?UTF-8?q?=5Fsetting=5Fstreaming=5Foptions=20function=20to=20correctly=20?= =?UTF-8?q?set=20streaming=20attribute=20The=20try=5Fsetting=5Fstreaming?= =?UTF-8?q?=5Foptions=20function=20now=20correctly=20sets=20the=20streamin?= =?UTF-8?q?g=20attribute=20of=20the=20llm=20object=20to=20True=20if=20it?= =?UTF-8?q?=20is=20an=20instance=20of=20BaseLanguageModel=20and=20has=20th?= =?UTF-8?q?e=20streaming=20attribute.=20This=20fixes=20a=20bug=20where=20t?= =?UTF-8?q?he=20streaming=20attribute=20was=20not=20being=20set=20correctl?= =?UTF-8?q?y.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/interface/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/langflow/interface/utils.py b/src/backend/langflow/interface/utils.py index 7368fda3e..2b7c5acd1 100644 --- a/src/backend/langflow/interface/utils.py +++ b/src/backend/langflow/interface/utils.py @@ -44,7 +44,7 @@ def try_setting_streaming_options(langchain_object, websocket): langchain_object.llm_chain, "llm" ): llm = langchain_object.llm_chain.llm - if isinstance(llm, BaseLanguageModel): - llm.streaming = bool(hasattr(llm, "streaming")) + if isinstance(llm, BaseLanguageModel) and hasattr(llm, "streaming"): + llm.streaming = True return langchain_object From 4409066e815a99805d75ab8c748259f251cd1646 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Sun, 28 May 2023 17:28:42 -0300 Subject: [PATCH 12/72] =?UTF-8?q?=F0=9F=94=BC=20chore(pyproject.toml):=20u?= =?UTF-8?q?pdate=20langchain=20dependency=20from=200.0.176=20to=200.0.183?= =?UTF-8?q?=20=E2=9C=A8=20feat(pyproject.toml):=20add=20cohere=20dependenc?= =?UTF-8?q?y=20to=20enable=20new=20features=20=F0=9F=94=A7=20chore(config.?= =?UTF-8?q?yaml):=20add=20Cohere=20to=20the=20list=20of=20supported=20LLMS?= =?UTF-8?q?=20The=20langchain=20dependency=20was=20updated=20to=20version?= =?UTF-8?q?=200.0.183=20to=20take=20advantage=20of=20the=20latest=20featur?= =?UTF-8?q?es=20and=20bug=20fixes.=20The=20cohere=20dependency=20was=20add?= =?UTF-8?q?ed=20to=20enable=20new=20features.=20Cohere=20is=20now=20added?= =?UTF-8?q?=20to=20the=20list=20of=20supported=20LLMS=20in=20the=20config.?= =?UTF-8?q?yaml=20file.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- poetry.lock | 36 +++++++++++++++++++++++--------- pyproject.toml | 3 ++- src/backend/langflow/config.yaml | 1 + 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/poetry.lock b/poetry.lock index aad835dc1..9a225f3c4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -717,6 +717,23 @@ pandas = ["pandas"] sqlalchemy = ["sqlalchemy (>1.3.21,<1.4)"] superset = ["apache-superset (>=1.4.1)"] +[[package]] +name = "cohere" +version = "4.6.0" +description = "" +category = "main" +optional = false +python-versions = ">=3.7,<4.0" +files = [ + {file = "cohere-4.6.0-py3-none-any.whl", hash = "sha256:fc60fa73a2d96bdb9f70da4a290d3ede320b74ac01a24c229011049d7cb3511f"}, + {file = "cohere-4.6.0.tar.gz", hash = "sha256:43218a0a40f6fc023e068732994fb631ce5d160a0bc9f9a3a22524b5932f34ea"}, +] + +[package.dependencies] +aiohttp = ">=3.0,<4.0" +backoff = ">=2.0,<3.0" +requests = ">=2.0,<3.0" + [[package]] name = "colorama" version = "0.4.6" @@ -2293,14 +2310,14 @@ test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] [[package]] name = "langchain" -version = "0.0.176" +version = "0.0.183" description = "Building applications with LLMs through composability" category = "main" optional = false python-versions = ">=3.8.1,<4.0" files = [ - {file = "langchain-0.0.176-py3-none-any.whl", hash = "sha256:b2a1958ed07d884869b4bdaa28d63a005787e7f4938d2bbe984b3662827db861"}, - {file = "langchain-0.0.176.tar.gz", hash = "sha256:25f2875d48efab9b32affbe886b85580b1a9df0fb5ae54798eb28aeafba60bec"}, + {file = "langchain-0.0.183-py3-none-any.whl", hash = "sha256:d98e56bf5189599f6500d59908f85b5a6cdf65545e34b41165c7c98beb1ccd0e"}, + {file = "langchain-0.0.183.tar.gz", hash = "sha256:ec9712ae9d11b14f02e703f123d9493f82d49fd80e86df4ff4014df2af06aeca"}, ] [package.dependencies] @@ -2317,14 +2334,13 @@ SQLAlchemy = ">=1.4,<3" tenacity = ">=8.1.0,<9.0.0" [package.extras] -all = ["O365 (>=2.0.26,<3.0.0)", "aleph-alpha-client (>=2.15.0,<3.0.0)", "anthropic (>=0.2.6,<0.3.0)", "arxiv (>=1.4,<2.0)", "atlassian-python-api (>=3.36.0,<4.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "beautifulsoup4 (>=4,<5)", "clickhouse-connect (>=0.5.14,<0.6.0)", "cohere (>=3,<4)", "deeplake (>=3.3.0,<4.0.0)", "docarray (>=0.31.0,<0.32.0)", "duckduckgo-search (>=2.8.6,<3.0.0)", "elasticsearch (>=8,<9)", "faiss-cpu (>=1,<2)", "google-api-python-client (==2.70.0)", "google-search-results (>=2,<3)", "gptcache (>=0.1.7)", "hnswlib (>=0.7.0,<0.8.0)", "html2text (>=2020.1.16,<2021.0.0)", "huggingface_hub (>=0,<1)", "jina (>=3.14,<4.0)", "jinja2 (>=3,<4)", "jq (>=1.4.1,<2.0.0)", "lancedb (>=0.1,<0.2)", "lark (>=1.1.5,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "manifest-ml (>=0.0.1,<0.0.2)", "networkx (>=2.6.3,<3.0.0)", "nlpcloud (>=1,<2)", "nltk (>=3,<4)", "nomic (>=1.0.43,<2.0.0)", "openai (>=0,<1)", "opensearch-py (>=2.0.0,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "pexpect (>=4.8.0,<5.0.0)", "pgvector (>=0.1.6,<0.2.0)", "pinecone-client (>=2,<3)", "pinecone-text (>=0.4.2,<0.5.0)", "protobuf (==3.19.6)", "psycopg2-binary (>=2.9.5,<3.0.0)", "pyowm (>=3.3.0,<4.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pytesseract (>=0.3.10,<0.4.0)", "pyvespa (>=0.33.0,<0.34.0)", "qdrant-client (>=1.1.2,<2.0.0)", "redis (>=4,<5)", "sentence-transformers (>=2,<3)", "spacy (>=3,<4)", "steamship (>=2.16.9,<3.0.0)", "tensorflow-text (>=2.11.0,<3.0.0)", "tiktoken (>=0.3.2,<0.4.0)", "torch (>=1,<3)", "transformers (>=4,<5)", "weaviate-client (>=3,<4)", "wikipedia (>=1,<2)", "wolframalpha (==5.0.0)"] -azure = ["azure-core (>=1.26.4,<2.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "openai (>=0,<1)"] +all = ["O365 (>=2.0.26,<3.0.0)", "aleph-alpha-client (>=2.15.0,<3.0.0)", "anthropic (>=0.2.6,<0.3.0)", "arxiv (>=1.4,<2.0)", "atlassian-python-api (>=3.36.0,<4.0.0)", "azure-ai-formrecognizer (>=3.2.1,<4.0.0)", "azure-ai-vision (>=0.11.1b1,<0.12.0)", "azure-cognitiveservices-speech (>=1.28.0,<2.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "beautifulsoup4 (>=4,<5)", "clickhouse-connect (>=0.5.14,<0.6.0)", "cohere (>=3,<4)", "deeplake (>=3.3.0,<4.0.0)", "docarray[hnswlib] (>=0.32.0,<0.33.0)", "duckduckgo-search (>=2.8.6,<3.0.0)", "elasticsearch (>=8,<9)", "faiss-cpu (>=1,<2)", "google-api-python-client (==2.70.0)", "google-search-results (>=2,<3)", "gptcache (>=0.1.7)", "html2text (>=2020.1.16,<2021.0.0)", "huggingface_hub (>=0,<1)", "jina (>=3.14,<4.0)", "jinja2 (>=3,<4)", "jq (>=1.4.1,<2.0.0)", "lancedb (>=0.1,<0.2)", "langkit (>=0.0.1.dev3,<0.1.0)", "lark (>=1.1.5,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "manifest-ml (>=0.0.1,<0.0.2)", "momento (>=1.5.0,<2.0.0)", "neo4j (>=5.8.1,<6.0.0)", "networkx (>=2.6.3,<3.0.0)", "nlpcloud (>=1,<2)", "nltk (>=3,<4)", "nomic (>=1.0.43,<2.0.0)", "openai (>=0,<1)", "openlm (>=0.0.5,<0.0.6)", "opensearch-py (>=2.0.0,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "pexpect (>=4.8.0,<5.0.0)", "pgvector (>=0.1.6,<0.2.0)", "pinecone-client (>=2,<3)", "pinecone-text (>=0.4.2,<0.5.0)", "psycopg2-binary (>=2.9.5,<3.0.0)", "pyowm (>=3.3.0,<4.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pytesseract (>=0.3.10,<0.4.0)", "pyvespa (>=0.33.0,<0.34.0)", "qdrant-client (>=1.1.2,<2.0.0)", "redis (>=4,<5)", "requests-toolbelt (>=1.0.0,<2.0.0)", "sentence-transformers (>=2,<3)", "spacy (>=3,<4)", "steamship (>=2.16.9,<3.0.0)", "tensorflow-text (>=2.11.0,<3.0.0)", "tiktoken (>=0.3.2,<0.4.0)", "torch (>=1,<3)", "transformers (>=4,<5)", "weaviate-client (>=3,<4)", "wikipedia (>=1,<2)", "wolframalpha (==5.0.0)"] +azure = ["azure-ai-formrecognizer (>=3.2.1,<4.0.0)", "azure-ai-vision (>=0.11.1b1,<0.12.0)", "azure-cognitiveservices-speech (>=1.28.0,<2.0.0)", "azure-core (>=1.26.4,<2.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "openai (>=0,<1)"] cohere = ["cohere (>=3,<4)"] +docarray = ["docarray[hnswlib] (>=0.32.0,<0.33.0)"] embeddings = ["sentence-transformers (>=2,<3)"] -extended-testing = ["atlassian-python-api (>=3.36.0,<4.0.0)", "beautifulsoup4 (>=4,<5)", "chardet (>=5.1.0,<6.0.0)", "gql (>=3.4.1,<4.0.0)", "html2text (>=2020.1.16,<2021.0.0)", "jq (>=1.4.1,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "pandas (>=2.0.1,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "psychicapi (>=0.2,<0.3)", "pymupdf (>=1.22.3,<2.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pypdfium2 (>=4.10.0,<5.0.0)", "requests-toolbelt (>=1.0.0,<2.0.0)", "telethon (>=1.28.5,<2.0.0)", "tqdm (>=4.48.0)", "zep-python (>=0.25,<0.26)"] -hnswlib = ["docarray (>=0.31.0,<0.32.0)", "hnswlib (>=0.7.0,<0.8.0)", "protobuf (==3.19.6)"] -in-memory-store = ["docarray (>=0.31.0,<0.32.0)"] -llms = ["anthropic (>=0.2.6,<0.3.0)", "cohere (>=3,<4)", "huggingface_hub (>=0,<1)", "manifest-ml (>=0.0.1,<0.0.2)", "nlpcloud (>=1,<2)", "openai (>=0,<1)", "torch (>=1,<3)", "transformers (>=4,<5)"] +extended-testing = ["atlassian-python-api (>=3.36.0,<4.0.0)", "beautifulsoup4 (>=4,<5)", "bibtexparser (>=1.4.0,<2.0.0)", "chardet (>=5.1.0,<6.0.0)", "gql (>=3.4.1,<4.0.0)", "html2text (>=2020.1.16,<2021.0.0)", "jq (>=1.4.1,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "pandas (>=2.0.1,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "psychicapi (>=0.2,<0.3)", "pymupdf (>=1.22.3,<2.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pypdfium2 (>=4.10.0,<5.0.0)", "requests-toolbelt (>=1.0.0,<2.0.0)", "scikit-learn (>=1.2.2,<2.0.0)", "telethon (>=1.28.5,<2.0.0)", "tqdm (>=4.48.0)", "zep-python (>=0.30,<0.31)"] +llms = ["anthropic (>=0.2.6,<0.3.0)", "cohere (>=3,<4)", "huggingface_hub (>=0,<1)", "manifest-ml (>=0.0.1,<0.0.2)", "nlpcloud (>=1,<2)", "openai (>=0,<1)", "openlm (>=0.0.5,<0.0.6)", "torch (>=1,<3)", "transformers (>=4,<5)"] openai = ["openai (>=0,<1)", "tiktoken (>=0.3.2,<0.4.0)"] qdrant = ["qdrant-client (>=1.1.2,<2.0.0)"] text-helpers = ["chardet (>=5.1.0,<6.0.0)"] @@ -6133,4 +6149,4 @@ deploy = ["langchain-serve"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.12" -content-hash = "abbb024a67e3326821999f9a0a6164b13e877b0b72d1cd6912ca694c83fffa22" +content-hash = "7acf62317e2782126c25e293bc3bc61403336274fd5abfec37bd1bc4750e8162" diff --git a/pyproject.toml b/pyproject.toml index 1cb6f3581..f1e1fcc29 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,7 +29,7 @@ google-search-results = "^2.4.1" google-api-python-client = "^2.79.0" typer = "^0.7.0" gunicorn = "^20.1.0" -langchain = "^0.0.176" +langchain = "^0.0.183" openai = "^0.27.2" types-pyyaml = "^6.0.12.8" dill = "^0.3.6" @@ -55,6 +55,7 @@ websockets = "^11.0.3" weaviate-client = "^3.19.2" jina = "3.15.2" sentence-transformers = "^2.2.2" +cohere = "^4.6.0" [tool.poetry.group.dev.dependencies] black = "^23.1.0" diff --git a/src/backend/langflow/config.yaml b/src/backend/langflow/config.yaml index b1da1b622..b6c506d52 100644 --- a/src/backend/langflow/config.yaml +++ b/src/backend/langflow/config.yaml @@ -52,6 +52,7 @@ llms: - ChatOpenAI - HuggingFaceHub - LlamaCpp + - Cohere memories: - ConversationBufferMemory - ConversationSummaryMemory From fa8cd1e31cca44a5d2c041d265a11caf7e905861 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Sun, 28 May 2023 17:36:37 -0300 Subject: [PATCH 13/72] =?UTF-8?q?=F0=9F=94=92=20chore(pyproject.toml):=20u?= =?UTF-8?q?pdate=20dependencies=20to=20latest=20versions=20FastAPI=20and?= =?UTF-8?q?=20Langchain=20dependencies=20have=20been=20updated=20to=20thei?= =?UTF-8?q?r=20latest=20versions=20to=20ensure=20that=20the=20application?= =?UTF-8?q?=20is=20using=20the=20latest=20features=20and=20security=20patc?= =?UTF-8?q?hes.=20The=20Llama-cpp-python=20dependency=20has=20also=20been?= =?UTF-8?q?=20updated=20to=20a=20more=20recent=20version.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- poetry.lock | 69 +++++++++++++++++++++++++------------------------- pyproject.toml | 9 ++++--- 2 files changed, 39 insertions(+), 39 deletions(-) diff --git a/poetry.lock b/poetry.lock index aad835dc1..1104b786a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -212,14 +212,14 @@ server = ["Deprecated (>=1.2.0,<1.3.0)", "PyYAML (>=5.4.1,<6.1.0)", "aiofiles (> [[package]] name = "asgiref" -version = "3.7.1" +version = "3.7.2" description = "ASGI specs, helper code, and adapters" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "asgiref-3.7.1-py3-none-any.whl", hash = "sha256:33958cb2e4b3cd8b1b06ef295bd8605cde65b11df51d3beab39e2e149a610ab3"}, - {file = "asgiref-3.7.1.tar.gz", hash = "sha256:8de379fcc383bcfe4507e229fc31209ea23d4831c850f74063b2c11639474dd2"}, + {file = "asgiref-3.7.2-py3-none-any.whl", hash = "sha256:89b2ef2247e3b562a16eef663bc0e2e703ec6468e2fa8a5cd61cd449786d4f6e"}, + {file = "asgiref-3.7.2.tar.gz", hash = "sha256:9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed"}, ] [package.dependencies] @@ -387,14 +387,14 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "cachetools" -version = "5.3.0" +version = "5.3.1" description = "Extensible memoizing collections and decorators" category = "main" optional = false -python-versions = "~=3.7" +python-versions = ">=3.7" files = [ - {file = "cachetools-5.3.0-py3-none-any.whl", hash = "sha256:429e1a1e845c008ea6c85aa35d4b98b65d6a9763eeef3e37e92728a12d1de9d4"}, - {file = "cachetools-5.3.0.tar.gz", hash = "sha256:13dfddc7b8df938c21a940dfa6557ce6e94a2f1cdfa58eb90c805721d58f2c14"}, + {file = "cachetools-5.3.1-py3-none-any.whl", hash = "sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590"}, + {file = "cachetools-5.3.1.tar.gz", hash = "sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b"}, ] [[package]] @@ -938,21 +938,21 @@ files = [ [[package]] name = "deprecated" -version = "1.2.13" +version = "1.2.14" description = "Python @deprecated decorator to deprecate old python classes, functions or methods." category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ - {file = "Deprecated-1.2.13-py2.py3-none-any.whl", hash = "sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d"}, - {file = "Deprecated-1.2.13.tar.gz", hash = "sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d"}, + {file = "Deprecated-1.2.14-py2.py3-none-any.whl", hash = "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c"}, + {file = "Deprecated-1.2.14.tar.gz", hash = "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3"}, ] [package.dependencies] wrapt = ">=1.10,<2" [package.extras] -dev = ["PyTest", "PyTest (<5)", "PyTest-Cov", "PyTest-Cov (<2.6)", "bump2version (<1)", "configparser (<5)", "importlib-metadata (<3)", "importlib-resources (<4)", "sphinx (<2)", "sphinxcontrib-websupport (<2)", "tox", "zipp (<2)"] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"] [[package]] name = "dill" @@ -1165,25 +1165,25 @@ importlib-resources = {version = ">=5.0", markers = "python_version < \"3.10\""} [[package]] name = "fastapi" -version = "0.92.0" +version = "0.95.2" description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "fastapi-0.92.0-py3-none-any.whl", hash = "sha256:ae7b97c778e2f2ec3fb3cb4fb14162129411d99907fb71920f6d69a524340ebf"}, - {file = "fastapi-0.92.0.tar.gz", hash = "sha256:023a0f5bd2c8b2609014d3bba1e14a1d7df96c6abea0a73070621c9862b9a4de"}, + {file = "fastapi-0.95.2-py3-none-any.whl", hash = "sha256:d374dbc4ef2ad9b803899bd3360d34c534adc574546e25314ab72c0c4411749f"}, + {file = "fastapi-0.95.2.tar.gz", hash = "sha256:4d9d3e8c71c73f11874bcf5e33626258d143252e329a01002f767306c64fb982"}, ] [package.dependencies] pydantic = ">=1.6.2,<1.7 || >1.7,<1.7.1 || >1.7.1,<1.7.2 || >1.7.2,<1.7.3 || >1.7.3,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0" -starlette = ">=0.25.0,<0.26.0" +starlette = ">=0.27.0,<0.28.0" [package.extras] all = ["email-validator (>=1.1.1)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "python-multipart (>=0.0.5)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] dev = ["pre-commit (>=2.17.0,<3.0.0)", "ruff (==0.0.138)", "uvicorn[standard] (>=0.12.0,<0.21.0)"] -doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-markdownextradata-plugin (>=0.1.7,<0.3.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "pyyaml (>=5.3.1,<7.0.0)", "typer[all] (>=0.6.1,<0.8.0)"] -test = ["anyio[trio] (>=3.2.1,<4.0.0)", "black (==22.10.0)", "coverage[toml] (>=6.5.0,<8.0)", "databases[sqlite] (>=0.3.2,<0.7.0)", "email-validator (>=1.1.1,<2.0.0)", "flask (>=1.1.2,<3.0.0)", "httpx (>=0.23.0,<0.24.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.982)", "orjson (>=3.2.1,<4.0.0)", "passlib[bcrypt] (>=1.7.2,<2.0.0)", "peewee (>=3.13.3,<4.0.0)", "pytest (>=7.1.3,<8.0.0)", "python-jose[cryptography] (>=3.3.0,<4.0.0)", "python-multipart (>=0.0.5,<0.0.6)", "pyyaml (>=5.3.1,<7.0.0)", "ruff (==0.0.138)", "sqlalchemy (>=1.3.18,<1.4.43)", "types-orjson (==3.6.2)", "types-ujson (==5.6.0.0)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,<6.0.0)"] +doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-markdownextradata-plugin (>=0.1.7,<0.3.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "pyyaml (>=5.3.1,<7.0.0)", "typer-cli (>=0.0.13,<0.0.14)", "typer[all] (>=0.6.1,<0.8.0)"] +test = ["anyio[trio] (>=3.2.1,<4.0.0)", "black (==23.1.0)", "coverage[toml] (>=6.5.0,<8.0)", "databases[sqlite] (>=0.3.2,<0.7.0)", "email-validator (>=1.1.1,<2.0.0)", "flask (>=1.1.2,<3.0.0)", "httpx (>=0.23.0,<0.24.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.982)", "orjson (>=3.2.1,<4.0.0)", "passlib[bcrypt] (>=1.7.2,<2.0.0)", "peewee (>=3.13.3,<4.0.0)", "pytest (>=7.1.3,<8.0.0)", "python-jose[cryptography] (>=3.3.0,<4.0.0)", "python-multipart (>=0.0.5,<0.0.7)", "pyyaml (>=5.3.1,<7.0.0)", "ruff (==0.0.138)", "sqlalchemy (>=1.3.18,<1.4.43)", "types-orjson (==3.6.2)", "types-ujson (==5.7.0.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,<6.0.0)"] [[package]] name = "filelock" @@ -2293,14 +2293,14 @@ test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] [[package]] name = "langchain" -version = "0.0.176" +version = "0.0.183" description = "Building applications with LLMs through composability" category = "main" optional = false python-versions = ">=3.8.1,<4.0" files = [ - {file = "langchain-0.0.176-py3-none-any.whl", hash = "sha256:b2a1958ed07d884869b4bdaa28d63a005787e7f4938d2bbe984b3662827db861"}, - {file = "langchain-0.0.176.tar.gz", hash = "sha256:25f2875d48efab9b32affbe886b85580b1a9df0fb5ae54798eb28aeafba60bec"}, + {file = "langchain-0.0.183-py3-none-any.whl", hash = "sha256:d98e56bf5189599f6500d59908f85b5a6cdf65545e34b41165c7c98beb1ccd0e"}, + {file = "langchain-0.0.183.tar.gz", hash = "sha256:ec9712ae9d11b14f02e703f123d9493f82d49fd80e86df4ff4014df2af06aeca"}, ] [package.dependencies] @@ -2317,14 +2317,13 @@ SQLAlchemy = ">=1.4,<3" tenacity = ">=8.1.0,<9.0.0" [package.extras] -all = ["O365 (>=2.0.26,<3.0.0)", "aleph-alpha-client (>=2.15.0,<3.0.0)", "anthropic (>=0.2.6,<0.3.0)", "arxiv (>=1.4,<2.0)", "atlassian-python-api (>=3.36.0,<4.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "beautifulsoup4 (>=4,<5)", "clickhouse-connect (>=0.5.14,<0.6.0)", "cohere (>=3,<4)", "deeplake (>=3.3.0,<4.0.0)", "docarray (>=0.31.0,<0.32.0)", "duckduckgo-search (>=2.8.6,<3.0.0)", "elasticsearch (>=8,<9)", "faiss-cpu (>=1,<2)", "google-api-python-client (==2.70.0)", "google-search-results (>=2,<3)", "gptcache (>=0.1.7)", "hnswlib (>=0.7.0,<0.8.0)", "html2text (>=2020.1.16,<2021.0.0)", "huggingface_hub (>=0,<1)", "jina (>=3.14,<4.0)", "jinja2 (>=3,<4)", "jq (>=1.4.1,<2.0.0)", "lancedb (>=0.1,<0.2)", "lark (>=1.1.5,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "manifest-ml (>=0.0.1,<0.0.2)", "networkx (>=2.6.3,<3.0.0)", "nlpcloud (>=1,<2)", "nltk (>=3,<4)", "nomic (>=1.0.43,<2.0.0)", "openai (>=0,<1)", "opensearch-py (>=2.0.0,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "pexpect (>=4.8.0,<5.0.0)", "pgvector (>=0.1.6,<0.2.0)", "pinecone-client (>=2,<3)", "pinecone-text (>=0.4.2,<0.5.0)", "protobuf (==3.19.6)", "psycopg2-binary (>=2.9.5,<3.0.0)", "pyowm (>=3.3.0,<4.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pytesseract (>=0.3.10,<0.4.0)", "pyvespa (>=0.33.0,<0.34.0)", "qdrant-client (>=1.1.2,<2.0.0)", "redis (>=4,<5)", "sentence-transformers (>=2,<3)", "spacy (>=3,<4)", "steamship (>=2.16.9,<3.0.0)", "tensorflow-text (>=2.11.0,<3.0.0)", "tiktoken (>=0.3.2,<0.4.0)", "torch (>=1,<3)", "transformers (>=4,<5)", "weaviate-client (>=3,<4)", "wikipedia (>=1,<2)", "wolframalpha (==5.0.0)"] -azure = ["azure-core (>=1.26.4,<2.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "openai (>=0,<1)"] +all = ["O365 (>=2.0.26,<3.0.0)", "aleph-alpha-client (>=2.15.0,<3.0.0)", "anthropic (>=0.2.6,<0.3.0)", "arxiv (>=1.4,<2.0)", "atlassian-python-api (>=3.36.0,<4.0.0)", "azure-ai-formrecognizer (>=3.2.1,<4.0.0)", "azure-ai-vision (>=0.11.1b1,<0.12.0)", "azure-cognitiveservices-speech (>=1.28.0,<2.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "beautifulsoup4 (>=4,<5)", "clickhouse-connect (>=0.5.14,<0.6.0)", "cohere (>=3,<4)", "deeplake (>=3.3.0,<4.0.0)", "docarray[hnswlib] (>=0.32.0,<0.33.0)", "duckduckgo-search (>=2.8.6,<3.0.0)", "elasticsearch (>=8,<9)", "faiss-cpu (>=1,<2)", "google-api-python-client (==2.70.0)", "google-search-results (>=2,<3)", "gptcache (>=0.1.7)", "html2text (>=2020.1.16,<2021.0.0)", "huggingface_hub (>=0,<1)", "jina (>=3.14,<4.0)", "jinja2 (>=3,<4)", "jq (>=1.4.1,<2.0.0)", "lancedb (>=0.1,<0.2)", "langkit (>=0.0.1.dev3,<0.1.0)", "lark (>=1.1.5,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "manifest-ml (>=0.0.1,<0.0.2)", "momento (>=1.5.0,<2.0.0)", "neo4j (>=5.8.1,<6.0.0)", "networkx (>=2.6.3,<3.0.0)", "nlpcloud (>=1,<2)", "nltk (>=3,<4)", "nomic (>=1.0.43,<2.0.0)", "openai (>=0,<1)", "openlm (>=0.0.5,<0.0.6)", "opensearch-py (>=2.0.0,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "pexpect (>=4.8.0,<5.0.0)", "pgvector (>=0.1.6,<0.2.0)", "pinecone-client (>=2,<3)", "pinecone-text (>=0.4.2,<0.5.0)", "psycopg2-binary (>=2.9.5,<3.0.0)", "pyowm (>=3.3.0,<4.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pytesseract (>=0.3.10,<0.4.0)", "pyvespa (>=0.33.0,<0.34.0)", "qdrant-client (>=1.1.2,<2.0.0)", "redis (>=4,<5)", "requests-toolbelt (>=1.0.0,<2.0.0)", "sentence-transformers (>=2,<3)", "spacy (>=3,<4)", "steamship (>=2.16.9,<3.0.0)", "tensorflow-text (>=2.11.0,<3.0.0)", "tiktoken (>=0.3.2,<0.4.0)", "torch (>=1,<3)", "transformers (>=4,<5)", "weaviate-client (>=3,<4)", "wikipedia (>=1,<2)", "wolframalpha (==5.0.0)"] +azure = ["azure-ai-formrecognizer (>=3.2.1,<4.0.0)", "azure-ai-vision (>=0.11.1b1,<0.12.0)", "azure-cognitiveservices-speech (>=1.28.0,<2.0.0)", "azure-core (>=1.26.4,<2.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "openai (>=0,<1)"] cohere = ["cohere (>=3,<4)"] +docarray = ["docarray[hnswlib] (>=0.32.0,<0.33.0)"] embeddings = ["sentence-transformers (>=2,<3)"] -extended-testing = ["atlassian-python-api (>=3.36.0,<4.0.0)", "beautifulsoup4 (>=4,<5)", "chardet (>=5.1.0,<6.0.0)", "gql (>=3.4.1,<4.0.0)", "html2text (>=2020.1.16,<2021.0.0)", "jq (>=1.4.1,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "pandas (>=2.0.1,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "psychicapi (>=0.2,<0.3)", "pymupdf (>=1.22.3,<2.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pypdfium2 (>=4.10.0,<5.0.0)", "requests-toolbelt (>=1.0.0,<2.0.0)", "telethon (>=1.28.5,<2.0.0)", "tqdm (>=4.48.0)", "zep-python (>=0.25,<0.26)"] -hnswlib = ["docarray (>=0.31.0,<0.32.0)", "hnswlib (>=0.7.0,<0.8.0)", "protobuf (==3.19.6)"] -in-memory-store = ["docarray (>=0.31.0,<0.32.0)"] -llms = ["anthropic (>=0.2.6,<0.3.0)", "cohere (>=3,<4)", "huggingface_hub (>=0,<1)", "manifest-ml (>=0.0.1,<0.0.2)", "nlpcloud (>=1,<2)", "openai (>=0,<1)", "torch (>=1,<3)", "transformers (>=4,<5)"] +extended-testing = ["atlassian-python-api (>=3.36.0,<4.0.0)", "beautifulsoup4 (>=4,<5)", "bibtexparser (>=1.4.0,<2.0.0)", "chardet (>=5.1.0,<6.0.0)", "gql (>=3.4.1,<4.0.0)", "html2text (>=2020.1.16,<2021.0.0)", "jq (>=1.4.1,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "pandas (>=2.0.1,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "psychicapi (>=0.2,<0.3)", "pymupdf (>=1.22.3,<2.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pypdfium2 (>=4.10.0,<5.0.0)", "requests-toolbelt (>=1.0.0,<2.0.0)", "scikit-learn (>=1.2.2,<2.0.0)", "telethon (>=1.28.5,<2.0.0)", "tqdm (>=4.48.0)", "zep-python (>=0.30,<0.31)"] +llms = ["anthropic (>=0.2.6,<0.3.0)", "cohere (>=3,<4)", "huggingface_hub (>=0,<1)", "manifest-ml (>=0.0.1,<0.0.2)", "nlpcloud (>=1,<2)", "openai (>=0,<1)", "openlm (>=0.0.5,<0.0.6)", "torch (>=1,<3)", "transformers (>=4,<5)"] openai = ["openai (>=0,<1)", "tiktoken (>=0.3.2,<0.4.0)"] qdrant = ["qdrant-client (>=1.1.2,<2.0.0)"] text-helpers = ["chardet (>=5.1.0,<6.0.0)"] @@ -2377,13 +2376,13 @@ test = ["coverage", "pytest", "pytest-cov"] [[package]] name = "llama-cpp-python" -version = "0.1.50" +version = "0.1.55" description = "A Python wrapper for llama.cpp" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "llama_cpp_python-0.1.50.tar.gz", hash = "sha256:e305ae1b9f135f94afd8dd227701e6a1cd36db9c28f736b830ec364127c00bb9"}, + {file = "llama_cpp_python-0.1.55.tar.gz", hash = "sha256:1bc749f314a979c601b2dae22eb1f2d63fe791bc1237cce24d36b4f856be8ca2"}, ] [package.dependencies] @@ -5004,14 +5003,14 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] [[package]] name = "starlette" -version = "0.25.0" +version = "0.27.0" description = "The little ASGI library that shines." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "starlette-0.25.0-py3-none-any.whl", hash = "sha256:774f1df1983fd594b9b6fb3ded39c2aa1979d10ac45caac0f4255cbe2acb8628"}, - {file = "starlette-0.25.0.tar.gz", hash = "sha256:854c71e73736c429c2bdb07801f2c76c9cba497e7c3cf4988fde5e95fe4cdb3c"}, + {file = "starlette-0.27.0-py3-none-any.whl", hash = "sha256:918416370e846586541235ccd38a474c08b80443ed31c578a418e2209b3eef91"}, + {file = "starlette-0.27.0.tar.gz", hash = "sha256:6a6b0d042acb8d469a01eba54e9cda6cbd24ac602c4cd016723117d6a7e73b75"}, ] [package.dependencies] @@ -5954,14 +5953,14 @@ files = [ [[package]] name = "xlsxwriter" -version = "3.1.1" +version = "3.1.2" description = "A Python module for creating Excel XLSX files." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "XlsxWriter-3.1.1-py3-none-any.whl", hash = "sha256:b50e3bd905d7dafa6ea45210e2cc5600b4ccd104a0d3a4d4d7cf813b78426440"}, - {file = "XlsxWriter-3.1.1.tar.gz", hash = "sha256:03459ee76f664470c4c63a8977cab624fb259d0fc1faac64dc9cc6f3cc08f945"}, + {file = "XlsxWriter-3.1.2-py3-none-any.whl", hash = "sha256:331508ff39d610ecdaf979e458840bc1eab6e6a02cfd5d08f044f0f73636236f"}, + {file = "XlsxWriter-3.1.2.tar.gz", hash = "sha256:78751099a770273f1c98b8d6643351f68f98ae8e6acf9d09d37dc6798f8cd3de"}, ] [[package]] @@ -6133,4 +6132,4 @@ deploy = ["langchain-serve"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.12" -content-hash = "abbb024a67e3326821999f9a0a6164b13e877b0b72d1cd6912ca694c83fffa22" +content-hash = "e27db1a183064e9181241ce688ee70a4fee4b5df7d3ebf4b6c13eae8fffe4dcc" diff --git a/pyproject.toml b/pyproject.toml index 1cb6f3581..b2863de69 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,22 +22,22 @@ langflow = "langflow.__main__:main" [tool.poetry.dependencies] python = ">=3.9,<3.12" -fastapi = "^0.92.0" +fastapi = "^0.95.0" uvicorn = "^0.20.0" beautifulsoup4 = "^4.11.2" google-search-results = "^2.4.1" google-api-python-client = "^2.79.0" typer = "^0.7.0" gunicorn = "^20.1.0" -langchain = "^0.0.176" -openai = "^0.27.2" +langchain = "^0.0.183" +openai = "^0.27.7" types-pyyaml = "^6.0.12.8" dill = "^0.3.6" pandas = "^1.5.3" chromadb = "^0.3.21" huggingface-hub = "^0.13.3" rich = "^13.3.3" -llama-cpp-python = "0.1.50" +llama-cpp-python = "^0.1.50" networkx = "^3.1" unstructured = "^0.5.11" pypdf = "^3.7.1" @@ -56,6 +56,7 @@ weaviate-client = "^3.19.2" jina = "3.15.2" sentence-transformers = "^2.2.2" + [tool.poetry.group.dev.dependencies] black = "^23.1.0" ipykernel = "^6.21.2" From edfc103999e1051f5446e29d6afbe532d6ea4bea Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Sun, 28 May 2023 17:53:49 -0300 Subject: [PATCH 14/72] =?UTF-8?q?=F0=9F=9A=80=20feat(config.yaml):=20add?= =?UTF-8?q?=20CohereEmbeddings=20to=20the=20list=20of=20supported=20embedd?= =?UTF-8?q?ings=20The=20CohereEmbeddings=20is=20added=20to=20the=20list=20?= =?UTF-8?q?of=20supported=20embeddings=20in=20the=20config.yaml=20file.=20?= =?UTF-8?q?This=20allows=20the=20application=20to=20use=20the=20CohereEmbe?= =?UTF-8?q?ddings=20for=20language=20processing=20tasks.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- poetry.lock | 2 +- src/backend/langflow/config.yaml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/poetry.lock b/poetry.lock index 9cf4c8e16..ab566e063 100644 --- a/poetry.lock +++ b/poetry.lock @@ -6149,4 +6149,4 @@ deploy = ["langchain-serve"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.12" -content-hash = "e27db1a183064e9181241ce688ee70a4fee4b5df7d3ebf4b6c13eae8fffe4dcc" +content-hash = "ae4852378416319ee45512e200759438615dc8a4e840369176234dd04ec2a3ec" diff --git a/src/backend/langflow/config.yaml b/src/backend/langflow/config.yaml index b6c506d52..92a922526 100644 --- a/src/backend/langflow/config.yaml +++ b/src/backend/langflow/config.yaml @@ -45,6 +45,7 @@ documentloaders: embeddings: - OpenAIEmbeddings - HuggingFaceEmbeddings + - CohereEmbeddings llms: - OpenAI From ece95309731a415b80e52e101be065241b730763 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Sun, 28 May 2023 17:57:33 -0300 Subject: [PATCH 15/72] =?UTF-8?q?=F0=9F=8E=A8=20style(inputComponent):=20c?= =?UTF-8?q?hange=20input=20placeholder=20text=20to=20be=20more=20descripti?= =?UTF-8?q?ve=20=F0=9F=8E=A8=20style(inputListComponent):=20change=20input?= =?UTF-8?q?=20placeholder=20text=20to=20be=20more=20descriptive=20The=20pl?= =?UTF-8?q?aceholder=20text=20for=20both=20input=20components=20has=20been?= =?UTF-8?q?=20changed=20to=20"Type=20something..."=20to=20be=20more=20desc?= =?UTF-8?q?riptive=20and=20provide=20better=20guidance=20to=20the=20user.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/components/inputComponent/index.tsx | 2 +- src/frontend/src/components/inputListComponent/index.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/frontend/src/components/inputComponent/index.tsx b/src/frontend/src/components/inputComponent/index.tsx index 8f8f4c587..c7047d494 100644 --- a/src/frontend/src/components/inputComponent/index.tsx +++ b/src/frontend/src/components/inputComponent/index.tsx @@ -32,7 +32,7 @@ export default function InputComponent({ disabled ? " bg-gray-200 dark:bg-gray-700" : "", password && !pwdVisible && myValue !== "" ? "password" : "" )} - placeholder="Type a text" + placeholder="Type something..." onChange={(e) => { setMyValue(e.target.value); onChange(e.target.value); diff --git a/src/frontend/src/components/inputListComponent/index.tsx b/src/frontend/src/components/inputListComponent/index.tsx index ea47af8f9..49b0a1a5a 100644 --- a/src/frontend/src/components/inputListComponent/index.tsx +++ b/src/frontend/src/components/inputListComponent/index.tsx @@ -33,7 +33,7 @@ export default function InputListComponent({ "block w-full form-input rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 sm:text-sm" + (disabled ? " bg-gray-200" : "") } - placeholder="Type a text" + placeholder="Type something..." onChange={(e) => { setInputList((old) => { let newInputList = _.cloneDeep(old); From 4c71b1d17ff6d1ca012e909ede69f13611fe6b6d Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Sun, 28 May 2023 20:34:01 -0300 Subject: [PATCH 16/72] =?UTF-8?q?=F0=9F=94=87=20chore(tabsContext.tsx):=20?= =?UTF-8?q?comment=20out=20code=20that=20was=20causing=20issues=20with=20f?= =?UTF-8?q?ile=20upload=20The=20code=20that=20was=20causing=20issues=20wit?= =?UTF-8?q?h=20file=20upload=20has=20been=20commented=20out=20for=20now.?= =?UTF-8?q?=20The=20code=20was=20resetting=20the=20content=20of=20a=20file?= =?UTF-8?q?,=20which=20was=20causing=20issues=20with=20the=20file=20upload?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/contexts/tabsContext.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx index 6db425599..0c69a6931 100644 --- a/src/frontend/src/contexts/tabsContext.tsx +++ b/src/frontend/src/contexts/tabsContext.tsx @@ -63,7 +63,8 @@ export function TabsProvider({ children }: { children: ReactNode }) { console.log(node.data.node.template[key].type); if (node.data.node.template[key].type === "file") { console.log(node.data.node.template[key]); - node.data.node.template[key].content = ""; + // ! Commenting this out for now, as it is causing issues with the file upload + // node.data.node.template[key].content = ""; } }); }); From 46813e5c3f7be3d39e0fe07fbad96034e653a2c3 Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Sun, 28 May 2023 20:37:07 -0300 Subject: [PATCH 17/72] Fixing modal trattative error when is Prompt/Text --- .../src/components/promptComponent/index.tsx | 3 + .../components/textAreaComponent/index.tsx | 3 + .../src/modals/genericModal/index.tsx | 68 +++++++++++-------- src/frontend/src/utils.ts | 5 ++ 4 files changed, 52 insertions(+), 27 deletions(-) diff --git a/src/frontend/src/components/promptComponent/index.tsx b/src/frontend/src/components/promptComponent/index.tsx index 10ac41281..f31c37f51 100644 --- a/src/frontend/src/components/promptComponent/index.tsx +++ b/src/frontend/src/components/promptComponent/index.tsx @@ -5,6 +5,7 @@ import CodeAreaModal from "../../modals/codeAreaModal"; import TextAreaModal from "../../modals/textAreaModal"; import { TextAreaComponentType } from "../../types/components"; import GenericModal from "../../modals/genericModal"; +import { TypeModal } from "../../utils"; export default function PromptAreaComponent({ value, @@ -30,6 +31,7 @@ export default function PromptAreaComponent({ onClick={() => { openPopUp( { openPopUp( { openPopUp( { openPopUp( void; value: string; buttonText: string; modalTitle: string; + type: number; }) { - const [myButtonText, setmyButtonText] = useState(buttonText); - const [myModalTitle, setMyModalTitle] = useState(modalTitle); + const [myButtonText] = useState(buttonText); + const [myModalTitle] = useState(modalTitle); + const [myModalType] = useState(type); const [open, setOpen] = useState(true); const [myValue, setMyValue] = useState(value); const { dark } = useContext(darkContext); @@ -114,36 +118,46 @@ export default function PromptAreaModal({ type="button" className="inline-flex w-full justify-center rounded-md border border-transparent bg-indigo-600 px-4 py-2 text-base font-medium text-white shadow-sm hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 sm:ml-3 sm:w-auto sm:text-sm" onClick={() => { - checkPrompt(myValue) - .then((apiReturn) => { - if (apiReturn.data) { - let inputVariables = - apiReturn.data.input_variables; - if (inputVariables.length === 0) { - setErrorData({ - title: - "The template you are attempting to use does not contain any variables for data entry.", - }); + switch (myModalType) { + case 1: + setModalOpen(false); + break; + case 2: + checkPrompt(myValue) + .then((apiReturn) => { + if (apiReturn.data) { + let inputVariables = + apiReturn.data.input_variables; + if (inputVariables.length === 0) { + setErrorData({ + title: + "The template you are attempting to use does not contain any variables for data entry.", + }); + } else { + setSuccessData({ + title: "Prompt is ready", + }); + setModalOpen(false); + setValue(myValue); + } } else { - setSuccessData({ - title: "Prompt is ready", + setErrorData({ + title: "Something went wrong, please try again", }); - setModalOpen(false); - setValue(myValue); } - } else { - setErrorData({ - title: "Something went wrong, please try again", + }) + .catch((error) => { + return setErrorData({ + title: + "There is something wrong with this prompt, please review it", + list: [error.response.data.detail], }); - } - }) - .catch((error) => { - return setErrorData({ - title: - "There is something wrong with this prompt, please review it", - list: [error.response.data.detail], }); - }); + break; + + default: + break; + } }} > {myButtonText} diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index d464290e1..c88fded26 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -25,6 +25,11 @@ export function classNames(...classes: Array) { return classes.filter(Boolean).join(" "); } +export enum TypeModal { + TEXT = 1, + PROMPT = 2 +} + export const textColors = { white: "text-white", red: "text-red-700", From 9bac61b563bf33fb9c477ad8d718b6fbd033a8ca Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Mon, 29 May 2023 07:30:58 -0300 Subject: [PATCH 18/72] =?UTF-8?q?=F0=9F=9A=80=20feat(config.yaml):=20add?= =?UTF-8?q?=20new=20text=20splitters=20and=20toolkits=20Added=20new=20text?= =?UTF-8?q?=20splitters=20to=20the=20configuration=20file:=20RecursiveChar?= =?UTF-8?q?acterTextSplitter,=20LatexTextSplitter,=20and=20PythonCodeTextS?= =?UTF-8?q?plitter.=20These=20text=20splitters=20will=20be=20used=20to=20s?= =?UTF-8?q?plit=20text=20into=20smaller=20chunks=20for=20processing.=20Als?= =?UTF-8?q?o,=20added=20new=20toolkits=20to=20the=20configuration=20file:?= =?UTF-8?q?=20OpenAPIToolkit=20and=20JsonToolkit.=20These=20toolkits=20wil?= =?UTF-8?q?l=20be=20used=20to=20process=20the=20text=20chunks=20generated?= =?UTF-8?q?=20by=20the=20text=20splitters.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/config.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/backend/langflow/config.yaml b/src/backend/langflow/config.yaml index 6dadc7a88..23cf2b6f2 100644 --- a/src/backend/langflow/config.yaml +++ b/src/backend/langflow/config.yaml @@ -63,6 +63,9 @@ prompts: - ZeroShotPrompt textsplitters: - CharacterTextSplitter + - RecursiveCharacterTextSplitter + - LatexTextSplitter + - PythonCodeTextSplitter toolkits: - OpenAPIToolkit - JsonToolkit From acec6904575cfd5c5d165ac37ef2ce2f2da96102 Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Mon, 29 May 2023 08:45:42 -0300 Subject: [PATCH 19/72] Title case on names/title, fixing/changing icons, cursor on chat --- .../src/CustomNodes/GenericNode/index.tsx | 22 ++++++---- .../chatComponent/chatTrigger/index.tsx | 12 +++--- src/frontend/src/modals/NodeModal/index.tsx | 6 +-- .../extraSidebarComponent/index.tsx | 43 ++++++++++--------- src/frontend/src/utils.ts | 32 ++++++++++++++ src/frontend/tailwind.config.js | 1 + 6 files changed, 78 insertions(+), 38 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index 96890d76e..64665bf73 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -1,13 +1,17 @@ import { BugAntIcon, - CheckCircleIcon, Cog6ToothIcon, - EllipsisHorizontalCircleIcon, - ExclamationCircleIcon, InformationCircleIcon, TrashIcon, } from "@heroicons/react/24/outline"; -import { classNames, nodeColors, nodeIcons, toNormalCase } from "../../utils"; + +import { + CheckCircleIcon, + EllipsisHorizontalCircleIcon, + ExclamationCircleIcon, +} from "@heroicons/react/24/solid"; + +import { classNames, nodeColors, nodeIcons, toNormalCase, toTitleCase } from "../../utils"; import ParameterComponent from "./components/parameterComponent"; import { typesContext } from "../../contexts/typesContext"; import { useContext, useState, useEffect, useRef, Fragment } from "react"; @@ -101,7 +105,9 @@ export default function GenericNode({ color: nodeColors[types[data.type]] ?? nodeColors.unknown, }} /> -
{data.type}
+ +
{data.type}
+
@@ -225,8 +231,8 @@ export default function GenericNode({ data.node.template[t].display_name ? data.node.template[t].display_name : data.node.template[t].name - ? toNormalCase(data.node.template[t].name) - : toNormalCase(t) + ? toTitleCase(data.node.template[t].name) + : toTitleCase(t) } name={t} tooltipTitle={ diff --git a/src/frontend/src/components/chatComponent/chatTrigger/index.tsx b/src/frontend/src/components/chatComponent/chatTrigger/index.tsx index 23b76b6e1..daa49f34f 100644 --- a/src/frontend/src/components/chatComponent/chatTrigger/index.tsx +++ b/src/frontend/src/components/chatComponent/chatTrigger/index.tsx @@ -23,14 +23,12 @@ export default function ChatTrigger({ open, setOpen }) { >
{ + setOpen(true); + }} > - @@ -191,7 +197,7 @@ export default function GenericNode({ deleteNode(data.id); }} > - +
diff --git a/src/frontend/src/components/ReactTooltipComponent/index.tsx b/src/frontend/src/components/ReactTooltipComponent/index.tsx new file mode 100644 index 000000000..87a7508d2 --- /dev/null +++ b/src/frontend/src/components/ReactTooltipComponent/index.tsx @@ -0,0 +1,54 @@ +"use client"; +import type { FC } from "react"; +import React from "react"; +import { Tooltip as ReactTooltip } from "react-tooltip"; +import "react-tooltip/dist/react-tooltip.css"; +import { classNames } from "../../utils"; + +type TooltipProps = { + selector: string; + content?: string; + disabled?: boolean; + htmlContent?: React.ReactNode; + className?: string; // This should use !impornant to override the default styles eg: '!bg-white' + position?: "top" | "right" | "bottom" | "left"; + clickable?: boolean; + children: React.ReactNode; + delayShow?: number; +}; + +const TooltipReact: FC = ({ + selector, + content, + disabled, + position = "top", + children, + htmlContent, + className, + clickable, + delayShow, +}) => { + return ( +
+ {React.cloneElement(children as React.ReactElement, { + "data-tooltip-id": selector, + })} + + {htmlContent && htmlContent} + +
+ ); +}; + +export default TooltipReact; diff --git a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx index 1a9e721f7..e698e481a 100644 --- a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx @@ -4,7 +4,7 @@ import { nodeColors, nodeIcons, nodeNames } from "../../../../utils"; import { useContext, useEffect, useState } from "react"; import { typesContext } from "../../../../contexts/typesContext"; import { APIClassType, APIObjectType } from "../../../../types/api"; -import Tooltip from "../../../../components/TooltipComponent"; +import TooltipReact from "../../../../components/ReactTooltipComponent"; export default function ExtraSidebar() { const { data } = useContext(typesContext); @@ -34,8 +34,14 @@ export default function ExtraSidebar() { {Object.keys(data[d]) .sort() .map((t: string, k) => ( - 21 ? t : ""} placement="right"> -
+ +
- +
))} {Object.keys(data[d]).length === 0 && (
Coming soon
From 46ffbb5d9de6b006d76c511e31402e70be4f0355 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Mon, 29 May 2023 22:54:22 -0300 Subject: [PATCH 41/72] added custom icons for companies, first version --- src/frontend/src/icons/Airbyte/airbyte.svg | 22 + src/frontend/src/icons/Airbyte/index.tsx | 8 + src/frontend/src/icons/AzLogo/az_logo.svg | 49 ++ src/frontend/src/icons/AzLogo/index.tsx | 8 + src/frontend/src/icons/Bing/bing.svg | 1 + src/frontend/src/icons/Bing/index.tsx | 8 + src/frontend/src/icons/ChromaIcon/index.tsx | 4 +- src/frontend/src/icons/Cohere/cohere.svg | 16 + src/frontend/src/icons/Cohere/index.tsx | 8 + .../src/icons/Evernote/evernote-icon.svg | 1 + src/frontend/src/icons/Evernote/index.tsx | 8 + .../Facebook_Messenger_logo_2020.svg | 2 + .../src/icons/FacebookMessenger/index.tsx | 8 + .../src/icons/GitBook/gitbook-svgrepo-com.svg | 2 + src/frontend/src/icons/GitBook/index.tsx | 8 + src/frontend/src/icons/Google/google.svg | 1 + src/frontend/src/icons/Google/index.tsx | 8 + .../src/icons/HuggingFace/hf-logo.svg | 8 + src/frontend/src/icons/HuggingFace/index.tsx | 8 + .../src/icons/IFixIt/ifixit-seeklogo.com.svg | 1 + src/frontend/src/icons/IFixIt/index.tsx | 8 + src/frontend/src/icons/Meta/index.tsx | 8 + src/frontend/src/icons/Meta/meta-icon.svg | 1 + .../src/icons/Midjorney/Midjourney_Emblem.svg | 53 +++ src/frontend/src/icons/Midjorney/index.tsx | 8 + src/frontend/src/icons/Notion/Notion-logo.svg | 4 + src/frontend/src/icons/Notion/index.tsx | 8 + src/frontend/src/icons/OpenAi/index.tsx | 8 + src/frontend/src/icons/OpenAi/openAI.svg | 1 + .../src/icons/PowerPoint/PowerPoint.svg | 52 +++ src/frontend/src/icons/PowerPoint/index.tsx | 8 + src/frontend/src/icons/QDrant/QDrant.svg | 20 + src/frontend/src/icons/QDrant/index.tsx | 8 + src/frontend/src/icons/ReadTheDocs/index.tsx | 8 + .../icons/ReadTheDocs/readthedocsio-icon.svg | 1 + src/frontend/src/icons/Searx/Searx_logo.svg | 198 ++++++++ src/frontend/src/icons/Searx/index.tsx | 8 + src/frontend/src/icons/Slack/index.tsx | 8 + src/frontend/src/icons/Slack/slack-icon.svg | 6 + src/frontend/src/icons/Weaviate/index.tsx | 8 + src/frontend/src/icons/Weaviate/weaviate.svg | 142 ++++++ .../src/icons/Wikipedia/Wikipedia.svg | 424 ++++++++++++++++++ src/frontend/src/icons/Wikipedia/index.tsx | 8 + src/frontend/src/icons/Wolfram/index.tsx | 8 + src/frontend/src/icons/Wolfram/wolfram.svg | 250 +++++++++++ src/frontend/src/icons/Word/index.tsx | 8 + src/frontend/src/icons/Word/word.svg | 50 +++ .../icons/hackerNews/Y_Combinator_logo.svg | 7 + src/frontend/src/icons/hackerNews/index.tsx | 8 + src/frontend/src/icons/index.tsx | 1 - src/frontend/src/utils.ts | 50 ++- 51 files changed, 1554 insertions(+), 5 deletions(-) create mode 100644 src/frontend/src/icons/Airbyte/airbyte.svg create mode 100644 src/frontend/src/icons/Airbyte/index.tsx create mode 100644 src/frontend/src/icons/AzLogo/az_logo.svg create mode 100644 src/frontend/src/icons/AzLogo/index.tsx create mode 100644 src/frontend/src/icons/Bing/bing.svg create mode 100644 src/frontend/src/icons/Bing/index.tsx create mode 100644 src/frontend/src/icons/Cohere/cohere.svg create mode 100644 src/frontend/src/icons/Cohere/index.tsx create mode 100644 src/frontend/src/icons/Evernote/evernote-icon.svg create mode 100644 src/frontend/src/icons/Evernote/index.tsx create mode 100644 src/frontend/src/icons/FacebookMessenger/Facebook_Messenger_logo_2020.svg create mode 100644 src/frontend/src/icons/FacebookMessenger/index.tsx create mode 100644 src/frontend/src/icons/GitBook/gitbook-svgrepo-com.svg create mode 100644 src/frontend/src/icons/GitBook/index.tsx create mode 100644 src/frontend/src/icons/Google/google.svg create mode 100644 src/frontend/src/icons/Google/index.tsx create mode 100644 src/frontend/src/icons/HuggingFace/hf-logo.svg create mode 100644 src/frontend/src/icons/HuggingFace/index.tsx create mode 100644 src/frontend/src/icons/IFixIt/ifixit-seeklogo.com.svg create mode 100644 src/frontend/src/icons/IFixIt/index.tsx create mode 100644 src/frontend/src/icons/Meta/index.tsx create mode 100644 src/frontend/src/icons/Meta/meta-icon.svg create mode 100644 src/frontend/src/icons/Midjorney/Midjourney_Emblem.svg create mode 100644 src/frontend/src/icons/Midjorney/index.tsx create mode 100644 src/frontend/src/icons/Notion/Notion-logo.svg create mode 100644 src/frontend/src/icons/Notion/index.tsx create mode 100644 src/frontend/src/icons/OpenAi/index.tsx create mode 100644 src/frontend/src/icons/OpenAi/openAI.svg create mode 100644 src/frontend/src/icons/PowerPoint/PowerPoint.svg create mode 100644 src/frontend/src/icons/PowerPoint/index.tsx create mode 100644 src/frontend/src/icons/QDrant/QDrant.svg create mode 100644 src/frontend/src/icons/QDrant/index.tsx create mode 100644 src/frontend/src/icons/ReadTheDocs/index.tsx create mode 100644 src/frontend/src/icons/ReadTheDocs/readthedocsio-icon.svg create mode 100644 src/frontend/src/icons/Searx/Searx_logo.svg create mode 100644 src/frontend/src/icons/Searx/index.tsx create mode 100644 src/frontend/src/icons/Slack/index.tsx create mode 100644 src/frontend/src/icons/Slack/slack-icon.svg create mode 100644 src/frontend/src/icons/Weaviate/index.tsx create mode 100644 src/frontend/src/icons/Weaviate/weaviate.svg create mode 100644 src/frontend/src/icons/Wikipedia/Wikipedia.svg create mode 100644 src/frontend/src/icons/Wikipedia/index.tsx create mode 100644 src/frontend/src/icons/Wolfram/index.tsx create mode 100644 src/frontend/src/icons/Wolfram/wolfram.svg create mode 100644 src/frontend/src/icons/Word/index.tsx create mode 100644 src/frontend/src/icons/Word/word.svg create mode 100644 src/frontend/src/icons/hackerNews/Y_Combinator_logo.svg create mode 100644 src/frontend/src/icons/hackerNews/index.tsx delete mode 100644 src/frontend/src/icons/index.tsx diff --git a/src/frontend/src/icons/Airbyte/airbyte.svg b/src/frontend/src/icons/Airbyte/airbyte.svg new file mode 100644 index 000000000..eefa1bceb --- /dev/null +++ b/src/frontend/src/icons/Airbyte/airbyte.svg @@ -0,0 +1,22 @@ + + + + + + diff --git a/src/frontend/src/icons/Airbyte/index.tsx b/src/frontend/src/icons/Airbyte/index.tsx new file mode 100644 index 000000000..c116b5ad2 --- /dev/null +++ b/src/frontend/src/icons/Airbyte/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as AirbyteSVG } from "./airbyte.svg"; + +export const AirbyteIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/AzLogo/az_logo.svg b/src/frontend/src/icons/AzLogo/az_logo.svg new file mode 100644 index 000000000..4f2e75777 --- /dev/null +++ b/src/frontend/src/icons/AzLogo/az_logo.svg @@ -0,0 +1,49 @@ + + diff --git a/src/frontend/src/icons/AzLogo/index.tsx b/src/frontend/src/icons/AzLogo/index.tsx new file mode 100644 index 000000000..96a8a058a --- /dev/null +++ b/src/frontend/src/icons/AzLogo/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as AzSVG } from "./az_logo.svg"; + +export const AzIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/Bing/bing.svg b/src/frontend/src/icons/Bing/bing.svg new file mode 100644 index 000000000..0d93e379c --- /dev/null +++ b/src/frontend/src/icons/Bing/bing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/frontend/src/icons/Bing/index.tsx b/src/frontend/src/icons/Bing/index.tsx new file mode 100644 index 000000000..abaf31be4 --- /dev/null +++ b/src/frontend/src/icons/Bing/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as BingSVG } from "./bing.svg"; + +export const BingIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/ChromaIcon/index.tsx b/src/frontend/src/icons/ChromaIcon/index.tsx index 2e4790edc..913d651f4 100644 --- a/src/frontend/src/icons/ChromaIcon/index.tsx +++ b/src/frontend/src/icons/ChromaIcon/index.tsx @@ -1,10 +1,8 @@ import React, { forwardRef } from "react"; import { ReactComponent as ChromaSVG } from "./chroma.svg"; -const ChromaIcon = forwardRef>( +export const ChromaIcon = forwardRef>( (props, ref) => { return ; } ); - -export default ChromaIcon; diff --git a/src/frontend/src/icons/Cohere/cohere.svg b/src/frontend/src/icons/Cohere/cohere.svg new file mode 100644 index 000000000..54ead3cf1 --- /dev/null +++ b/src/frontend/src/icons/Cohere/cohere.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/frontend/src/icons/Cohere/index.tsx b/src/frontend/src/icons/Cohere/index.tsx new file mode 100644 index 000000000..0a071b510 --- /dev/null +++ b/src/frontend/src/icons/Cohere/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as CohereSVG } from "./cohere.svg"; + +export const CohereIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/Evernote/evernote-icon.svg b/src/frontend/src/icons/Evernote/evernote-icon.svg new file mode 100644 index 000000000..2a3495980 --- /dev/null +++ b/src/frontend/src/icons/Evernote/evernote-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/frontend/src/icons/Evernote/index.tsx b/src/frontend/src/icons/Evernote/index.tsx new file mode 100644 index 000000000..23e9bc43f --- /dev/null +++ b/src/frontend/src/icons/Evernote/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as EvernoteSVG } from "./evernote-icon.svg"; + +export const EvernoteIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/FacebookMessenger/Facebook_Messenger_logo_2020.svg b/src/frontend/src/icons/FacebookMessenger/Facebook_Messenger_logo_2020.svg new file mode 100644 index 000000000..bd980c3af --- /dev/null +++ b/src/frontend/src/icons/FacebookMessenger/Facebook_Messenger_logo_2020.svg @@ -0,0 +1,2 @@ + + diff --git a/src/frontend/src/icons/FacebookMessenger/index.tsx b/src/frontend/src/icons/FacebookMessenger/index.tsx new file mode 100644 index 000000000..4450570aa --- /dev/null +++ b/src/frontend/src/icons/FacebookMessenger/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as FacebookMessengerSVG } from "./Facebook_Messenger_logo_2020.svg"; + +export const FBIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/GitBook/gitbook-svgrepo-com.svg b/src/frontend/src/icons/GitBook/gitbook-svgrepo-com.svg new file mode 100644 index 000000000..75eaa6da1 --- /dev/null +++ b/src/frontend/src/icons/GitBook/gitbook-svgrepo-com.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/src/frontend/src/icons/GitBook/index.tsx b/src/frontend/src/icons/GitBook/index.tsx new file mode 100644 index 000000000..e25f52d58 --- /dev/null +++ b/src/frontend/src/icons/GitBook/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as GitBookSVG } from "./gitbook-svgrepo-com.svg"; + +export const GitBookIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/Google/google.svg b/src/frontend/src/icons/Google/google.svg new file mode 100644 index 000000000..b518c5270 --- /dev/null +++ b/src/frontend/src/icons/Google/google.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/frontend/src/icons/Google/index.tsx b/src/frontend/src/icons/Google/index.tsx new file mode 100644 index 000000000..527469ca0 --- /dev/null +++ b/src/frontend/src/icons/Google/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as GoogleSVG } from "./google.svg"; + +export const GoogleIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/HuggingFace/hf-logo.svg b/src/frontend/src/icons/HuggingFace/hf-logo.svg new file mode 100644 index 000000000..ab959d165 --- /dev/null +++ b/src/frontend/src/icons/HuggingFace/hf-logo.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/frontend/src/icons/HuggingFace/index.tsx b/src/frontend/src/icons/HuggingFace/index.tsx new file mode 100644 index 000000000..eab851696 --- /dev/null +++ b/src/frontend/src/icons/HuggingFace/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as HugginFaceSVG } from "./hf-logo.svg"; + +export const HugginFaceIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/IFixIt/ifixit-seeklogo.com.svg b/src/frontend/src/icons/IFixIt/ifixit-seeklogo.com.svg new file mode 100644 index 000000000..cbb67cf79 --- /dev/null +++ b/src/frontend/src/icons/IFixIt/ifixit-seeklogo.com.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/frontend/src/icons/IFixIt/index.tsx b/src/frontend/src/icons/IFixIt/index.tsx new file mode 100644 index 000000000..9124266e4 --- /dev/null +++ b/src/frontend/src/icons/IFixIt/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as IFixItSVG } from "./ifixit-seeklogo.com.svg"; + +export const IFixIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/Meta/index.tsx b/src/frontend/src/icons/Meta/index.tsx new file mode 100644 index 000000000..0aabeea74 --- /dev/null +++ b/src/frontend/src/icons/Meta/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as MetaSVG } from "./meta-icon.svg"; + +export const MetaIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/Meta/meta-icon.svg b/src/frontend/src/icons/Meta/meta-icon.svg new file mode 100644 index 000000000..f5e8b583c --- /dev/null +++ b/src/frontend/src/icons/Meta/meta-icon.svg @@ -0,0 +1 @@ +facebook-meta \ No newline at end of file diff --git a/src/frontend/src/icons/Midjorney/Midjourney_Emblem.svg b/src/frontend/src/icons/Midjorney/Midjourney_Emblem.svg new file mode 100644 index 000000000..9c90d37e2 --- /dev/null +++ b/src/frontend/src/icons/Midjorney/Midjourney_Emblem.svg @@ -0,0 +1,53 @@ + + + + + + + + diff --git a/src/frontend/src/icons/Midjorney/index.tsx b/src/frontend/src/icons/Midjorney/index.tsx new file mode 100644 index 000000000..450666cfe --- /dev/null +++ b/src/frontend/src/icons/Midjorney/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as MidjorneySVG } from "./Midjourney_Emblem.svg"; + +export const MidjorneyIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/Notion/Notion-logo.svg b/src/frontend/src/icons/Notion/Notion-logo.svg new file mode 100644 index 000000000..bf6442f76 --- /dev/null +++ b/src/frontend/src/icons/Notion/Notion-logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/frontend/src/icons/Notion/index.tsx b/src/frontend/src/icons/Notion/index.tsx new file mode 100644 index 000000000..9666ce80b --- /dev/null +++ b/src/frontend/src/icons/Notion/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as NotionSVG } from "./Notion-logo.svg"; + +export const NotionIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/OpenAi/index.tsx b/src/frontend/src/icons/OpenAi/index.tsx new file mode 100644 index 000000000..ae50fbce3 --- /dev/null +++ b/src/frontend/src/icons/OpenAi/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as OpenAiSVG } from "./openAI.svg"; + +export const OpenAiIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/OpenAi/openAI.svg b/src/frontend/src/icons/OpenAi/openAI.svg new file mode 100644 index 000000000..e81233fe6 --- /dev/null +++ b/src/frontend/src/icons/OpenAi/openAI.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/frontend/src/icons/PowerPoint/PowerPoint.svg b/src/frontend/src/icons/PowerPoint/PowerPoint.svg new file mode 100644 index 000000000..1b9ee4383 --- /dev/null +++ b/src/frontend/src/icons/PowerPoint/PowerPoint.svg @@ -0,0 +1,52 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/frontend/src/icons/PowerPoint/index.tsx b/src/frontend/src/icons/PowerPoint/index.tsx new file mode 100644 index 000000000..fbb68d533 --- /dev/null +++ b/src/frontend/src/icons/PowerPoint/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as PowerPointSVG } from "./PowerPoint.svg"; + +export const PowerPointIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/QDrant/QDrant.svg b/src/frontend/src/icons/QDrant/QDrant.svg new file mode 100644 index 000000000..a53c6596c --- /dev/null +++ b/src/frontend/src/icons/QDrant/QDrant.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/frontend/src/icons/QDrant/index.tsx b/src/frontend/src/icons/QDrant/index.tsx new file mode 100644 index 000000000..7e8ec655d --- /dev/null +++ b/src/frontend/src/icons/QDrant/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as QDrantSVG } from "./QDrant.svg"; + +export const QDrantIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/ReadTheDocs/index.tsx b/src/frontend/src/icons/ReadTheDocs/index.tsx new file mode 100644 index 000000000..c87a624de --- /dev/null +++ b/src/frontend/src/icons/ReadTheDocs/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as ReadTheDocsSVG } from "./readthedocsio-icon.svg"; + +export const ReadTheDocsIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/ReadTheDocs/readthedocsio-icon.svg b/src/frontend/src/icons/ReadTheDocs/readthedocsio-icon.svg new file mode 100644 index 000000000..22f38b47a --- /dev/null +++ b/src/frontend/src/icons/ReadTheDocs/readthedocsio-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/frontend/src/icons/Searx/Searx_logo.svg b/src/frontend/src/icons/Searx/Searx_logo.svg new file mode 100644 index 000000000..45eecb16c --- /dev/null +++ b/src/frontend/src/icons/Searx/Searx_logo.svg @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/src/frontend/src/icons/Searx/index.tsx b/src/frontend/src/icons/Searx/index.tsx new file mode 100644 index 000000000..c1196c68a --- /dev/null +++ b/src/frontend/src/icons/Searx/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as SearxSVG } from "./Searx_logo.svg"; + +export const SearxIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/Slack/index.tsx b/src/frontend/src/icons/Slack/index.tsx new file mode 100644 index 000000000..ec5bdc108 --- /dev/null +++ b/src/frontend/src/icons/Slack/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as SlackSVG } from "./slack-icon.svg"; + +export const SlackIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/Slack/slack-icon.svg b/src/frontend/src/icons/Slack/slack-icon.svg new file mode 100644 index 000000000..c5f26c10e --- /dev/null +++ b/src/frontend/src/icons/Slack/slack-icon.svg @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/src/frontend/src/icons/Weaviate/index.tsx b/src/frontend/src/icons/Weaviate/index.tsx new file mode 100644 index 000000000..f454e4f15 --- /dev/null +++ b/src/frontend/src/icons/Weaviate/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as WeaviateSVG } from "./weaviate.svg"; + +export const WeaviateIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/Weaviate/weaviate.svg b/src/frontend/src/icons/Weaviate/weaviate.svg new file mode 100644 index 000000000..d5b3bda24 --- /dev/null +++ b/src/frontend/src/icons/Weaviate/weaviate.svg @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/frontend/src/icons/Wikipedia/Wikipedia.svg b/src/frontend/src/icons/Wikipedia/Wikipedia.svg new file mode 100644 index 000000000..aa0cec73f --- /dev/null +++ b/src/frontend/src/icons/Wikipedia/Wikipedia.svg @@ -0,0 +1,424 @@ + + + + + + + image/svg+xml + + + Wikipedia's W + + + STyx + + + none + + + Wikipedia + favicon + + + 2007-06-26 + + + GFDL + + + W de Wikipédia + + + Inkscape + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/frontend/src/icons/Wikipedia/index.tsx b/src/frontend/src/icons/Wikipedia/index.tsx new file mode 100644 index 000000000..06c1c5b4d --- /dev/null +++ b/src/frontend/src/icons/Wikipedia/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as WikipediaSVG } from "./Wikipedia.svg"; + +export const WikipediaIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/Wolfram/index.tsx b/src/frontend/src/icons/Wolfram/index.tsx new file mode 100644 index 000000000..c8b94ebf1 --- /dev/null +++ b/src/frontend/src/icons/Wolfram/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as WolframSVG } from "./wolfram.svg"; + +export const WolframIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/Wolfram/wolfram.svg b/src/frontend/src/icons/Wolfram/wolfram.svg new file mode 100644 index 000000000..105a2c12b --- /dev/null +++ b/src/frontend/src/icons/Wolfram/wolfram.svg @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/frontend/src/icons/Word/index.tsx b/src/frontend/src/icons/Word/index.tsx new file mode 100644 index 000000000..8c6cf9f31 --- /dev/null +++ b/src/frontend/src/icons/Word/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as WordSVG } from "./word.svg"; + +export const WordIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/Word/word.svg b/src/frontend/src/icons/Word/word.svg new file mode 100644 index 000000000..2060f5289 --- /dev/null +++ b/src/frontend/src/icons/Word/word.svg @@ -0,0 +1,50 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/frontend/src/icons/hackerNews/Y_Combinator_logo.svg b/src/frontend/src/icons/hackerNews/Y_Combinator_logo.svg new file mode 100644 index 000000000..b502950a2 --- /dev/null +++ b/src/frontend/src/icons/hackerNews/Y_Combinator_logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/frontend/src/icons/hackerNews/index.tsx b/src/frontend/src/icons/hackerNews/index.tsx new file mode 100644 index 000000000..d1c47e7db --- /dev/null +++ b/src/frontend/src/icons/hackerNews/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as HackerNewsSVG } from "./Y_Combinator_logo.svg"; + +export const HackerNewsIcon = forwardRef>( + (props, ref) => { + return ; + } +); diff --git a/src/frontend/src/icons/index.tsx b/src/frontend/src/icons/index.tsx deleted file mode 100644 index 2b01bf567..000000000 --- a/src/frontend/src/icons/index.tsx +++ /dev/null @@ -1 +0,0 @@ -export { default as ChromaIcon } from "./ChromaIcon"; diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index ef944aa47..585e93664 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -20,7 +20,31 @@ import { Connection, Edge, Node, ReactFlowInstance, addEdge } from "reactflow"; import { FlowType, NodeType } from "./types/flow"; import { APITemplateType, TemplateVariableType } from "./types/api"; import _ from "lodash"; -import { ChromaIcon } from "./icons"; +import { ChromaIcon} from "./icons/ChromaIcon"; +import { AirbyteIcon } from "./icons/Airbyte"; +import { AzIcon } from "./icons/AzLogo"; +import { BingIcon } from "./icons/Bing"; +import { CohereIcon } from "./icons/Cohere"; +import { EvernoteIcon } from "./icons/Evernote"; +import { FBIcon } from "./icons/FacebookMessenger"; +import { GitBookIcon } from "./icons/GitBook"; +import { GoogleIcon } from "./icons/Google"; +import { HackerNewsIcon } from "./icons/hackerNews"; +import { HugginFaceIcon } from "./icons/HuggingFace"; +import { IFixIcon } from "./icons/IFixIt"; +import { MetaIcon } from "./icons/Meta"; +import { MidjorneyIcon } from "./icons/Midjorney"; +import { NotionIcon } from "./icons/Notion"; +import { OpenAiIcon } from "./icons/OpenAi"; +import { PowerPointIcon } from "./icons/PowerPoint"; +import { QDrantIcon } from "./icons/QDrant"; +import { ReadTheDocsIcon } from "./icons/ReadTheDocs"; +import { SearxIcon } from "./icons/Searx"; +import { SlackIcon } from "./icons/Slack"; +import { WeaviateIcon } from "./icons/Weaviate"; +import { WikipediaIcon } from "./icons/Wikipedia"; +import { WolframIcon } from "./icons/Wolfram"; +import { WordIcon } from "./icons/Word"; import { v4 as uuidv4 } from "uuid"; export function classNames(...classes: Array) { @@ -125,6 +149,30 @@ export const nodeIcons: { >; } = { Chroma: ChromaIcon, + Airbyte: AirbyteIcon, + AzLogo: AzIcon, + Bing: BingIcon, + Cohere: CohereIcon, + Evernote: EvernoteIcon, + FacebookMessenger: FBIcon, + GitBook: GitBookIcon, + Google: GoogleIcon, + HackerNews: HackerNewsIcon, + HuggingFace: HugginFaceIcon, + IFixIt: IFixIcon, + Meta: MetaIcon, + Midjorney: MidjorneyIcon, + Notion: NotionIcon, + OpenAi: OpenAiIcon, + PowerPoint: PowerPointIcon, + QDrant: QDrantIcon, + ReadTheDocs: ReadTheDocsIcon, + Searx: SearxIcon, + Slack: SlackIcon, + Weaviate: WeaviateIcon, + Wikipedia: WikipediaIcon, + Wolfram: WolframIcon, + Word: WordIcon, agents: RocketLaunchIcon, chains: LinkIcon, memories: CpuChipIcon, From 8b5a4438805fa682357f9fec56b7c3cbfcf82628 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Mon, 29 May 2023 22:54:30 -0300 Subject: [PATCH 42/72] added custom icons for companies, first version --- src/frontend/src/icons/Airbyte/index.tsx | 11 ++++++----- src/frontend/src/icons/ChromaIcon/index.tsx | 11 ++++++----- src/frontend/src/icons/Cohere/index.tsx | 11 ++++++----- src/frontend/src/icons/Evernote/index.tsx | 11 ++++++----- src/frontend/src/icons/GitBook/index.tsx | 11 ++++++----- src/frontend/src/icons/Google/index.tsx | 11 ++++++----- src/frontend/src/icons/HuggingFace/index.tsx | 11 ++++++----- src/frontend/src/icons/Midjorney/index.tsx | 11 ++++++----- src/frontend/src/icons/Notion/index.tsx | 11 ++++++----- src/frontend/src/icons/OpenAi/index.tsx | 11 ++++++----- src/frontend/src/icons/PowerPoint/index.tsx | 11 ++++++----- src/frontend/src/icons/QDrant/index.tsx | 11 ++++++----- src/frontend/src/icons/ReadTheDocs/index.tsx | 11 ++++++----- src/frontend/src/icons/Weaviate/index.tsx | 11 ++++++----- src/frontend/src/icons/Wikipedia/index.tsx | 11 ++++++----- src/frontend/src/icons/Wolfram/index.tsx | 11 ++++++----- src/frontend/src/icons/hackerNews/index.tsx | 11 ++++++----- src/frontend/src/utils.ts | 2 +- 18 files changed, 103 insertions(+), 86 deletions(-) diff --git a/src/frontend/src/icons/Airbyte/index.tsx b/src/frontend/src/icons/Airbyte/index.tsx index c116b5ad2..6fb8daf24 100644 --- a/src/frontend/src/icons/Airbyte/index.tsx +++ b/src/frontend/src/icons/Airbyte/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as AirbyteSVG } from "./airbyte.svg"; -export const AirbyteIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const AirbyteIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/ChromaIcon/index.tsx b/src/frontend/src/icons/ChromaIcon/index.tsx index 913d651f4..afcb868a8 100644 --- a/src/frontend/src/icons/ChromaIcon/index.tsx +++ b/src/frontend/src/icons/ChromaIcon/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as ChromaSVG } from "./chroma.svg"; -export const ChromaIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const ChromaIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/Cohere/index.tsx b/src/frontend/src/icons/Cohere/index.tsx index 0a071b510..bcb15dd24 100644 --- a/src/frontend/src/icons/Cohere/index.tsx +++ b/src/frontend/src/icons/Cohere/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as CohereSVG } from "./cohere.svg"; -export const CohereIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const CohereIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/Evernote/index.tsx b/src/frontend/src/icons/Evernote/index.tsx index 23e9bc43f..685d9da13 100644 --- a/src/frontend/src/icons/Evernote/index.tsx +++ b/src/frontend/src/icons/Evernote/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as EvernoteSVG } from "./evernote-icon.svg"; -export const EvernoteIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const EvernoteIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/GitBook/index.tsx b/src/frontend/src/icons/GitBook/index.tsx index e25f52d58..0e312a8e1 100644 --- a/src/frontend/src/icons/GitBook/index.tsx +++ b/src/frontend/src/icons/GitBook/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as GitBookSVG } from "./gitbook-svgrepo-com.svg"; -export const GitBookIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const GitBookIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/Google/index.tsx b/src/frontend/src/icons/Google/index.tsx index 527469ca0..5159ba23b 100644 --- a/src/frontend/src/icons/Google/index.tsx +++ b/src/frontend/src/icons/Google/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as GoogleSVG } from "./google.svg"; -export const GoogleIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const GoogleIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/HuggingFace/index.tsx b/src/frontend/src/icons/HuggingFace/index.tsx index eab851696..44fc68609 100644 --- a/src/frontend/src/icons/HuggingFace/index.tsx +++ b/src/frontend/src/icons/HuggingFace/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as HugginFaceSVG } from "./hf-logo.svg"; -export const HugginFaceIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const HugginFaceIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/Midjorney/index.tsx b/src/frontend/src/icons/Midjorney/index.tsx index 450666cfe..fd09aa700 100644 --- a/src/frontend/src/icons/Midjorney/index.tsx +++ b/src/frontend/src/icons/Midjorney/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as MidjorneySVG } from "./Midjourney_Emblem.svg"; -export const MidjorneyIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const MidjorneyIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/Notion/index.tsx b/src/frontend/src/icons/Notion/index.tsx index 9666ce80b..265a5c153 100644 --- a/src/frontend/src/icons/Notion/index.tsx +++ b/src/frontend/src/icons/Notion/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as NotionSVG } from "./Notion-logo.svg"; -export const NotionIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const NotionIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/OpenAi/index.tsx b/src/frontend/src/icons/OpenAi/index.tsx index ae50fbce3..940f4f908 100644 --- a/src/frontend/src/icons/OpenAi/index.tsx +++ b/src/frontend/src/icons/OpenAi/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as OpenAiSVG } from "./openAI.svg"; -export const OpenAiIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const OpenAiIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/PowerPoint/index.tsx b/src/frontend/src/icons/PowerPoint/index.tsx index fbb68d533..89d6fb53b 100644 --- a/src/frontend/src/icons/PowerPoint/index.tsx +++ b/src/frontend/src/icons/PowerPoint/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as PowerPointSVG } from "./PowerPoint.svg"; -export const PowerPointIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const PowerPointIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/QDrant/index.tsx b/src/frontend/src/icons/QDrant/index.tsx index 7e8ec655d..5bc03e070 100644 --- a/src/frontend/src/icons/QDrant/index.tsx +++ b/src/frontend/src/icons/QDrant/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as QDrantSVG } from "./QDrant.svg"; -export const QDrantIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const QDrantIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/ReadTheDocs/index.tsx b/src/frontend/src/icons/ReadTheDocs/index.tsx index c87a624de..87a327912 100644 --- a/src/frontend/src/icons/ReadTheDocs/index.tsx +++ b/src/frontend/src/icons/ReadTheDocs/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as ReadTheDocsSVG } from "./readthedocsio-icon.svg"; -export const ReadTheDocsIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const ReadTheDocsIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/Weaviate/index.tsx b/src/frontend/src/icons/Weaviate/index.tsx index f454e4f15..f1aeeb1af 100644 --- a/src/frontend/src/icons/Weaviate/index.tsx +++ b/src/frontend/src/icons/Weaviate/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as WeaviateSVG } from "./weaviate.svg"; -export const WeaviateIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const WeaviateIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/Wikipedia/index.tsx b/src/frontend/src/icons/Wikipedia/index.tsx index 06c1c5b4d..446f9c108 100644 --- a/src/frontend/src/icons/Wikipedia/index.tsx +++ b/src/frontend/src/icons/Wikipedia/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as WikipediaSVG } from "./Wikipedia.svg"; -export const WikipediaIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const WikipediaIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/Wolfram/index.tsx b/src/frontend/src/icons/Wolfram/index.tsx index c8b94ebf1..8f1b3e089 100644 --- a/src/frontend/src/icons/Wolfram/index.tsx +++ b/src/frontend/src/icons/Wolfram/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as WolframSVG } from "./wolfram.svg"; -export const WolframIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const WolframIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/icons/hackerNews/index.tsx b/src/frontend/src/icons/hackerNews/index.tsx index d1c47e7db..787a94274 100644 --- a/src/frontend/src/icons/hackerNews/index.tsx +++ b/src/frontend/src/icons/hackerNews/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as HackerNewsSVG } from "./Y_Combinator_logo.svg"; -export const HackerNewsIcon = forwardRef>( - (props, ref) => { - return ; - } -); +export const HackerNewsIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 585e93664..be7314ade 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -20,7 +20,7 @@ import { Connection, Edge, Node, ReactFlowInstance, addEdge } from "reactflow"; import { FlowType, NodeType } from "./types/flow"; import { APITemplateType, TemplateVariableType } from "./types/api"; import _ from "lodash"; -import { ChromaIcon} from "./icons/ChromaIcon"; +import { ChromaIcon } from "./icons/ChromaIcon"; import { AirbyteIcon } from "./icons/Airbyte"; import { AzIcon } from "./icons/AzLogo"; import { BingIcon } from "./icons/Bing"; From 95eab00a5e42f4780c37ad2050f11b3427b3f765 Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Mon, 29 May 2023 22:56:26 -0300 Subject: [PATCH 43/72] Removing trash icon --- .../src/CustomNodes/GenericNode/index.tsx | 91 +++++++++---------- .../ReactTooltipComponent/index.tsx | 2 +- 2 files changed, 45 insertions(+), 48 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index e2576bd08..5c0248ae4 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -123,46 +123,6 @@ export default function GenericNode({
{data.type}
- -
- - {validationStatus.params.split("\n").map((line, index) => ( -
{line}
- ))} -
- ) - } - > -
-
-
-
-
-
-
- + +
+ + {validationStatus.params.split("\n").map((line, index) => ( +
{line}
+ ))} +
+ ) + } + > +
+ + + +
+ +
+
diff --git a/src/frontend/src/components/ReactTooltipComponent/index.tsx b/src/frontend/src/components/ReactTooltipComponent/index.tsx index 87a7508d2..aa736c212 100644 --- a/src/frontend/src/components/ReactTooltipComponent/index.tsx +++ b/src/frontend/src/components/ReactTooltipComponent/index.tsx @@ -37,7 +37,7 @@ const TooltipReact: FC = ({ id={selector} content={content} className={classNames( - "!bg-white !text-xs !font-normal !text-gray-700 !shadow-lg !opacity-100 z-10", + "!bg-white !text-xs !font-normal !text-gray-700 !shadow-md !opacity-100 z-20", className )} place={position} From 9f27a3e1cc2d04c08362a6e275739b007a30cc56 Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Mon, 29 May 2023 23:45:02 -0300 Subject: [PATCH 44/72] Changing edge colors dark mode --- src/frontend/src/CustomNodes/GenericNode/index.tsx | 7 +++---- src/frontend/src/components/floatComponent/index.tsx | 6 +++++- src/frontend/src/components/intComponent/index.tsx | 7 ++++--- src/frontend/src/contexts/tabsContext.tsx | 4 ++-- .../FlowPage/components/extraSidebarComponent/index.tsx | 8 ++++++-- src/frontend/src/pages/FlowPage/index.tsx | 2 +- 6 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index 5c0248ae4..94e1ee6bd 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -174,7 +174,7 @@ export default function GenericNode({ validationStatus && validationStatus.valid ? "w-4 h-4 rounded-full bg-green-500 opacity-100" : "w-4 h-4 rounded-full bg-gray-500 opacity-0 hidden animate-spin", - "absolute w-4 hover:text-gray-500 hover:dark:text-gray-300 transition-all ease-in-out duration-200" + "absolute w-4 hover:text-gray-500 hover:dark:text-gray-300 transition-all ease-in-out duration-200" )} >
-
diff --git a/src/frontend/src/components/floatComponent/index.tsx b/src/frontend/src/components/floatComponent/index.tsx index 4c4d0ad9a..c6b1befe3 100644 --- a/src/frontend/src/components/floatComponent/index.tsx +++ b/src/frontend/src/components/floatComponent/index.tsx @@ -15,7 +15,11 @@ export default function FloatComponent({ } }, [disabled, onChange]); return ( -
+
{ diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx index 480a154f8..f8015a21e 100644 --- a/src/frontend/src/contexts/tabsContext.tsx +++ b/src/frontend/src/contexts/tabsContext.tsx @@ -89,7 +89,7 @@ export function TabsProvider({ children }: { children: ReactNode }) { cookieObject.flows.forEach((flow) => { flow.data.edges.forEach((edge) => { edge.className = ""; - edge.style = { stroke: "#222222" }; + edge.style = { stroke: "#555555" }; }); flow.data.nodes.forEach((node) => { if (Object.keys(templates[node.data.type]["template"]).length > 0) { @@ -295,7 +295,7 @@ export function TabsProvider({ children }: { children: ReactNode }) { if (data) { data.edges.forEach((edge) => { edge.className = ""; - edge.style = { stroke: "#222222" }; + edge.style = { stroke: "#555555" }; }); data.nodes.forEach((node) => { if (Object.keys(templates[node.data.type]["template"]).length > 0) { diff --git a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx index eb2581225..b88e13586 100644 --- a/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/extraSidebarComponent/index.tsx @@ -15,7 +15,9 @@ export default function ExtraSidebar() { ) { //start drag event var crt = event.currentTarget.cloneNode(true); - crt.style.position = "absolute"; crt.style.top = "-500px"; crt.style.right = "-500px"; + crt.style.position = "absolute"; + crt.style.top = "-500px"; + crt.style.right = "-500px"; crt.classList.add("cursor-grabbing"); document.body.appendChild(crt); event.dataTransfer.setDragImage(crt, 0, 0); @@ -60,7 +62,9 @@ export default function ExtraSidebar() { } onDragEnd={() => { document.body.removeChild( - document.getElementsByClassName("cursor-grabbing")[0] + document.getElementsByClassName( + "cursor-grabbing" + )[0] ); }} > diff --git a/src/frontend/src/pages/FlowPage/index.tsx b/src/frontend/src/pages/FlowPage/index.tsx index d8112410d..3216b44e4 100644 --- a/src/frontend/src/pages/FlowPage/index.tsx +++ b/src/frontend/src/pages/FlowPage/index.tsx @@ -154,7 +154,7 @@ export default function FlowPage({ flow }: { flow: FlowType }) { style: params.targetHandle.split("|")[0] === "Text" ? { stroke: "#333333", strokeWidth: 2 } - : { stroke: "#222222" }, + : { stroke: "#555555" }, animated: params.targetHandle.split("|")[0] === "Text", }, eds From 44faf64e09fe560db21a3ba219f3e991026ebd32 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Mon, 29 May 2023 23:45:13 -0300 Subject: [PATCH 45/72] =?UTF-8?q?=F0=9F=94=A8=20refactor(utils.ts):=20rena?= =?UTF-8?q?me=20nodeIcons=20keys=20to=20improve=20semantics=20The=20keys?= =?UTF-8?q?=20of=20the=20nodeIcons=20object=20have=20been=20renamed=20to?= =?UTF-8?q?=20improve=20semantics=20and=20readability.=20The=20new=20names?= =?UTF-8?q?=20are=20more=20descriptive=20of=20the=20functionality=20of=20t?= =?UTF-8?q?he=20corresponding=20icons.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/utils.ts | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index be7314ade..2c895938c 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -149,29 +149,33 @@ export const nodeIcons: { >; } = { Chroma: ChromaIcon, - Airbyte: AirbyteIcon, - AzLogo: AzIcon, - Bing: BingIcon, + AirbyteJSONLoader: AirbyteIcon, + // AZLyricsLoader: AzIcon, + BingSearchAPIWrapper: BingIcon, Cohere: CohereIcon, - Evernote: EvernoteIcon, - FacebookMessenger: FBIcon, - GitBook: GitBookIcon, - Google: GoogleIcon, - HackerNews: HackerNewsIcon, - HuggingFace: HugginFaceIcon, - IFixIt: IFixIcon, + CohereEmbeddings: CohereIcon, + EverNoteLoader: EvernoteIcon, + FacebookChatLoader: FBIcon, + GitbookLoader: GitBookIcon, + GoogleSearchAPIWrapper: GoogleIcon, + HNLoader: HackerNewsIcon, + HuggingFaceHub: HugginFaceIcon, + HuggingFaceEmbeddings: HugginFaceIcon, + IFixitLoader: IFixIcon, Meta: MetaIcon, Midjorney: MidjorneyIcon, - Notion: NotionIcon, - OpenAi: OpenAiIcon, + NotionDirectoryLoader: NotionIcon, + ChatOpenAI: OpenAiIcon, + OpenAI: OpenAiIcon, + OpenAIEmbeddings: OpenAiIcon, PowerPoint: PowerPointIcon, - QDrant: QDrantIcon, + Qdrant: QDrantIcon, ReadTheDocs: ReadTheDocsIcon, Searx: SearxIcon, - Slack: SlackIcon, - Weaviate: WeaviateIcon, - Wikipedia: WikipediaIcon, - Wolfram: WolframIcon, + SlackDirectoryLoader: SlackIcon, + // Weaviate: WeaviateIcon, + // WikipediaAPIWrapper: WikipediaIcon, + WolframAlphaQueryRun: WolframIcon, Word: WordIcon, agents: RocketLaunchIcon, chains: LinkIcon, From c9403b6433fba97dc50f3ba713c026230cfc74f3 Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Tue, 30 May 2023 00:03:27 -0300 Subject: [PATCH 46/72] Adding the trash icon and height icons --- src/frontend/src/CustomNodes/GenericNode/index.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index 94e1ee6bd..83806455b 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -149,11 +149,19 @@ export default function GenericNode({ ) ? "" : "hidden", - "w-6 h-6 dark:text-gray-300" + "w-5 h-5 dark:text-gray-300" )} > + +
-
+
Date: Tue, 30 May 2023 00:16:19 -0300 Subject: [PATCH 47/72] fix refresh error --- src/frontend/src/contexts/tabsContext.tsx | 33 ++++++++++---------- src/frontend/src/icons/Serper/index.tsx | 8 +++++ src/frontend/src/icons/Serper/serper.svg | 38 +++++++++++++++++++++++ src/frontend/src/utils.ts | 7 ++++- 4 files changed, 69 insertions(+), 17 deletions(-) create mode 100644 src/frontend/src/icons/Serper/index.tsx create mode 100644 src/frontend/src/icons/Serper/serper.svg diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx index 480a154f8..ff882e1b6 100644 --- a/src/frontend/src/contexts/tabsContext.tsx +++ b/src/frontend/src/contexts/tabsContext.tsx @@ -21,24 +21,24 @@ import { v4 as uuidv4 } from "uuid"; import { addEdge } from "reactflow"; const TabsContextInitialValue: TabsContextType = { - save: () => {}, + save: () => { }, tabIndex: 0, - setTabIndex: (index: number) => {}, + setTabIndex: (index: number) => { }, flows: [], - removeFlow: (id: string) => {}, - addFlow: (flowData?: any) => {}, - updateFlow: (newFlow: FlowType) => {}, + removeFlow: (id: string) => { }, + addFlow: (flowData?: any) => { }, + updateFlow: (newFlow: FlowType) => { }, incrementNodeId: () => uuidv4(), - downloadFlow: (flow: FlowType) => {}, - uploadFlow: () => {}, - hardReset: () => {}, + downloadFlow: (flow: FlowType) => { }, + uploadFlow: () => { }, + hardReset: () => { }, disableCopyPaste: false, - setDisableCopyPaste: (state: boolean) => {}, + setDisableCopyPaste: (state: boolean) => { }, getNodeId: () => "", paste: ( selection: { nodes: any; edges: any }, position: { x: number; y: number } - ) => {}, + ) => { }, }; export const TabsContext = createContext( @@ -59,7 +59,7 @@ export function TabsProvider({ children }: { children: ReactNode }) { } function save() { let Saveflows = [...flows]; - if (Saveflows.length !== 0) + if (Saveflows.length !== 0) { Saveflows.forEach((flow) => { if (flow.data && flow.data?.nodes) flow.data?.nodes.forEach((node) => { @@ -71,10 +71,11 @@ export function TabsProvider({ children }: { children: ReactNode }) { }); }); }); - window.localStorage.setItem( - "tabsData", - JSON.stringify({ tabIndex, flows: Saveflows, id }) - ); + window.localStorage.setItem( + "tabsData", + JSON.stringify({ tabIndex, flows: Saveflows, id }) + ); + } } useEffect(() => { //save tabs locally @@ -108,7 +109,7 @@ export function TabsProvider({ children }: { children: ReactNode }) { templates[node.data.type]["description"]; node.data.node.template = updateTemplate( templates[node.data.type][ - "template" + "template" ] as unknown as APITemplateType, node.data.node.template as APITemplateType diff --git a/src/frontend/src/icons/Serper/index.tsx b/src/frontend/src/icons/Serper/index.tsx new file mode 100644 index 000000000..2100695ff --- /dev/null +++ b/src/frontend/src/icons/Serper/index.tsx @@ -0,0 +1,8 @@ +import React, { forwardRef } from "react"; +import { ReactComponent as SerperSVG } from "./serper.svg"; + +export const SerperIcon = forwardRef>( + (props, ref) => { + return ; + } +); \ No newline at end of file diff --git a/src/frontend/src/icons/Serper/serper.svg b/src/frontend/src/icons/Serper/serper.svg new file mode 100644 index 000000000..a984dbfe8 --- /dev/null +++ b/src/frontend/src/icons/Serper/serper.svg @@ -0,0 +1,38 @@ + + + + diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 2c895938c..5f8e85242 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -45,6 +45,7 @@ import { WeaviateIcon } from "./icons/Weaviate"; import { WikipediaIcon } from "./icons/Wikipedia"; import { WolframIcon } from "./icons/Wolfram"; import { WordIcon } from "./icons/Word"; +import { SerperIcon } from "./icons/Serper"; import { v4 as uuidv4 } from "uuid"; export function classNames(...classes: Array) { @@ -150,6 +151,7 @@ export const nodeIcons: { } = { Chroma: ChromaIcon, AirbyteJSONLoader: AirbyteIcon, + // SerpAPIWrapper: SerperIcon, // AZLyricsLoader: AzIcon, BingSearchAPIWrapper: BingIcon, Cohere: CohereIcon, @@ -158,6 +160,8 @@ export const nodeIcons: { FacebookChatLoader: FBIcon, GitbookLoader: GitBookIcon, GoogleSearchAPIWrapper: GoogleIcon, + GoogleSearchResults: GoogleIcon, + GoogleSearchRun: GoogleIcon, HNLoader: HackerNewsIcon, HuggingFaceHub: HugginFaceIcon, HuggingFaceEmbeddings: HugginFaceIcon, @@ -175,7 +179,8 @@ export const nodeIcons: { SlackDirectoryLoader: SlackIcon, // Weaviate: WeaviateIcon, // WikipediaAPIWrapper: WikipediaIcon, - WolframAlphaQueryRun: WolframIcon, + // WolframAlphaQueryRun: WolframIcon, + // WolframAlphaAPIWrapper: WolframIcon, Word: WordIcon, agents: RocketLaunchIcon, chains: LinkIcon, From 8a2cf0f72141c00406f07be0740c327be6740253 Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Tue, 30 May 2023 00:16:30 -0300 Subject: [PATCH 48/72] format --- src/frontend/src/contexts/tabsContext.tsx | 22 +++++++++++----------- src/frontend/src/icons/Serper/index.tsx | 11 ++++++----- src/frontend/src/utils.ts | 2 +- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx index ff882e1b6..1a95d3157 100644 --- a/src/frontend/src/contexts/tabsContext.tsx +++ b/src/frontend/src/contexts/tabsContext.tsx @@ -21,24 +21,24 @@ import { v4 as uuidv4 } from "uuid"; import { addEdge } from "reactflow"; const TabsContextInitialValue: TabsContextType = { - save: () => { }, + save: () => {}, tabIndex: 0, - setTabIndex: (index: number) => { }, + setTabIndex: (index: number) => {}, flows: [], - removeFlow: (id: string) => { }, - addFlow: (flowData?: any) => { }, - updateFlow: (newFlow: FlowType) => { }, + removeFlow: (id: string) => {}, + addFlow: (flowData?: any) => {}, + updateFlow: (newFlow: FlowType) => {}, incrementNodeId: () => uuidv4(), - downloadFlow: (flow: FlowType) => { }, - uploadFlow: () => { }, - hardReset: () => { }, + downloadFlow: (flow: FlowType) => {}, + uploadFlow: () => {}, + hardReset: () => {}, disableCopyPaste: false, - setDisableCopyPaste: (state: boolean) => { }, + setDisableCopyPaste: (state: boolean) => {}, getNodeId: () => "", paste: ( selection: { nodes: any; edges: any }, position: { x: number; y: number } - ) => { }, + ) => {}, }; export const TabsContext = createContext( @@ -109,7 +109,7 @@ export function TabsProvider({ children }: { children: ReactNode }) { templates[node.data.type]["description"]; node.data.node.template = updateTemplate( templates[node.data.type][ - "template" + "template" ] as unknown as APITemplateType, node.data.node.template as APITemplateType diff --git a/src/frontend/src/icons/Serper/index.tsx b/src/frontend/src/icons/Serper/index.tsx index 2100695ff..77ea58077 100644 --- a/src/frontend/src/icons/Serper/index.tsx +++ b/src/frontend/src/icons/Serper/index.tsx @@ -1,8 +1,9 @@ import React, { forwardRef } from "react"; import { ReactComponent as SerperSVG } from "./serper.svg"; -export const SerperIcon = forwardRef>( - (props, ref) => { - return ; - } -); \ No newline at end of file +export const SerperIcon = forwardRef< + SVGSVGElement, + React.PropsWithChildren<{}> +>((props, ref) => { + return ; +}); diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index 5f8e85242..cebf4fb02 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -180,7 +180,7 @@ export const nodeIcons: { // Weaviate: WeaviateIcon, // WikipediaAPIWrapper: WikipediaIcon, // WolframAlphaQueryRun: WolframIcon, - // WolframAlphaAPIWrapper: WolframIcon, + // WolframAlphaAPIWrapper: WolframIcon, Word: WordIcon, agents: RocketLaunchIcon, chains: LinkIcon, From 82a8b633a6b3395096276ace308d96dcd945f17a Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Tue, 30 May 2023 00:40:50 -0300 Subject: [PATCH 49/72] new save function to prevent break with large files --- src/frontend/src/contexts/tabsContext.tsx | 38 +++++++++++++---------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx index 1a95d3157..2c3103477 100644 --- a/src/frontend/src/contexts/tabsContext.tsx +++ b/src/frontend/src/contexts/tabsContext.tsx @@ -19,6 +19,7 @@ import { typesContext } from "./typesContext"; import { APITemplateType, TemplateVariableType } from "../types/api"; import { v4 as uuidv4 } from "uuid"; import { addEdge } from "reactflow"; +import _ from "lodash"; const TabsContextInitialValue: TabsContextType = { save: () => {}, @@ -58,25 +59,30 @@ export function TabsProvider({ children }: { children: ReactNode }) { return newNodeId.current; } function save() { - let Saveflows = [...flows]; - if (Saveflows.length !== 0) { + // added clone deep to avoid mutating the original object + let Saveflows = _.cloneDeep(flows); + if (Saveflows.length !== 0){ Saveflows.forEach((flow) => { - if (flow.data && flow.data?.nodes) - flow.data?.nodes.forEach((node) => { - Object.keys(node.data.node.template).forEach((key) => { - if (node.data.node.template[key].type === "file") { - // ! Commenting this out for now, as it is causing issues with the file upload - // node.data.node.template[key].content = ""; - } - }); - }); - }); + if(flow.data && flow.data?.nodes) flow.data?.nodes.forEach((node) => { + console.log(node.data.type) + //looking for file fields to prevent saving the content and breaking the flow for exceeding the the data limite for local storage + Object.keys(node.data.node.template).forEach((key) => { + console.log(node.data.node.template[key].type) + if(node.data.node.template[key].type==="file"){ + console.log(node.data.node.template[key]) + node.data.node.template[key].content = null; + node.data.node.template[key].value = ""; + + } + }) + }) + }) window.localStorage.setItem( - "tabsData", - JSON.stringify({ tabIndex, flows: Saveflows, id }) - ); + "tabsData", + JSON.stringify({ tabIndex, flows:Saveflows, id}) + ); } - } + } useEffect(() => { //save tabs locally save(); From 1981321b1a6b73754f647772c1c51efc6f39d98b Mon Sep 17 00:00:00 2001 From: anovazzi1 Date: Tue, 30 May 2023 00:41:07 -0300 Subject: [PATCH 50/72] format --- src/frontend/src/contexts/tabsContext.tsx | 40 +++++++++++------------ 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx index 2c3103477..18927a480 100644 --- a/src/frontend/src/contexts/tabsContext.tsx +++ b/src/frontend/src/contexts/tabsContext.tsx @@ -60,29 +60,29 @@ export function TabsProvider({ children }: { children: ReactNode }) { } function save() { // added clone deep to avoid mutating the original object - let Saveflows = _.cloneDeep(flows); - if (Saveflows.length !== 0){ + let Saveflows = _.cloneDeep(flows); + if (Saveflows.length !== 0) { Saveflows.forEach((flow) => { - if(flow.data && flow.data?.nodes) flow.data?.nodes.forEach((node) => { - console.log(node.data.type) - //looking for file fields to prevent saving the content and breaking the flow for exceeding the the data limite for local storage - Object.keys(node.data.node.template).forEach((key) => { - console.log(node.data.node.template[key].type) - if(node.data.node.template[key].type==="file"){ - console.log(node.data.node.template[key]) - node.data.node.template[key].content = null; - node.data.node.template[key].value = ""; - - } - }) - }) - }) + if (flow.data && flow.data?.nodes) + flow.data?.nodes.forEach((node) => { + console.log(node.data.type); + //looking for file fields to prevent saving the content and breaking the flow for exceeding the the data limite for local storage + Object.keys(node.data.node.template).forEach((key) => { + console.log(node.data.node.template[key].type); + if (node.data.node.template[key].type === "file") { + console.log(node.data.node.template[key]); + node.data.node.template[key].content = null; + node.data.node.template[key].value = ""; + } + }); + }); + }); window.localStorage.setItem( - "tabsData", - JSON.stringify({ tabIndex, flows:Saveflows, id}) - ); + "tabsData", + JSON.stringify({ tabIndex, flows: Saveflows, id }) + ); } - } + } useEffect(() => { //save tabs locally save(); From 6f80c7a6c2ad2f09f867dd41b9403d9ccdf6314b Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Tue, 30 May 2023 10:16:20 -0300 Subject: [PATCH 51/72] Fixed stroke color on dark mode --- src/frontend/src/pages/FlowPage/index.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/frontend/src/pages/FlowPage/index.tsx b/src/frontend/src/pages/FlowPage/index.tsx index 3216b44e4..69fa6eb08 100644 --- a/src/frontend/src/pages/FlowPage/index.tsx +++ b/src/frontend/src/pages/FlowPage/index.tsx @@ -151,10 +151,11 @@ export default function FlowPage({ flow }: { flow: FlowType }) { addEdge( { ...params, - style: + style: { stroke: "inherit" }, + className: params.targetHandle.split("|")[0] === "Text" - ? { stroke: "#333333", strokeWidth: 2 } - : { stroke: "#555555" }, + ? "stroke-gray-800 dark:stroke-gray-300" + : "stroke-gray-900 dark:stroke-gray-200", animated: params.targetHandle.split("|")[0] === "Text", }, eds From 6ac4e427ee734a20d26d139a00922405533dc7aa Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Tue, 30 May 2023 10:21:26 -0300 Subject: [PATCH 52/72] Added stroke fix on Paste and Add Flow --- src/frontend/src/contexts/tabsContext.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/frontend/src/contexts/tabsContext.tsx b/src/frontend/src/contexts/tabsContext.tsx index f8015a21e..172bc9ff4 100644 --- a/src/frontend/src/contexts/tabsContext.tsx +++ b/src/frontend/src/contexts/tabsContext.tsx @@ -278,7 +278,12 @@ export function TabsProvider({ children }: { children: ReactNode }) { sourceHandle, targetHandle, id, - className: "animate-pulse", + style: { stroke: "inherit" }, + className: + targetHandle.split("|")[0] === "Text" + ? "stroke-gray-800 dark:stroke-gray-300" + : "stroke-gray-900 dark:stroke-gray-200", + animated: targetHandle.split("|")[0] === "Text", selected: false, }, edges.map((e) => ({ ...e, selected: false })) @@ -294,8 +299,12 @@ export function TabsProvider({ children }: { children: ReactNode }) { const description = flow?.description ? flow.description : ""; if (data) { data.edges.forEach((edge) => { - edge.className = ""; - edge.style = { stroke: "#555555" }; + edge.style = { stroke: "inherit" }; + edge.className = + edge.targetHandle.split("|")[0] === "Text" + ? "stroke-gray-800 dark:stroke-gray-300" + : "stroke-gray-900 dark:stroke-gray-200"; + edge.animated = edge.targetHandle.split("|")[0] === "Text"; }); data.nodes.forEach((node) => { if (Object.keys(templates[node.data.type]["template"]).length > 0) { From 6fa08264df99d5c982330654cc55738c227d2456 Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Tue, 30 May 2023 10:36:56 -0300 Subject: [PATCH 53/72] Fixed copy paste on int and float parameters --- .../components/parameterComponent/index.tsx | 2 ++ .../src/components/floatComponent/index.tsx | 9 +++++++++ .../src/components/intComponent/index.tsx | 16 ++++++++++++++++ src/frontend/src/types/components/index.ts | 1 + 4 files changed, 28 insertions(+) diff --git a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx index 5668b5430..653248763 100644 --- a/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/components/parameterComponent/index.tsx @@ -144,6 +144,7 @@ export default function ParameterComponent({ ) : left === true && type === "float" ? ( { data.node.template[name].value = t; @@ -184,6 +185,7 @@ export default function ParameterComponent({ ) : left === true && type === "int" ? ( { data.node.template[name].value = t; diff --git a/src/frontend/src/components/floatComponent/index.tsx b/src/frontend/src/components/floatComponent/index.tsx index c6b1befe3..1fe3e3f76 100644 --- a/src/frontend/src/components/floatComponent/index.tsx +++ b/src/frontend/src/components/floatComponent/index.tsx @@ -5,9 +5,12 @@ import { TabsContext } from "../../contexts/tabsContext"; export default function FloatComponent({ value, onChange, + disableCopyPaste = false, disabled, }: FloatComponentType) { const [myValue, setMyValue] = useState(value ?? ""); + const { setDisableCopyPaste } = useContext(TabsContext); + useEffect(() => { if (disabled) { setMyValue(""); @@ -21,6 +24,12 @@ export default function FloatComponent({ } > { + if (disableCopyPaste) setDisableCopyPaste(true); + }} + onBlur={() => { + if (disableCopyPaste) setDisableCopyPaste(false); + }} type="number" value={myValue} className={ diff --git a/src/frontend/src/components/intComponent/index.tsx b/src/frontend/src/components/intComponent/index.tsx index 6353dff60..5ca68c5ce 100644 --- a/src/frontend/src/components/intComponent/index.tsx +++ b/src/frontend/src/components/intComponent/index.tsx @@ -5,9 +5,12 @@ import { TabsContext } from "../../contexts/tabsContext"; export default function IntComponent({ value, onChange, + disableCopyPaste = false, disabled, }: FloatComponentType) { const [myValue, setMyValue] = useState(value ?? ""); + const { setDisableCopyPaste } = useContext(TabsContext); + useEffect(() => { if (disabled) { setMyValue(""); @@ -22,13 +25,26 @@ export default function IntComponent({ } > { + if (disableCopyPaste) setDisableCopyPaste(true); + }} + onBlur={() => { + if (disableCopyPaste) setDisableCopyPaste(false); + }} onKeyDown={(event) => { + console.log(event); if ( event.key !== "Backspace" && event.key !== "Enter" && event.key !== "Delete" && event.key !== "ArrowLeft" && event.key !== "ArrowRight" && + event.key !== "Control" && + event.key !== "Meta" && + event.key !== "Shift" && + event.key !== "c" && + event.key !== "v" && + event.key !== "a" && !/^[-]?\d*$/.test(event.key) ) { event.preventDefault(); diff --git a/src/frontend/src/types/components/index.ts b/src/frontend/src/types/components/index.ts index e660e1c4d..e7559023a 100644 --- a/src/frontend/src/types/components/index.ts +++ b/src/frontend/src/types/components/index.ts @@ -69,6 +69,7 @@ export type DisclosureComponentType = { export type FloatComponentType = { value: string; disabled?: boolean; + disableCopyPaste?: boolean; onChange: (value: string) => void; }; From 9c8bd4b0a515c76ae95c3d7769b2d79bc69c5f0b Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Tue, 30 May 2023 10:38:59 -0300 Subject: [PATCH 54/72] Fixed node moving when selecting with arrow --- src/frontend/src/pages/FlowPage/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/frontend/src/pages/FlowPage/index.tsx b/src/frontend/src/pages/FlowPage/index.tsx index 69fa6eb08..9d66f06fe 100644 --- a/src/frontend/src/pages/FlowPage/index.tsx +++ b/src/frontend/src/pages/FlowPage/index.tsx @@ -324,6 +324,7 @@ export default function FlowPage({ flow }: { flow: FlowType }) { onNodesChange={onNodesChange} onEdgesChange={onEdgesChangeMod} onConnect={onConnect} + disableKeyboardA11y={true} onLoad={setReactFlowInstance} onInit={setReactFlowInstance} nodeTypes={nodeTypes} From ea59375ba58640fc890e1d761fc173c8bdd3da8e Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Tue, 30 May 2023 10:41:48 -0300 Subject: [PATCH 55/72] =?UTF-8?q?=F0=9F=94=A5=20chore(template):=20delete?= =?UTF-8?q?=20unused=20files=20and=20imports=20This=20commit=20removes=20u?= =?UTF-8?q?nused=20files=20and=20imports=20from=20the=20template=20directo?= =?UTF-8?q?ry.=20The=20deleted=20files=20are=20base.py,=20fields.py,=20and?= =?UTF-8?q?=20nodes.py.=20The=20deleted=20imports=20are=20from=20langflow.?= =?UTF-8?q?template.constants.=20This=20improves=20the=20codebase=20by=20r?= =?UTF-8?q?emoving=20unnecessary=20code=20and=20reducing=20clutter.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ✨ feat(frontend_node): add constants module This commit adds a new module called constants to the frontend_node directory. The module contains constants used in the frontend_node module. The constants are FORCE_SHOW_FIELDS, DEFAULT_PROMPT, SYSTEM_PROMPT, and HUMAN_PROMPT. This improves the codebase by centralizing the constants in one module. 🐛 fix(frontend_node): use ast.literal_eval instead of eval This commit fixes a security vulnerability by replacing the use of eval with ast.literal_eval in the UtilitiesFrontendNode class. The method converts a string representation of a list to an actual list. The use of eval is dangerous as it can execute arbitrary code. This improves the codebase by making it more secure. --- src/backend/langflow/template/base.py | 1 - src/backend/langflow/template/fields.py | 0 src/backend/langflow/template/frontend_node/base.py | 2 +- .../langflow/template/{ => frontend_node}/constants.py | 0 src/backend/langflow/template/frontend_node/prompts.py | 6 +++++- src/backend/langflow/template/frontend_node/utilities.py | 3 ++- src/backend/langflow/template/nodes.py | 1 - src/backend/langflow/utils/util.py | 2 +- 8 files changed, 9 insertions(+), 6 deletions(-) delete mode 100644 src/backend/langflow/template/base.py delete mode 100644 src/backend/langflow/template/fields.py rename src/backend/langflow/template/{ => frontend_node}/constants.py (100%) delete mode 100644 src/backend/langflow/template/nodes.py diff --git a/src/backend/langflow/template/base.py b/src/backend/langflow/template/base.py deleted file mode 100644 index 8b1378917..000000000 --- a/src/backend/langflow/template/base.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/backend/langflow/template/fields.py b/src/backend/langflow/template/fields.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/backend/langflow/template/frontend_node/base.py b/src/backend/langflow/template/frontend_node/base.py index cb762f28e..a64195813 100644 --- a/src/backend/langflow/template/frontend_node/base.py +++ b/src/backend/langflow/template/frontend_node/base.py @@ -3,7 +3,7 @@ from typing import List, Optional from pydantic import BaseModel -from langflow.template.constants import FORCE_SHOW_FIELDS +from langflow.template.frontend_node.constants import FORCE_SHOW_FIELDS from langflow.template.field.base import TemplateField from langflow.template.template.base import Template from langflow.utils import constants diff --git a/src/backend/langflow/template/constants.py b/src/backend/langflow/template/frontend_node/constants.py similarity index 100% rename from src/backend/langflow/template/constants.py rename to src/backend/langflow/template/frontend_node/constants.py diff --git a/src/backend/langflow/template/frontend_node/prompts.py b/src/backend/langflow/template/frontend_node/prompts.py index 7d7b1cde2..8738f1795 100644 --- a/src/backend/langflow/template/frontend_node/prompts.py +++ b/src/backend/langflow/template/frontend_node/prompts.py @@ -2,7 +2,11 @@ from typing import Optional from langchain.agents.mrkl import prompt -from langflow.template.constants import DEFAULT_PROMPT, HUMAN_PROMPT, SYSTEM_PROMPT +from langflow.template.frontend_node.constants import ( + DEFAULT_PROMPT, + HUMAN_PROMPT, + SYSTEM_PROMPT, +) from langflow.template.field.base import TemplateField from langflow.template.frontend_node.base import FrontendNode from langflow.template.template.base import Template diff --git a/src/backend/langflow/template/frontend_node/utilities.py b/src/backend/langflow/template/frontend_node/utilities.py index 77d01a23e..615d7d12f 100644 --- a/src/backend/langflow/template/frontend_node/utilities.py +++ b/src/backend/langflow/template/frontend_node/utilities.py @@ -1,3 +1,4 @@ +import ast import json from typing import Optional @@ -12,7 +13,7 @@ class UtilitiesFrontendNode(FrontendNode): # field.field_type could be "Literal['news', 'search', 'places', 'images'] # we need to convert it to a list if "Literal" in field.field_type: - field.options = eval(field.field_type.replace("Literal", "")) + field.options = ast.literal_eval(field.field_type.replace("Literal", "")) field.is_list = True field.field_type = "str" diff --git a/src/backend/langflow/template/nodes.py b/src/backend/langflow/template/nodes.py deleted file mode 100644 index 8b1378917..000000000 --- a/src/backend/langflow/template/nodes.py +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/backend/langflow/utils/util.py b/src/backend/langflow/utils/util.py index 0c9a18335..293d31154 100644 --- a/src/backend/langflow/utils/util.py +++ b/src/backend/langflow/utils/util.py @@ -6,7 +6,7 @@ from typing import Dict, Optional from docstring_parser import parse # type: ignore -from langflow.template.constants import FORCE_SHOW_FIELDS +from langflow.template.frontend_node.constants import FORCE_SHOW_FIELDS from langflow.utils import constants From 7d014f0372a8430b4f3d8b3d932a096ec818b619 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Tue, 30 May 2023 10:44:10 -0300 Subject: [PATCH 56/72] =?UTF-8?q?=F0=9F=8E=A8=20style(modals):=20simplify?= =?UTF-8?q?=20modal=20titles=20The=20modal=20titles=20were=20simplified=20?= =?UTF-8?q?to=20remove=20the=20unnecessary=20"as"=20preposition=20and=20to?= =?UTF-8?q?=20make=20them=20more=20concise.=20The=20"Export=20as"=20and=20?= =?UTF-8?q?"Import=20from"=20titles=20were=20changed=20to=20"Export"=20and?= =?UTF-8?q?=20"Import"=20respectively.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/modals/exportModal/index.tsx | 2 +- src/frontend/src/modals/importModal/index.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/frontend/src/modals/exportModal/index.tsx b/src/frontend/src/modals/exportModal/index.tsx index 6bcedc60c..8aff12586 100644 --- a/src/frontend/src/modals/exportModal/index.tsx +++ b/src/frontend/src/modals/exportModal/index.tsx @@ -84,7 +84,7 @@ export default function ExportModal() { as="h3" className="text-lg font-medium dark:text-white leading-10 text-gray-900" > - Export as + Export
diff --git a/src/frontend/src/modals/importModal/index.tsx b/src/frontend/src/modals/importModal/index.tsx index aa25e058b..d0808c541 100644 --- a/src/frontend/src/modals/importModal/index.tsx +++ b/src/frontend/src/modals/importModal/index.tsx @@ -124,7 +124,7 @@ export default function ImportModal() { as="h3" className="text-lg font-medium dark:text-white leading-10 text-gray-900" > - {showExamples ? "Select an example" : "Import from"} + {showExamples ? "Select an example" : "Import"}
From bc198bd2375bd07720e88037792c512a747e452c Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Tue, 30 May 2023 10:44:47 -0300 Subject: [PATCH 57/72] Removed Markdown from user message on chat --- src/frontend/src/modals/chatModal/chatMessage/index.tsx | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/frontend/src/modals/chatModal/chatMessage/index.tsx b/src/frontend/src/modals/chatModal/chatMessage/index.tsx index 5e0f3e051..c456ad6a9 100644 --- a/src/frontend/src/modals/chatModal/chatMessage/index.tsx +++ b/src/frontend/src/modals/chatModal/chatMessage/index.tsx @@ -151,13 +151,7 @@ export default function ChatMessage({ ) : (
- - {message} - +
{message}
)} From f6fac380bbcf743493038071cb80250e0cf6bef2 Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Tue, 30 May 2023 10:50:29 -0300 Subject: [PATCH 58/72] Fixed node moving when trying to select text --- src/frontend/src/pages/FlowPage/index.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/frontend/src/pages/FlowPage/index.tsx b/src/frontend/src/pages/FlowPage/index.tsx index 9d66f06fe..caaddfe0d 100644 --- a/src/frontend/src/pages/FlowPage/index.tsx +++ b/src/frontend/src/pages/FlowPage/index.tsx @@ -341,6 +341,8 @@ export default function FlowPage({ flow }: { flow: FlowType }) { onDrop={onDrop} onNodesDelete={onDelete} onSelectionChange={onSelectionChange} + nodesDraggable={!disableCopyPaste} + panOnDrag={!disableCopyPaste} selectNodesOnDrag={false} > From a0996e3420920d943573d78879fe1ccb2cb7b182 Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Tue, 30 May 2023 11:06:20 -0300 Subject: [PATCH 59/72] Fixed line breaks not appearing on messages --- src/frontend/src/modals/chatModal/chatMessage/index.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/frontend/src/modals/chatModal/chatMessage/index.tsx b/src/frontend/src/modals/chatModal/chatMessage/index.tsx index c456ad6a9..2db84adbc 100644 --- a/src/frontend/src/modals/chatModal/chatMessage/index.tsx +++ b/src/frontend/src/modals/chatModal/chatMessage/index.tsx @@ -151,7 +151,12 @@ export default function ChatMessage({ ) : (
-
{message}
+ "), + }} + >
)} From 4ae1ef0faae59c067f777686b088383c21b3a252 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Tue, 30 May 2023 11:46:14 -0300 Subject: [PATCH 60/72] =?UTF-8?q?=F0=9F=9A=80=20feat(utils.ts):=20add=20Bi?= =?UTF-8?q?ngSearchRun=20to=20nodeIcons=20The=20BingSearchRun=20node=20is?= =?UTF-8?q?=20now=20included=20in=20the=20nodeIcons=20object.=20This=20all?= =?UTF-8?q?ows=20the=20application=20to=20display=20the=20BingSearchRun=20?= =?UTF-8?q?icon=20in=20the=20UI.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/utils.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/frontend/src/utils.ts b/src/frontend/src/utils.ts index cebf4fb02..b65c40fbc 100644 --- a/src/frontend/src/utils.ts +++ b/src/frontend/src/utils.ts @@ -154,6 +154,7 @@ export const nodeIcons: { // SerpAPIWrapper: SerperIcon, // AZLyricsLoader: AzIcon, BingSearchAPIWrapper: BingIcon, + BingSearchRun: BingIcon, Cohere: CohereIcon, CohereEmbeddings: CohereIcon, EverNoteLoader: EvernoteIcon, From bea040f31a89feb1ee3ad4f119406c48cad7cb09 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Tue, 30 May 2023 11:47:42 -0300 Subject: [PATCH 61/72] =?UTF-8?q?=F0=9F=90=9B=20fix(GenericNode):=20fix=20?= =?UTF-8?q?validation=20status=20colors=20The=20validation=20status=20colo?= =?UTF-8?q?rs=20were=20swapped,=20causing=20the=20wrong=20color=20to=20be?= =?UTF-8?q?=20displayed=20for=20the=20wrong=20status.=20This=20commit=20fi?= =?UTF-8?q?xes=20the=20issue=20by=20swapping=20the=20colors=20to=20match?= =?UTF-8?q?=20the=20correct=20status.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/frontend/src/CustomNodes/GenericNode/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index 4f5389dc3..1a7f93ae5 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -189,7 +189,7 @@ export default function GenericNode({ -
+
{chatHistory.length > 0 ? ( chatHistory.map((c, i) => ( From 588f0da625b587a0980574e3c389b7799cdbb390 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Tue, 30 May 2023 16:09:13 -0300 Subject: [PATCH 67/72] =?UTF-8?q?=F0=9F=94=A5=20refactor(base.py):=20remov?= =?UTF-8?q?e=20unnecessary=20deepcopy=20in=20Node=20class=20The=20deepcopy?= =?UTF-8?q?=20method=20was=20being=20used=20unnecessarily=20in=20the=20Nod?= =?UTF-8?q?e=20class,=20which=20was=20causing=20issues=20with=20certain=20?= =?UTF-8?q?types=20of=20objects.=20The=20method=20has=20been=20removed=20a?= =?UTF-8?q?nd=20replaced=20with=20a=20simple=20return=20statement.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/graph/base.py | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/src/backend/langflow/graph/base.py b/src/backend/langflow/graph/base.py index 187d2983e..5b64885fb 100644 --- a/src/backend/langflow/graph/base.py +++ b/src/backend/langflow/graph/base.py @@ -212,19 +212,7 @@ class Node: if not self._built or force: self._build() - #! Deepcopy is breaking for vectorstores - if self.base_type in [ - "vectorstores", - "VectorStoreRouterAgent", - "VectorStoreAgent", - "VectorStoreInfo", - ] or self.node_type in [ - "VectorStoreInfo", - "VectorStoreRouterToolkit", - "SQLDatabase", - ]: - return self._built_object - return deepcopy(self._built_object) + return self._built_object def add_edge(self, edge: "Edge") -> None: self.edges.append(edge) From 38148677f1ddd9cb9febb10ba54c8dde6cc38e26 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Tue, 30 May 2023 16:15:30 -0300 Subject: [PATCH 68/72] =?UTF-8?q?=F0=9F=90=9B=20fix(base.py):=20decrease?= =?UTF-8?q?=20default=20chunk=20size=20from=204000=20to=201000=20The=20def?= =?UTF-8?q?ault=20chunk=20size=20for=20text=20splitting=20has=20been=20dec?= =?UTF-8?q?reased=20from=204000=20to=201000=20to=20improve=20performance?= =?UTF-8?q?=20and=20reduce=20memory=20usage.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/interface/text_splitters/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/langflow/interface/text_splitters/base.py b/src/backend/langflow/interface/text_splitters/base.py index e58a5bfa6..fbacae4f9 100644 --- a/src/backend/langflow/interface/text_splitters/base.py +++ b/src/backend/langflow/interface/text_splitters/base.py @@ -39,7 +39,7 @@ class TextSplitterCreator(LangChainTypeCreator): "type": "int", "required": True, "show": True, - "value": 4000, + "value": 1000, "name": "chunk_size", "display_name": "Chunk Size", } From 2d52c684c475c65ec919d5ddfd215645d23dad8c Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Tue, 30 May 2023 16:59:38 -0300 Subject: [PATCH 69/72] =?UTF-8?q?=F0=9F=94=A5=20refactor(config.yaml):=20r?= =?UTF-8?q?emove=20HuggingFaceHub=20from=20list=20of=20supported=20models?= =?UTF-8?q?=20=F0=9F=94=A8=20refactor(loading.py):=20convert=20kwargs=20pa?= =?UTF-8?q?ssed=20as=20string=20to=20dict=20The=20HuggingFaceHub=20model?= =?UTF-8?q?=20was=20removed=20from=20the=20list=20of=20supported=20models?= =?UTF-8?q?=20in=20the=20config.yaml=20file.=20The=20model=20was=20removed?= =?UTF-8?q?=20because=20it=20is=20no=20longer=20being=20used=20in=20the=20?= =?UTF-8?q?project.=20In=20the=20loading.py=20file,=20the=20convert=5Fkwar?= =?UTF-8?q?gs=20function=20was=20added=20to=20convert=20kwargs=20passed=20?= =?UTF-8?q?as=20a=20string=20to=20a=20dictionary.=20This=20was=20done=20to?= =?UTF-8?q?=20ensure=20that=20the=20function=20can=20handle=20both=20strin?= =?UTF-8?q?g=20and=20dictionary=20inputs.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/config.yaml | 1 - src/backend/langflow/interface/loading.py | 12 +++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/backend/langflow/config.yaml b/src/backend/langflow/config.yaml index 1ff2c026b..4060d1f3e 100644 --- a/src/backend/langflow/config.yaml +++ b/src/backend/langflow/config.yaml @@ -52,7 +52,6 @@ llms: - OpenAI # - AzureOpenAI - ChatOpenAI - - HuggingFaceHub - LlamaCpp - CTransformers - Cohere diff --git a/src/backend/langflow/interface/loading.py b/src/backend/langflow/interface/loading.py index cd6898a7f..69c697823 100644 --- a/src/backend/langflow/interface/loading.py +++ b/src/backend/langflow/interface/loading.py @@ -31,7 +31,7 @@ from langflow.utils import util, validate def instantiate_class(node_type: str, base_type: str, params: Dict) -> Any: """Instantiate class from module type and key, and params""" params = convert_params_to_sets(params) - + params = convert_kwargs(params) if node_type in CUSTOM_AGENTS: custom_agent = CUSTOM_AGENTS.get(node_type) if custom_agent: @@ -50,6 +50,16 @@ def convert_params_to_sets(params): return params +def convert_kwargs(params): + # if *kwargs are passed as a string, convert to dict + # first find any key that has kwargs in it + kwargs_keys = [key for key in params.keys() if "kwargs" in key] + for key in kwargs_keys: + if isinstance(params[key], str): + params[key] = json.loads(params[key]) + return params + + def instantiate_based_on_type(class_object, base_type, node_type, params): if base_type == "agents": return instantiate_agent(class_object, params) From c1477735aaa78ca0c7b01859175868cf6c4ba5df Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Tue, 30 May 2023 17:30:00 -0300 Subject: [PATCH 70/72] =?UTF-8?q?=F0=9F=9A=9A=20chore(base.py):=20rename?= =?UTF-8?q?=20loading=20module=20to=20types=20The=20loading=20module=20was?= =?UTF-8?q?=20renamed=20to=20types=20to=20better=20reflect=20its=20content?= =?UTF-8?q?s.=20The=20import=20statement=20was=20updated=20to=20reflect=20?= =?UTF-8?q?this=20change.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/interface/agents/base.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/langflow/interface/agents/base.py b/src/backend/langflow/interface/agents/base.py index 1d23b481e..d404f845d 100644 --- a/src/backend/langflow/interface/agents/base.py +++ b/src/backend/langflow/interface/agents/base.py @@ -1,6 +1,6 @@ from typing import Dict, List, Optional -from langchain.agents import loading +from langchain.agents import types from langflow.custom.customs import get_custom_nodes from langflow.interface.agents.custom import CUSTOM_AGENTS @@ -16,7 +16,7 @@ class AgentCreator(LangChainTypeCreator): @property def type_to_loader_dict(self) -> Dict: if self.type_dict is None: - self.type_dict = loading.AGENT_TO_CLASS + self.type_dict = types.AGENT_TO_CLASS # Add JsonAgent to the list of agents for name, agent in CUSTOM_AGENTS.items(): # TODO: validate AgentType From 244eee8523e3666711639cb55ed016e1b3aa0ed5 Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Tue, 30 May 2023 17:36:59 -0300 Subject: [PATCH 71/72] =?UTF-8?q?=F0=9F=94=A5=20refactor(base.py):=20remov?= =?UTF-8?q?e=20unused=20import=20statement=20=F0=9F=9A=A8=20test(llms=5Fte?= =?UTF-8?q?mplate.py):=20comment=20out=20failing=20test=20for=20HuggingFac?= =?UTF-8?q?eHub=20template=20The=20unused=20import=20statement=20in=20base?= =?UTF-8?q?.py=20has=20been=20removed=20to=20improve=20code=20readability.?= =?UTF-8?q?=20The=20test=20for=20the=20HuggingFaceHub=20template=20has=20b?= =?UTF-8?q?een=20commented=20out=20as=20it=20is=20currently=20failing=20an?= =?UTF-8?q?d=20needs=20to=20be=20fixed.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/graph/base.py | 1 - tests/test_llms_template.py | 176 ++++++++++++++--------------- 2 files changed, 88 insertions(+), 89 deletions(-) diff --git a/src/backend/langflow/graph/base.py b/src/backend/langflow/graph/base.py index 5b64885fb..cc5e2902b 100644 --- a/src/backend/langflow/graph/base.py +++ b/src/backend/langflow/graph/base.py @@ -7,7 +7,6 @@ import contextlib import inspect import types import warnings -from copy import deepcopy from typing import Any, Dict, List, Optional from langflow.cache import base as cache_utils diff --git a/tests/test_llms_template.py b/tests/test_llms_template.py index dc0149520..ccf2f6388 100644 --- a/tests/test_llms_template.py +++ b/tests/test_llms_template.py @@ -10,96 +10,96 @@ def test_llms_settings(client: TestClient): assert set(llms.keys()) == set(settings.llms) -def test_hugging_face_hub(client: TestClient): - response = client.get("/all") - assert response.status_code == 200 - json_response = response.json() - language_models = json_response["llms"] +# def test_hugging_face_hub(client: TestClient): +# response = client.get("/all") +# assert response.status_code == 200 +# json_response = response.json() +# language_models = json_response["llms"] - model = language_models["HuggingFaceHub"] - template = model["template"] +# model = language_models["HuggingFaceHub"] +# template = model["template"] - assert template["cache"] == { - "required": False, - "placeholder": "", - "show": False, - "multiline": False, - "password": False, - "name": "cache", - "type": "bool", - "list": False, - "advanced": False, - } - assert template["verbose"] == { - "required": False, - "placeholder": "", - "show": False, - "multiline": False, - "value": False, - "password": False, - "name": "verbose", - "type": "bool", - "list": False, - "advanced": False, - } - assert template["client"] == { - "required": False, - "placeholder": "", - "show": False, - "multiline": False, - "password": False, - "name": "client", - "type": "Any", - "list": False, - "advanced": False, - } - assert template["repo_id"] == { - "required": False, - "placeholder": "", - "show": True, - "multiline": False, - "value": "gpt2", - "password": False, - "name": "repo_id", - "type": "str", - "list": False, - "advanced": False, - } - assert template["task"] == { - "required": True, - "placeholder": "", - "show": True, - "multiline": False, - "password": False, - "options": ["text-generation", "text2text-generation"], - "name": "task", - "type": "str", - "list": True, - "advanced": True, - } - assert template["model_kwargs"] == { - "required": False, - "placeholder": "", - "show": True, - "multiline": False, - "password": False, - "name": "model_kwargs", - "type": "code", - "list": False, - "advanced": True, - } - assert template["huggingfacehub_api_token"] == { - "required": False, - "placeholder": "", - "show": True, - "multiline": False, - "password": True, - "name": "huggingfacehub_api_token", - "display_name": "HuggingFace Hub API Token", - "type": "str", - "list": False, - "advanced": False, - } +# assert template["cache"] == { +# "required": False, +# "placeholder": "", +# "show": False, +# "multiline": False, +# "password": False, +# "name": "cache", +# "type": "bool", +# "list": False, +# "advanced": False, +# } +# assert template["verbose"] == { +# "required": False, +# "placeholder": "", +# "show": False, +# "multiline": False, +# "value": False, +# "password": False, +# "name": "verbose", +# "type": "bool", +# "list": False, +# "advanced": False, +# } +# assert template["client"] == { +# "required": False, +# "placeholder": "", +# "show": False, +# "multiline": False, +# "password": False, +# "name": "client", +# "type": "Any", +# "list": False, +# "advanced": False, +# } +# assert template["repo_id"] == { +# "required": False, +# "placeholder": "", +# "show": True, +# "multiline": False, +# "value": "gpt2", +# "password": False, +# "name": "repo_id", +# "type": "str", +# "list": False, +# "advanced": False, +# } +# assert template["task"] == { +# "required": True, +# "placeholder": "", +# "show": True, +# "multiline": False, +# "password": False, +# "options": ["text-generation", "text2text-generation"], +# "name": "task", +# "type": "str", +# "list": True, +# "advanced": True, +# } +# assert template["model_kwargs"] == { +# "required": False, +# "placeholder": "", +# "show": True, +# "multiline": False, +# "password": False, +# "name": "model_kwargs", +# "type": "code", +# "list": False, +# "advanced": True, +# } +# assert template["huggingfacehub_api_token"] == { +# "required": False, +# "placeholder": "", +# "show": True, +# "multiline": False, +# "password": True, +# "name": "huggingfacehub_api_token", +# "display_name": "HuggingFace Hub API Token", +# "type": "str", +# "list": False, +# "advanced": False, +# } def test_openai(client: TestClient): From 38d0c9b170a6bb58e147ba642375d83482d024ca Mon Sep 17 00:00:00 2001 From: Gabriel Almeida Date: Tue, 30 May 2023 17:40:09 -0300 Subject: [PATCH 72/72] =?UTF-8?q?=F0=9F=94=BC=20chore(pyproject.toml):=20u?= =?UTF-8?q?pdate=20langchain=20package=20version=20to=200.0.186=20?= =?UTF-8?q?=F0=9F=94=BC=20chore(pyproject.toml):=20update=20package=20vers?= =?UTF-8?q?ion=20to=200.0.79=20The=20langchain=20package=20version=20has?= =?UTF-8?q?=20been=20updated=20to=200.0.186=20to=20include=20the=20latest?= =?UTF-8?q?=20changes=20and=20improvements.=20The=20package=20version=20ha?= =?UTF-8?q?s=20also=20been=20updated=20to=200.0.79=20to=20reflect=20the=20?= =?UTF-8?q?changes=20made=20to=20the=20dependencies.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- poetry.lock | 390 +++++++++++++++++++++++++++++++++++++++---------- pyproject.toml | 4 +- 2 files changed, 317 insertions(+), 77 deletions(-) diff --git a/poetry.lock b/poetry.lock index f08caeada..a414aab16 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,9 +1,10 @@ -# This file is automatically @generated by Poetry 1.5.0 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.4.0 and should not be changed by hand. [[package]] name = "aiofiles" version = "23.1.0" description = "File support for asyncio." +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -15,6 +16,7 @@ files = [ name = "aiohttp" version = "3.8.4" description = "Async http client/server framework (asyncio)" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -123,6 +125,7 @@ speedups = ["Brotli", "aiodns", "cchardet"] name = "aiosignal" version = "1.3.1" description = "aiosignal: a list of registered asynchronous callbacks" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -137,6 +140,7 @@ frozenlist = ">=1.1.0" name = "aiostream" version = "0.4.5" description = "Generator-based operators for asynchronous iteration" +category = "main" optional = false python-versions = "*" files = [ @@ -148,6 +152,7 @@ files = [ name = "anyio" version = "3.7.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -169,6 +174,7 @@ trio = ["trio (<0.22)"] name = "appnope" version = "0.1.3" description = "Disable App Nap on macOS >= 10.9" +category = "dev" optional = false python-versions = "*" files = [ @@ -180,6 +186,7 @@ files = [ name = "argilla" version = "1.3.2" description = "Open-source tool for exploring, labeling, and monitoring data for NLP projects." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -207,6 +214,7 @@ server = ["Deprecated (>=1.2.0,<1.3.0)", "PyYAML (>=5.4.1,<6.1.0)", "aiofiles (> name = "asgiref" version = "3.7.2" description = "ASGI specs, helper code, and adapters" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -224,6 +232,7 @@ tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] name = "asttokens" version = "2.2.1" description = "Annotate AST trees with source code positions" +category = "dev" optional = false python-versions = "*" files = [ @@ -241,6 +250,7 @@ test = ["astroid", "pytest"] name = "async-timeout" version = "4.0.2" description = "Timeout context manager for asyncio programs" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -252,6 +262,7 @@ files = [ name = "attrs" version = "23.1.0" description = "Classes Without Boilerplate" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -270,6 +281,7 @@ tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pyte name = "authlib" version = "1.2.0" description = "The ultimate Python library in building OAuth and OpenID Connect servers and clients." +category = "main" optional = false python-versions = "*" files = [ @@ -284,6 +296,7 @@ cryptography = ">=3.2" name = "backcall" version = "0.2.0" description = "Specifications for callback functions passed in to an API" +category = "dev" optional = false python-versions = "*" files = [ @@ -295,6 +308,7 @@ files = [ name = "backoff" version = "2.2.1" description = "Function decoration for backoff and retry" +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -306,6 +320,7 @@ files = [ name = "beautifulsoup4" version = "4.12.2" description = "Screen-scraping library" +category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -324,6 +339,7 @@ lxml = ["lxml"] name = "black" version = "23.3.0" description = "The uncompromising code formatter." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -373,6 +389,7 @@ uvloop = ["uvloop (>=0.15.2)"] name = "cachetools" version = "5.3.1" description = "Extensible memoizing collections and decorators" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -384,6 +401,7 @@ files = [ name = "certifi" version = "2023.5.7" description = "Python package for providing Mozilla's CA Bundle." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -395,6 +413,7 @@ files = [ name = "cffi" version = "1.15.1" description = "Foreign Function Interface for Python calling C code." +category = "main" optional = false python-versions = "*" files = [ @@ -471,6 +490,7 @@ pycparser = "*" name = "chardet" version = "5.1.0" description = "Universal encoding detector for Python 3" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -482,6 +502,7 @@ files = [ name = "charset-normalizer" version = "3.1.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -566,6 +587,7 @@ files = [ name = "chromadb" version = "0.3.25" description = "Chroma." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -594,6 +616,7 @@ uvicorn = {version = ">=0.18.3", extras = ["standard"]} name = "click" version = "8.1.3" description = "Composable command line interface toolkit" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -608,6 +631,7 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "clickhouse-connect" version = "0.5.25" description = "ClickHouse core driver, SqlAlchemy, and Superset libraries" +category = "main" optional = false python-versions = "~=3.7" files = [ @@ -697,6 +721,7 @@ superset = ["apache-superset (>=1.4.1)"] name = "cohere" version = "4.6.0" description = "" +category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -713,6 +738,7 @@ requests = ">=2.0,<3.0" name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -724,6 +750,7 @@ files = [ name = "coloredlogs" version = "15.0.1" description = "Colored terminal output for Python's logging module" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -741,6 +768,7 @@ cron = ["capturer (>=2.4)"] name = "comm" version = "0.1.3" description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -758,62 +786,72 @@ typing = ["mypy (>=0.990)"] [[package]] name = "coverage" -version = "7.2.6" +version = "7.2.7" description = "Code coverage measurement for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "coverage-7.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:496b86f1fc9c81a1cd53d8842ef712e950a4611bba0c42d33366a7b91ba969ec"}, - {file = "coverage-7.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fbe6e8c0a9a7193ba10ee52977d4d5e7652957c1f56ccefed0701db8801a2a3b"}, - {file = "coverage-7.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76d06b721c2550c01a60e5d3093f417168658fb454e5dfd9a23570e9bffe39a1"}, - {file = "coverage-7.2.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:77a04b84d01f0e12c66f16e69e92616442dc675bbe51b90bfb074b1e5d1c7fbd"}, - {file = "coverage-7.2.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35db06450272473eab4449e9c2ad9bc6a0a68dab8e81a0eae6b50d9c2838767e"}, - {file = "coverage-7.2.6-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6727a0d929ff0028b1ed8b3e7f8701670b1d7032f219110b55476bb60c390bfb"}, - {file = "coverage-7.2.6-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:aac1d5fdc5378f6bac2c0c7ebe7635a6809f5b4376f6cf5d43243c1917a67087"}, - {file = "coverage-7.2.6-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1c9e4a5eb1bbc3675ee57bc31f8eea4cd7fb0cbcbe4912cf1cb2bf3b754f4a80"}, - {file = "coverage-7.2.6-cp310-cp310-win32.whl", hash = "sha256:71f739f97f5f80627f1fee2331e63261355fd1e9a9cce0016394b6707ac3f4ec"}, - {file = "coverage-7.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:fde5c7a9d9864d3e07992f66767a9817f24324f354caa3d8129735a3dc74f126"}, - {file = "coverage-7.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bc7b667f8654376e9353dd93e55e12ce2a59fb6d8e29fce40de682273425e044"}, - {file = "coverage-7.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:697f4742aa3f26c107ddcb2b1784a74fe40180014edbd9adaa574eac0529914c"}, - {file = "coverage-7.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:541280dde49ce74a4262c5e395b48ea1207e78454788887118c421cb4ffbfcac"}, - {file = "coverage-7.2.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e7f1a8328eeec34c54f1d5968a708b50fc38d31e62ca8b0560e84a968fbf9a9"}, - {file = "coverage-7.2.6-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bbd58eb5a2371bf160590f4262109f66b6043b0b991930693134cb617bc0169"}, - {file = "coverage-7.2.6-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ae82c5f168d2a39a5d69a12a69d4dc23837a43cf2ca99be60dfe59996ea6b113"}, - {file = "coverage-7.2.6-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:f5440cdaf3099e7ab17a5a7065aed59aff8c8b079597b61c1f8be6f32fe60636"}, - {file = "coverage-7.2.6-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a6f03f87fea579d55e0b690d28f5042ec1368650466520fbc400e7aeaf09e995"}, - {file = "coverage-7.2.6-cp311-cp311-win32.whl", hash = "sha256:dc4d5187ef4d53e0d4c8eaf530233685667844c5fb0b855fea71ae659017854b"}, - {file = "coverage-7.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:c93d52c3dc7b9c65e39473704988602300e3cc1bad08b5ab5b03ca98bbbc68c1"}, - {file = "coverage-7.2.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:42c692b55a647a832025a4c048007034fe77b162b566ad537ce65ad824b12a84"}, - {file = "coverage-7.2.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7786b2fa7809bf835f830779ad285215a04da76293164bb6745796873f0942d"}, - {file = "coverage-7.2.6-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25bad4196104761bc26b1dae9b57383826542ec689ff0042f7f4f4dd7a815cba"}, - {file = "coverage-7.2.6-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2692306d3d4cb32d2cceed1e47cebd6b1d2565c993d6d2eda8e6e6adf53301e6"}, - {file = "coverage-7.2.6-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:392154d09bd4473b9d11351ab5d63391f3d5d24d752f27b3be7498b0ee2b5226"}, - {file = "coverage-7.2.6-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:fa079995432037b5e2ef5ddbb270bcd2ded9f52b8e191a5de11fe59a00ea30d8"}, - {file = "coverage-7.2.6-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d712cefff15c712329113b01088ba71bbcef0f7ea58478ca0bbec63a824844cb"}, - {file = "coverage-7.2.6-cp37-cp37m-win32.whl", hash = "sha256:004948e296149644d208964300cb3d98affc5211e9e490e9979af4030b0d6473"}, - {file = "coverage-7.2.6-cp37-cp37m-win_amd64.whl", hash = "sha256:c1d7a31603c3483ac49c1726723b0934f88f2c011c660e6471e7bd735c2fa110"}, - {file = "coverage-7.2.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3436927d1794fa6763b89b60c896f9e3bd53212001026ebc9080d23f0c2733c1"}, - {file = "coverage-7.2.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44c9b9f1a245f3d0d202b1a8fa666a80b5ecbe4ad5d0859c0fb16a52d9763224"}, - {file = "coverage-7.2.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e3783a286d5a93a2921396d50ce45a909aa8f13eee964465012f110f0cbb611"}, - {file = "coverage-7.2.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3cff6980fe7100242170092bb40d2b1cdad79502cd532fd26b12a2b8a5f9aee0"}, - {file = "coverage-7.2.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c534431153caffc7c495c3eddf7e6a6033e7f81d78385b4e41611b51e8870446"}, - {file = "coverage-7.2.6-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3062fd5c62df988cea9f2972c593f77fed1182bfddc5a3b12b1e606cb7aba99e"}, - {file = "coverage-7.2.6-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6284a2005e4f8061c58c814b1600ad0074ccb0289fe61ea709655c5969877b70"}, - {file = "coverage-7.2.6-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:97729e6828643f168a2a3f07848e1b1b94a366b13a9f5aba5484c2215724edc8"}, - {file = "coverage-7.2.6-cp38-cp38-win32.whl", hash = "sha256:dc11b42fa61ff1e788dd095726a0aed6aad9c03d5c5984b54cb9e1e67b276aa5"}, - {file = "coverage-7.2.6-cp38-cp38-win_amd64.whl", hash = "sha256:cbcc874f454ee51f158afd604a315f30c0e31dff1d5d5bf499fc529229d964dd"}, - {file = "coverage-7.2.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d3cacc6a665221108ecdf90517a8028d07a2783df3417d12dcfef1c517e67478"}, - {file = "coverage-7.2.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:272ab31228a9df857ab5df5d67936d8861464dc89c5d3fab35132626e9369379"}, - {file = "coverage-7.2.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a8723ccec4e564d4b9a79923246f7b9a8de4ec55fa03ec4ec804459dade3c4f"}, - {file = "coverage-7.2.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5906f6a84b47f995cd1bf0aca1c72d591c55ee955f98074e93660d64dfc66eb9"}, - {file = "coverage-7.2.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:52c139b7ab3f0b15f9aad0a3fedef5a1f8c0b2bdc291d88639ca2c97d3682416"}, - {file = "coverage-7.2.6-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a5ffd45c6b93c23a8507e2f436983015c6457aa832496b6a095505ca2f63e8f1"}, - {file = "coverage-7.2.6-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:4f3c7c19581d471af0e9cb49d928172cd8492cd78a2b7a4e82345d33662929bb"}, - {file = "coverage-7.2.6-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2e8c0e79820cdd67978e1120983786422d279e07a381dbf89d03bbb23ec670a6"}, - {file = "coverage-7.2.6-cp39-cp39-win32.whl", hash = "sha256:13cde6bb0e58fb67d09e2f373de3899d1d1e866c5a9ff05d93615f2f54fbd2bb"}, - {file = "coverage-7.2.6-cp39-cp39-win_amd64.whl", hash = "sha256:6b9f64526286255735847aed0221b189486e0b9ed943446936e41b7e44b08783"}, - {file = "coverage-7.2.6-pp37.pp38.pp39-none-any.whl", hash = "sha256:6babcbf1e66e46052442f10833cfc4a0d3554d8276aa37af8531a83ed3c1a01d"}, - {file = "coverage-7.2.6.tar.gz", hash = "sha256:2025f913f2edb0272ef15d00b1f335ff8908c921c8eb2013536fcaf61f5a683d"}, + {file = "coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8"}, + {file = "coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d9405291c6928619403db1d10bd07888888ec1abcbd9748fdaa971d7d661b2"}, + {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ebba1cd308ef115925421d3e6a586e655ca5a77b5bf41e02eb0e4562a111f2d1"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb017fd1b2603ef59e374ba2063f593abe0fc45f2ad9abdde5b4d83bd922a353"}, + {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62a5c7dad11015c66fbb9d881bc4caa5b12f16292f857842d9d1871595f4495"}, + {file = "coverage-7.2.7-cp310-cp310-win32.whl", hash = "sha256:ee57190f24fba796e36bb6d3aa8a8783c643d8fa9760c89f7a98ab5455fbf818"}, + {file = "coverage-7.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:f75f7168ab25dd93110c8a8117a22450c19976afbc44234cbf71481094c1b850"}, + {file = "coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f"}, + {file = "coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52edc1a60c0d34afa421c9c37078817b2e67a392cab17d97283b64c5833f427f"}, + {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:afb17f84d56068a7c29f5fa37bfd38d5aba69e3304af08ee94da8ed5b0865833"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:48c19d2159d433ccc99e729ceae7d5293fbffa0bdb94952d3579983d1c8c9d97"}, + {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e1f928eaf5469c11e886fe0885ad2bf1ec606434e79842a879277895a50942a"}, + {file = "coverage-7.2.7-cp311-cp311-win32.whl", hash = "sha256:33d6d3ea29d5b3a1a632b3c4e4f4ecae24ef170b0b9ee493883f2df10039959a"}, + {file = "coverage-7.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:5b7540161790b2f28143191f5f8ec02fb132660ff175b7747b95dcb77ac26562"}, + {file = "coverage-7.2.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f2f67fe12b22cd130d34d0ef79206061bfb5eda52feb6ce0dba0644e20a03cf4"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a342242fe22407f3c17f4b499276a02b01e80f861f1682ad1d95b04018e0c0d4"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:171717c7cb6b453aebac9a2ef603699da237f341b38eebfee9be75d27dc38e01"}, + {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49969a9f7ffa086d973d91cec8d2e31080436ef0fb4a359cae927e742abfaaa6"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b46517c02ccd08092f4fa99f24c3b83d8f92f739b4657b0f146246a0ca6a831d"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a3d33a6b3eae87ceaefa91ffdc130b5e8536182cd6dfdbfc1aa56b46ff8c86de"}, + {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:976b9c42fb2a43ebf304fa7d4a310e5f16cc99992f33eced91ef6f908bd8f33d"}, + {file = "coverage-7.2.7-cp312-cp312-win32.whl", hash = "sha256:8de8bb0e5ad103888d65abef8bca41ab93721647590a3f740100cd65c3b00511"}, + {file = "coverage-7.2.7-cp312-cp312-win_amd64.whl", hash = "sha256:9e31cb64d7de6b6f09702bb27c02d1904b3aebfca610c12772452c4e6c21a0d3"}, + {file = "coverage-7.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58c2ccc2f00ecb51253cbe5d8d7122a34590fac9646a960d1430d5b15321d95f"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d22656368f0e6189e24722214ed8d66b8022db19d182927b9a248a2a8a2f67eb"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a895fcc7b15c3fc72beb43cdcbdf0ddb7d2ebc959edac9cef390b0d14f39f8a9"}, + {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84606b74eb7de6ff581a7915e2dab7a28a0517fbe1c9239eb227e1354064dcd"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0a5f9e1dbd7fbe30196578ca36f3fba75376fb99888c395c5880b355e2875f8a"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:419bfd2caae268623dd469eff96d510a920c90928b60f2073d79f8fe2bbc5959"}, + {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2aee274c46590717f38ae5e4650988d1af340fe06167546cc32fe2f58ed05b02"}, + {file = "coverage-7.2.7-cp37-cp37m-win32.whl", hash = "sha256:61b9a528fb348373c433e8966535074b802c7a5d7f23c4f421e6c6e2f1697a6f"}, + {file = "coverage-7.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:b1c546aca0ca4d028901d825015dc8e4d56aac4b541877690eb76490f1dc8ed0"}, + {file = "coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5"}, + {file = "coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e9d683426464e4a252bf70c3498756055016f99ddaec3774bf368e76bbe02b6"}, + {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7aa5f8a41217360e600da646004f878250a0d6738bcdc11a0a39928d7dc2050"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8fa03bce9bfbeeef9f3b160a8bed39a221d82308b4152b27d82d8daa7041fee5"}, + {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:245167dd26180ab4c91d5e1496a30be4cd721a5cf2abf52974f965f10f11419f"}, + {file = "coverage-7.2.7-cp38-cp38-win32.whl", hash = "sha256:d2c2db7fd82e9b72937969bceac4d6ca89660db0a0967614ce2481e81a0b771e"}, + {file = "coverage-7.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:2e07b54284e381531c87f785f613b833569c14ecacdcb85d56b25c4622c16c3c"}, + {file = "coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9"}, + {file = "coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6951407391b639504e3b3be51b7ba5f3528adbf1a8ac3302b687ecababf929e"}, + {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b29019c76039dc3c0fd815c41392a044ce555d9bcdd38b0fb60fb4cd8e475ba9"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81c13a1fc7468c40f13420732805a4c38a105d89848b7c10af65a90beff25250"}, + {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:975d70ab7e3c80a3fe86001d8751f6778905ec723f5b110aed1e450da9d4b7f2"}, + {file = "coverage-7.2.7-cp39-cp39-win32.whl", hash = "sha256:7ee7d9d4822c8acc74a5e26c50604dff824710bc8de424904c0982e25c39c6cb"}, + {file = "coverage-7.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:eb393e5ebc85245347950143969b241d08b52b88a3dc39479822e073a1a8eb27"}, + {file = "coverage-7.2.7-pp37.pp38.pp39-none-any.whl", hash = "sha256:b7b4c971f05e6ae490fef852c218b0e79d4e52f79ef0c8475566584a8fb3e01d"}, + {file = "coverage-7.2.7.tar.gz", hash = "sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59"}, ] [package.dependencies] @@ -826,6 +864,7 @@ toml = ["tomli"] name = "cryptography" version = "40.0.2" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -867,6 +906,7 @@ tox = ["tox"] name = "ctransformers" version = "0.2.2" description = "Python bindings for the Transformer models implemented in C/C++ using GGML library." +category = "main" optional = false python-versions = "*" files = [ @@ -884,6 +924,7 @@ tests = ["pytest"] name = "dataclasses-json" version = "0.5.7" description = "Easily serialize dataclasses to and from JSON" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -903,6 +944,7 @@ dev = ["flake8", "hypothesis", "ipython", "mypy (>=0.710)", "portray", "pytest ( name = "debugpy" version = "1.6.7" description = "An implementation of the Debug Adapter Protocol for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -930,6 +972,7 @@ files = [ name = "decorator" version = "5.1.1" description = "Decorators for Humans" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -941,6 +984,7 @@ files = [ name = "deprecated" version = "1.2.14" description = "Python @deprecated decorator to deprecate old python classes, functions or methods." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -958,6 +1002,7 @@ dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"] name = "dill" version = "0.3.6" description = "serialize all of python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -972,6 +1017,7 @@ graph = ["objgraph (>=1.7.2)"] name = "docarray" version = "0.21.0" description = "The data structure for unstructured data" +category = "main" optional = false python-versions = "*" files = [ @@ -1000,6 +1046,7 @@ weaviate = ["weaviate-client (>=3.9.0,<3.10.0)"] name = "docker" version = "6.1.2" description = "A Python library for the Docker Engine API." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1021,6 +1068,7 @@ ssh = ["paramiko (>=2.4.3)"] name = "docstring-parser" version = "0.15" description = "Parse Python docstrings in reST, Google and Numpydoc format" +category = "main" optional = false python-versions = ">=3.6,<4.0" files = [ @@ -1032,6 +1080,7 @@ files = [ name = "duckdb" version = "0.8.0" description = "DuckDB embedded database" +category = "main" optional = false python-versions = "*" files = [ @@ -1047,9 +1096,7 @@ files = [ {file = "duckdb-0.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b2707096d6df4321044fcde2c9f04da632d11a8be60957fd09d49a42fae71a29"}, {file = "duckdb-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b27df1b70ae74d2c88efb5ffca8490954fdc678099509a9c4404ca30acc53426"}, {file = "duckdb-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75a97c800271b52dd0f37696d074c50576dcb4b2750b6115932a98696a268070"}, - {file = "duckdb-0.8.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:804cac261a5e016506a6d67838a65d19b06a237f7949f1704f0e800eb708286a"}, {file = "duckdb-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6b9abca7fa6713e1d031c18485343b4de99742c7e1b85c10718aa2f31a4e2c6"}, - {file = "duckdb-0.8.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:51aa6d606d49072abcfeb3be209eb559ac94c1b5e70f58ac3adbb94aca9cd69f"}, {file = "duckdb-0.8.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7c8dc769aaf2be0a1c57995ca657e5b92c1c56fc8437edb720ca6cab571adf14"}, {file = "duckdb-0.8.0-cp311-cp311-win32.whl", hash = "sha256:c4207d18b42387c4a035846d8878eb967070198be8ac26fd77797ce320d1a400"}, {file = "duckdb-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:0c392257547c20794c3072fcbca99a49ef0a49974005d755e93893e2b4875267"}, @@ -1088,6 +1135,7 @@ files = [ name = "ecdsa" version = "0.18.0" description = "ECDSA cryptographic signature library (pure python)" +category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1106,6 +1154,7 @@ gmpy2 = ["gmpy2"] name = "et-xmlfile" version = "1.1.0" description = "An implementation of lxml.xmlfile for the standard library" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1117,6 +1166,7 @@ files = [ name = "exceptiongroup" version = "1.1.1" description = "Backport of PEP 654 (exception groups)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1131,6 +1181,7 @@ test = ["pytest (>=6)"] name = "executing" version = "1.2.0" description = "Get the currently executing AST node of a frame, and other information" +category = "dev" optional = false python-versions = "*" files = [ @@ -1145,6 +1196,7 @@ tests = ["asttokens", "littleutils", "pytest", "rich"] name = "fake-useragent" version = "1.1.3" description = "Up-to-date simple useragent faker with real world database" +category = "main" optional = false python-versions = "*" files = [ @@ -1159,6 +1211,7 @@ importlib-resources = {version = ">=5.0", markers = "python_version < \"3.10\""} name = "fastapi" version = "0.95.2" description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1180,6 +1233,7 @@ test = ["anyio[trio] (>=3.2.1,<4.0.0)", "black (==23.1.0)", "coverage[toml] (>=6 name = "filelock" version = "3.12.0" description = "A platform independent file lock." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1195,6 +1249,7 @@ testing = ["covdefaults (>=2.3)", "coverage (>=7.2.3)", "diff-cover (>=7.5)", "p name = "flatbuffers" version = "23.5.26" description = "The FlatBuffers serialization format for Python" +category = "main" optional = false python-versions = "*" files = [ @@ -1206,6 +1261,7 @@ files = [ name = "frozenlist" version = "1.3.3" description = "A list-like structure which implements collections.abc.MutableSequence" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1289,6 +1345,7 @@ files = [ name = "google-api-core" version = "2.11.0" description = "Google API client core library" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1309,17 +1366,18 @@ grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0dev)"] [[package]] name = "google-api-python-client" -version = "2.87.0" +version = "2.88.0" description = "Google API Client Library for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "google-api-python-client-2.87.0.tar.gz", hash = "sha256:bbea5869877c822d12d318943833d988497b3a18b9ca2386967118074db676f3"}, - {file = "google_api_python_client-2.87.0-py2.py3-none-any.whl", hash = "sha256:29b52232b159be72a79890b6d9f703cf6d8ebbec0ef6371c5670c1abeca5a9f9"}, + {file = "google-api-python-client-2.88.0.tar.gz", hash = "sha256:37068453f79ea28e5394a8fe20a4ba620594e7f8541068bea2e844dacdcc9d33"}, + {file = "google_api_python_client-2.88.0-py2.py3-none-any.whl", hash = "sha256:d003008400a779524ea21b5a3ddc6fc59327d401fb8c37c466d413694c279cae"}, ] [package.dependencies] -google-api-core = ">=1.31.5,<2.0.dev0 || >2.3.0,<3.0.0dev" +google-api-core = ">=1.31.5,<2.0.0 || >2.3.0,<3.0.0dev" google-auth = ">=1.19.0,<3.0.0dev" google-auth-httplib2 = ">=0.1.0" httplib2 = ">=0.15.0,<1dev" @@ -1329,6 +1387,7 @@ uritemplate = ">=3.0.1,<5" name = "google-auth" version = "2.19.0" description = "Google Authentication Library" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1354,6 +1413,7 @@ requests = ["requests (>=2.20.0,<3.0.0dev)"] name = "google-auth-httplib2" version = "0.1.0" description = "Google Authentication Library: httplib2 transport" +category = "main" optional = false python-versions = "*" files = [ @@ -1370,6 +1430,7 @@ six = "*" name = "google-search-results" version = "2.4.2" description = "Scrape and search localized results from Google, Bing, Baidu, Yahoo, Yandex, Ebay, Homedepot, youtube at scale using SerpApi.com" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1383,6 +1444,7 @@ requests = "*" name = "googleapis-common-protos" version = "1.59.0" description = "Common protobufs used in Google APIs" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1400,6 +1462,7 @@ grpc = ["grpcio (>=1.44.0,<2.0.0dev)"] name = "greenlet" version = "2.0.2" description = "Lightweight in-process concurrent programming" +category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" files = [ @@ -1473,6 +1536,7 @@ test = ["objgraph", "psutil"] name = "grpcio" version = "1.47.5" description = "HTTP/2-based RPC framework" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1534,6 +1598,7 @@ protobuf = ["grpcio-tools (>=1.47.5)"] name = "grpcio-health-checking" version = "1.47.5" description = "Standard Health Checking Service for gRPC" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1549,6 +1614,7 @@ protobuf = ">=3.12.0" name = "grpcio-reflection" version = "1.47.5" description = "Standard Protobuf Reflection Service for gRPC" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1564,6 +1630,7 @@ protobuf = ">=3.12.0" name = "grpcio-tools" version = "1.47.5" description = "Protobuf code generator for gRPC" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1624,6 +1691,7 @@ setuptools = "*" name = "gunicorn" version = "20.1.0" description = "WSGI HTTP Server for UNIX" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1644,6 +1712,7 @@ tornado = ["tornado (>=0.2)"] name = "h11" version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1655,6 +1724,7 @@ files = [ name = "h2" version = "4.1.0" description = "HTTP/2 State-Machine based protocol implementation" +category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -1670,6 +1740,7 @@ hyperframe = ">=6.0,<7" name = "hnswlib" version = "0.7.0" description = "hnswlib" +category = "main" optional = false python-versions = "*" files = [ @@ -1683,6 +1754,7 @@ numpy = "*" name = "hpack" version = "4.0.0" description = "Pure-Python HPACK header compression" +category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -1694,6 +1766,7 @@ files = [ name = "httpcore" version = "0.16.3" description = "A minimal low-level HTTP client." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1705,16 +1778,17 @@ files = [ anyio = ">=3.0,<5.0" certifi = "*" h11 = ">=0.13,<0.15" -sniffio = "==1.*" +sniffio = ">=1.0.0,<2.0.0" [package.extras] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (==1.*)"] +socks = ["socksio (>=1.0.0,<2.0.0)"] [[package]] name = "httplib2" version = "0.22.0" description = "A comprehensive HTTP client library." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1729,6 +1803,7 @@ pyparsing = {version = ">=2.4.2,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.0.2 || >3.0 name = "httptools" version = "0.5.0" description = "A collection of framework independent HTTP protocol utils." +category = "main" optional = false python-versions = ">=3.5.0" files = [ @@ -1782,6 +1857,7 @@ test = ["Cython (>=0.29.24,<0.30.0)"] name = "httpx" version = "0.23.3" description = "The next generation HTTP client." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1798,14 +1874,15 @@ sniffio = "*" [package.extras] brotli = ["brotli", "brotlicffi"] -cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<13)"] +cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<13)"] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (==1.*)"] +socks = ["socksio (>=1.0.0,<2.0.0)"] [[package]] name = "huggingface-hub" version = "0.13.4" description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -1836,6 +1913,7 @@ typing = ["types-PyYAML", "types-requests", "types-simplejson", "types-toml", "t name = "humanfriendly" version = "10.0" description = "Human friendly output for text interfaces using Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1850,6 +1928,7 @@ pyreadline3 = {version = "*", markers = "sys_platform == \"win32\" and python_ve name = "hyperframe" version = "6.0.1" description = "HTTP/2 framing layer for Python" +category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -1861,6 +1940,7 @@ files = [ name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1872,6 +1952,7 @@ files = [ name = "importlib-metadata" version = "6.0.1" description = "Read metadata from Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1891,6 +1972,7 @@ testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packag name = "importlib-resources" version = "5.12.0" description = "Read resources from Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1909,6 +1991,7 @@ testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-chec name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1920,6 +2003,7 @@ files = [ name = "ipykernel" version = "6.23.1" description = "IPython Kernel for Jupyter" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -1933,7 +2017,7 @@ comm = ">=0.1.1" debugpy = ">=1.6.5" ipython = ">=7.23.1" jupyter-client = ">=6.1.12" -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" matplotlib-inline = ">=0.1" nest-asyncio = "*" packaging = "*" @@ -1953,6 +2037,7 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio" name = "ipython" version = "8.13.2" description = "IPython: Productive Interactive Computing" +category = "dev" optional = false python-versions = ">=3.9" files = [ @@ -1992,6 +2077,7 @@ test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pa name = "jcloud" version = "0.2.10" description = "Simplify deploying and managing Jina projects on Jina Cloud" +category = "main" optional = false python-versions = "*" files = [ @@ -2014,6 +2100,7 @@ test = ["black (==22.3.0)", "jina (>=3.7.0)", "mock", "pytest", "pytest-asyncio" name = "jedi" version = "0.18.2" description = "An autocompletion tool for Python that can be used for text editors." +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2033,6 +2120,7 @@ testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] name = "jina" version = "3.15.2" description = "Build multimodal AI services via cloud native technologies · Neural Search · Generative AI · MLOps" +category = "main" optional = false python-versions = "*" files = [ @@ -2150,6 +2238,7 @@ websockets = ["websockets"] name = "jina-hubble-sdk" version = "0.38.0" description = "SDK for Hubble API at Jina AI." +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -2175,6 +2264,7 @@ full = ["aiohttp", "black (==22.3.0)", "docker", "filelock", "flake8 (==4.0.1)", name = "jinja2" version = "3.1.2" description = "A very fast and expressive template engine." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2192,6 +2282,7 @@ i18n = ["Babel (>=2.7)"] name = "joblib" version = "1.2.0" description = "Lightweight pipelining with Python functions" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2203,6 +2294,7 @@ files = [ name = "jupyter-client" version = "8.2.0" description = "Jupyter protocol implementation and client libraries" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2212,7 +2304,7 @@ files = [ [package.dependencies] importlib-metadata = {version = ">=4.8.3", markers = "python_version < \"3.10\""} -jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" python-dateutil = ">=2.8.2" pyzmq = ">=23.0" tornado = ">=6.2" @@ -2226,6 +2318,7 @@ test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pyt name = "jupyter-core" version = "5.3.0" description = "Jupyter core package. A base package on which Jupyter projects rely." +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -2244,13 +2337,14 @@ test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] [[package]] name = "langchain" -version = "0.0.184" +version = "0.0.186" description = "Building applications with LLMs through composability" +category = "main" optional = false python-versions = ">=3.8.1,<4.0" files = [ - {file = "langchain-0.0.184-py3-none-any.whl", hash = "sha256:819513b3acbd32ad24a55e48e0cabc8f60e09bb4293ca5b655d18e6d24353940"}, - {file = "langchain-0.0.184.tar.gz", hash = "sha256:e02a73b5cac889e761fc11c12297d4479a9727287c51a251ca2669a8a79ae348"}, + {file = "langchain-0.0.186-py3-none-any.whl", hash = "sha256:c53ac8943351602dbde84759d32d57fe2e6599279576935a004688e43ee8ffbf"}, + {file = "langchain-0.0.186.tar.gz", hash = "sha256:36d6d3872727a6f7d6db1b05b13caac35fed19a0d395d2264ed82aae53cfddfd"}, ] [package.dependencies] @@ -2267,12 +2361,12 @@ SQLAlchemy = ">=1.4,<3" tenacity = ">=8.1.0,<9.0.0" [package.extras] -all = ["O365 (>=2.0.26,<3.0.0)", "aleph-alpha-client (>=2.15.0,<3.0.0)", "anthropic (>=0.2.6,<0.3.0)", "arxiv (>=1.4,<2.0)", "atlassian-python-api (>=3.36.0,<4.0.0)", "azure-ai-formrecognizer (>=3.2.1,<4.0.0)", "azure-ai-vision (>=0.11.1b1,<0.12.0)", "azure-cognitiveservices-speech (>=1.28.0,<2.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "beautifulsoup4 (>=4,<5)", "clickhouse-connect (>=0.5.14,<0.6.0)", "cohere (>=3,<4)", "deeplake (>=3.3.0,<4.0.0)", "docarray[hnswlib] (>=0.32.0,<0.33.0)", "duckduckgo-search (>=2.8.6,<3.0.0)", "elasticsearch (>=8,<9)", "faiss-cpu (>=1,<2)", "google-api-python-client (==2.70.0)", "google-search-results (>=2,<3)", "gptcache (>=0.1.7)", "html2text (>=2020.1.16,<2021.0.0)", "huggingface_hub (>=0,<1)", "jina (>=3.14,<4.0)", "jinja2 (>=3,<4)", "jq (>=1.4.1,<2.0.0)", "lancedb (>=0.1,<0.2)", "langkit (>=0.0.1.dev3,<0.1.0)", "lark (>=1.1.5,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "manifest-ml (>=0.0.1,<0.0.2)", "momento (>=1.5.0,<2.0.0)", "neo4j (>=5.8.1,<6.0.0)", "networkx (>=2.6.3,<3.0.0)", "nlpcloud (>=1,<2)", "nltk (>=3,<4)", "nomic (>=1.0.43,<2.0.0)", "openai (>=0,<1)", "openlm (>=0.0.5,<0.0.6)", "opensearch-py (>=2.0.0,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "pexpect (>=4.8.0,<5.0.0)", "pgvector (>=0.1.6,<0.2.0)", "pinecone-client (>=2,<3)", "pinecone-text (>=0.4.2,<0.5.0)", "psycopg2-binary (>=2.9.5,<3.0.0)", "pyowm (>=3.3.0,<4.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pytesseract (>=0.3.10,<0.4.0)", "pyvespa (>=0.33.0,<0.34.0)", "qdrant-client (>=1.1.2,<2.0.0)", "redis (>=4,<5)", "requests-toolbelt (>=1.0.0,<2.0.0)", "sentence-transformers (>=2,<3)", "spacy (>=3,<4)", "steamship (>=2.16.9,<3.0.0)", "tensorflow-text (>=2.11.0,<3.0.0)", "tiktoken (>=0.3.2,<0.4.0)", "torch (>=1,<3)", "transformers (>=4,<5)", "weaviate-client (>=3,<4)", "wikipedia (>=1,<2)", "wolframalpha (==5.0.0)"] +all = ["O365 (>=2.0.26,<3.0.0)", "aleph-alpha-client (>=2.15.0,<3.0.0)", "anthropic (>=0.2.6,<0.3.0)", "arxiv (>=1.4,<2.0)", "atlassian-python-api (>=3.36.0,<4.0.0)", "azure-ai-formrecognizer (>=3.2.1,<4.0.0)", "azure-ai-vision (>=0.11.1b1,<0.12.0)", "azure-cognitiveservices-speech (>=1.28.0,<2.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "beautifulsoup4 (>=4,<5)", "clickhouse-connect (>=0.5.14,<0.6.0)", "cohere (>=3,<4)", "deeplake (>=3.3.0,<4.0.0)", "docarray[hnswlib] (>=0.32.0,<0.33.0)", "duckduckgo-search (>=2.8.6,<3.0.0)", "elasticsearch (>=8,<9)", "faiss-cpu (>=1,<2)", "google-api-python-client (==2.70.0)", "google-search-results (>=2,<3)", "gptcache (>=0.1.7)", "html2text (>=2020.1.16,<2021.0.0)", "huggingface_hub (>=0,<1)", "jina (>=3.14,<4.0)", "jinja2 (>=3,<4)", "jq (>=1.4.1,<2.0.0)", "lancedb (>=0.1,<0.2)", "langkit (>=0.0.1.dev3,<0.1.0)", "lark (>=1.1.5,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "manifest-ml (>=0.0.1,<0.0.2)", "momento (>=1.5.0,<2.0.0)", "neo4j (>=5.8.1,<6.0.0)", "networkx (>=2.6.3,<3.0.0)", "nlpcloud (>=1,<2)", "nltk (>=3,<4)", "nomic (>=1.0.43,<2.0.0)", "openai (>=0,<1)", "openlm (>=0.0.5,<0.0.6)", "opensearch-py (>=2.0.0,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "pexpect (>=4.8.0,<5.0.0)", "pgvector (>=0.1.6,<0.2.0)", "pinecone-client (>=2,<3)", "pinecone-text (>=0.4.2,<0.5.0)", "psycopg2-binary (>=2.9.5,<3.0.0)", "pymongo (>=4.3.3,<5.0.0)", "pyowm (>=3.3.0,<4.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pytesseract (>=0.3.10,<0.4.0)", "pyvespa (>=0.33.0,<0.34.0)", "qdrant-client (>=1.1.2,<2.0.0)", "redis (>=4,<5)", "requests-toolbelt (>=1.0.0,<2.0.0)", "sentence-transformers (>=2,<3)", "spacy (>=3,<4)", "steamship (>=2.16.9,<3.0.0)", "tensorflow-text (>=2.11.0,<3.0.0)", "tiktoken (>=0.3.2,<0.4.0)", "torch (>=1,<3)", "transformers (>=4,<5)", "weaviate-client (>=3,<4)", "wikipedia (>=1,<2)", "wolframalpha (==5.0.0)"] azure = ["azure-ai-formrecognizer (>=3.2.1,<4.0.0)", "azure-ai-vision (>=0.11.1b1,<0.12.0)", "azure-cognitiveservices-speech (>=1.28.0,<2.0.0)", "azure-core (>=1.26.4,<2.0.0)", "azure-cosmos (>=4.4.0b1,<5.0.0)", "azure-identity (>=1.12.0,<2.0.0)", "openai (>=0,<1)"] cohere = ["cohere (>=3,<4)"] docarray = ["docarray[hnswlib] (>=0.32.0,<0.33.0)"] embeddings = ["sentence-transformers (>=2,<3)"] -extended-testing = ["atlassian-python-api (>=3.36.0,<4.0.0)", "beautifulsoup4 (>=4,<5)", "bibtexparser (>=1.4.0,<2.0.0)", "chardet (>=5.1.0,<6.0.0)", "gql (>=3.4.1,<4.0.0)", "html2text (>=2020.1.16,<2021.0.0)", "jq (>=1.4.1,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "pandas (>=2.0.1,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "psychicapi (>=0.2,<0.3)", "pymupdf (>=1.22.3,<2.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pypdfium2 (>=4.10.0,<5.0.0)", "requests-toolbelt (>=1.0.0,<2.0.0)", "scikit-learn (>=1.2.2,<2.0.0)", "telethon (>=1.28.5,<2.0.0)", "tqdm (>=4.48.0)", "zep-python (>=0.30,<0.31)"] +extended-testing = ["atlassian-python-api (>=3.36.0,<4.0.0)", "beautifulsoup4 (>=4,<5)", "bibtexparser (>=1.4.0,<2.0.0)", "chardet (>=5.1.0,<6.0.0)", "gql (>=3.4.1,<4.0.0)", "html2text (>=2020.1.16,<2021.0.0)", "jq (>=1.4.1,<2.0.0)", "lxml (>=4.9.2,<5.0.0)", "pandas (>=2.0.1,<3.0.0)", "pdfminer-six (>=20221105,<20221106)", "psychicapi (>=0.2,<0.3)", "py-trello (>=0.19.0,<0.20.0)", "pymupdf (>=1.22.3,<2.0.0)", "pypdf (>=3.4.0,<4.0.0)", "pypdfium2 (>=4.10.0,<5.0.0)", "pyspark (>=3.4.0,<4.0.0)", "requests-toolbelt (>=1.0.0,<2.0.0)", "scikit-learn (>=1.2.2,<2.0.0)", "telethon (>=1.28.5,<2.0.0)", "tqdm (>=4.48.0)", "zep-python (>=0.30,<0.31)"] llms = ["anthropic (>=0.2.6,<0.3.0)", "cohere (>=3,<4)", "huggingface_hub (>=0,<1)", "manifest-ml (>=0.0.1,<0.0.2)", "nlpcloud (>=1,<2)", "openai (>=0,<1)", "openlm (>=0.0.5,<0.0.6)", "torch (>=1,<3)", "transformers (>=4,<5)"] openai = ["openai (>=0,<1)", "tiktoken (>=0.3.2,<0.4.0)"] qdrant = ["qdrant-client (>=1.1.2,<2.0.0)"] @@ -2282,6 +2376,7 @@ text-helpers = ["chardet (>=5.1.0,<6.0.0)"] name = "langchain-serve" version = "0.0.38" description = "Langchain Serve - serve your langchain apps on Jina AI Cloud." +category = "main" optional = true python-versions = "*" files = [ @@ -2308,6 +2403,7 @@ test = ["psutil", "pytest", "pytest-asyncio"] name = "linkify-it-py" version = "2.0.2" description = "Links recognition library with FULL unicode support." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -2328,6 +2424,7 @@ test = ["coverage", "pytest", "pytest-cov"] name = "llama-cpp-python" version = "0.1.55" description = "A Python wrapper for llama.cpp" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2341,6 +2438,7 @@ typing-extensions = ">=4.5.0,<5.0.0" name = "lxml" version = "4.9.2" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" files = [ @@ -2433,6 +2531,7 @@ source = ["Cython (>=0.29.7)"] name = "lz4" version = "4.3.2" description = "LZ4 Bindings for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2482,6 +2581,7 @@ tests = ["psutil", "pytest (!=3.3.0)", "pytest-cov"] name = "markdown" version = "3.4.3" description = "Python implementation of John Gruber's Markdown." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2499,6 +2599,7 @@ testing = ["coverage", "pyyaml"] name = "markdown-it-py" version = "2.2.0" description = "Python port of markdown-it. Markdown parsing, done right!" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2525,6 +2626,7 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] name = "markupsafe" version = "2.1.2" description = "Safely add untrusted strings to HTML/XML markup." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2584,6 +2686,7 @@ files = [ name = "marshmallow" version = "3.19.0" description = "A lightweight library for converting complex datatypes to and from native Python datatypes." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2604,6 +2707,7 @@ tests = ["pytest", "pytz", "simplejson"] name = "marshmallow-enum" version = "1.5.1" description = "Enum field for Marshmallow" +category = "main" optional = false python-versions = "*" files = [ @@ -2618,6 +2722,7 @@ marshmallow = ">=2.0.0" name = "matplotlib-inline" version = "0.1.6" description = "Inline Matplotlib backend for Jupyter" +category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2632,6 +2737,7 @@ traitlets = "*" name = "mdit-py-plugins" version = "0.3.5" description = "Collection of plugins for markdown-it-py" +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -2651,6 +2757,7 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] name = "mdurl" version = "0.1.2" description = "Markdown URL utilities" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2662,6 +2769,7 @@ files = [ name = "monotonic" version = "1.6" description = "An implementation of time.monotonic() for Python 2 & < 3.3" +category = "main" optional = false python-versions = "*" files = [ @@ -2673,6 +2781,7 @@ files = [ name = "mpmath" version = "1.3.0" description = "Python library for arbitrary-precision floating-point arithmetic" +category = "main" optional = false python-versions = "*" files = [ @@ -2690,6 +2799,7 @@ tests = ["pytest (>=4.6)"] name = "msg-parser" version = "1.2.0" description = "This module enables reading, parsing and converting Microsoft Outlook MSG E-Mail files." +category = "main" optional = false python-versions = ">=3.4" files = [ @@ -2707,6 +2817,7 @@ rtf = ["compressed-rtf (>=1.0.5)"] name = "multidict" version = "6.0.4" description = "multidict implementation" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2790,6 +2901,7 @@ files = [ name = "mypy" version = "1.3.0" description = "Optional static typing for Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2836,6 +2948,7 @@ reports = ["lxml"] name = "mypy-extensions" version = "1.0.0" description = "Type system extensions for programs checked with the mypy type checker." +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -2847,6 +2960,7 @@ files = [ name = "nest-asyncio" version = "1.5.6" description = "Patch asyncio to allow nested event loops" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -2858,6 +2972,7 @@ files = [ name = "networkx" version = "3.1" description = "Python package for creating and manipulating graphs and networks" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2876,6 +2991,7 @@ test = ["codecov (>=2.1)", "pytest (>=7.2)", "pytest-cov (>=4.0)"] name = "nltk" version = "3.8.1" description = "Natural Language Toolkit" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2901,6 +3017,7 @@ twitter = ["twython"] name = "numexpr" version = "2.8.4" description = "Fast numerical expression evaluator for NumPy" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2943,6 +3060,7 @@ numpy = ">=1.13.3" name = "numpy" version = "1.23.5" description = "NumPy is the fundamental package for array computing with Python." +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -2980,6 +3098,7 @@ files = [ name = "olefile" version = "0.46" description = "Python package to parse, read and write Microsoft OLE2 files (Structured Storage or Compound Document, Microsoft Office)" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2990,6 +3109,7 @@ files = [ name = "onnxruntime" version = "1.15.0" description = "ONNX Runtime is a runtime accelerator for Machine Learning models" +category = "main" optional = false python-versions = "*" files = [ @@ -3031,6 +3151,7 @@ sympy = "*" name = "openai" version = "0.27.7" description = "Python client library for the OpenAI API" +category = "main" optional = false python-versions = ">=3.7.1" files = [ @@ -3045,7 +3166,7 @@ tqdm = "*" [package.extras] datalib = ["numpy", "openpyxl (>=3.0.7)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] -dev = ["black (>=21.6b0,<22.0)", "pytest (==6.*)", "pytest-asyncio", "pytest-mock"] +dev = ["black (>=21.6b0,<22.0)", "pytest (>=6.0.0,<7.0.0)", "pytest-asyncio", "pytest-mock"] embeddings = ["matplotlib", "numpy", "openpyxl (>=3.0.7)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)", "plotly", "scikit-learn (>=1.0.2)", "scipy", "tenacity (>=8.0.1)"] wandb = ["numpy", "openpyxl (>=3.0.7)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)", "wandb"] @@ -3053,6 +3174,7 @@ wandb = ["numpy", "openpyxl (>=3.0.7)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1 name = "openapi-schema-pydantic" version = "1.2.4" description = "OpenAPI (v3) specification schema as pydantic class" +category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -3067,6 +3189,7 @@ pydantic = ">=1.8.2" name = "openpyxl" version = "3.1.2" description = "A Python library to read/write Excel 2010 xlsx/xlsm files" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3081,6 +3204,7 @@ et-xmlfile = "*" name = "opentelemetry-api" version = "1.18.0" description = "OpenTelemetry Python API" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3097,6 +3221,7 @@ setuptools = ">=16.0" name = "opentelemetry-exporter-otlp" version = "1.18.0" description = "OpenTelemetry Collector Exporters" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3112,6 +3237,7 @@ opentelemetry-exporter-otlp-proto-http = "1.18.0" name = "opentelemetry-exporter-otlp-proto-common" version = "1.18.0" description = "OpenTelemetry Protobuf encoding" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3126,6 +3252,7 @@ opentelemetry-proto = "1.18.0" name = "opentelemetry-exporter-otlp-proto-grpc" version = "1.18.0" description = "OpenTelemetry Collector Protobuf over gRPC Exporter" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3150,6 +3277,7 @@ test = ["pytest-grpc"] name = "opentelemetry-exporter-otlp-proto-http" version = "1.18.0" description = "OpenTelemetry Collector Protobuf over HTTP Exporter" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3174,6 +3302,7 @@ test = ["responses (==0.22.0)"] name = "opentelemetry-exporter-prometheus" version = "1.12.0rc1" description = "Prometheus Metric Exporter for OpenTelemetry" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3190,6 +3319,7 @@ prometheus-client = ">=0.5.0,<1.0.0" name = "opentelemetry-instrumentation" version = "0.39b0" description = "Instrumentation Tools & Auto Instrumentation for OpenTelemetry Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3206,6 +3336,7 @@ wrapt = ">=1.0.0,<2.0.0" name = "opentelemetry-instrumentation-aiohttp-client" version = "0.39b0" description = "OpenTelemetry aiohttp client instrumentation" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3228,6 +3359,7 @@ test = ["opentelemetry-instrumentation-aiohttp-client[instruments]"] name = "opentelemetry-instrumentation-asgi" version = "0.39b0" description = "ASGI instrumentation for OpenTelemetry" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3250,6 +3382,7 @@ test = ["opentelemetry-instrumentation-asgi[instruments]", "opentelemetry-test-u name = "opentelemetry-instrumentation-fastapi" version = "0.39b0" description = "OpenTelemetry FastAPI Instrumentation" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3272,6 +3405,7 @@ test = ["httpx (>=0.22,<1.0)", "opentelemetry-instrumentation-fastapi[instrument name = "opentelemetry-instrumentation-grpc" version = "0.39b0" description = "OpenTelemetry gRPC instrumentation" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3294,6 +3428,7 @@ test = ["opentelemetry-instrumentation-grpc[instruments]", "opentelemetry-sdk (> name = "opentelemetry-proto" version = "1.18.0" description = "OpenTelemetry Python Proto" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3308,6 +3443,7 @@ protobuf = ">=3.19,<5.0" name = "opentelemetry-sdk" version = "1.18.0" description = "OpenTelemetry Python SDK" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3325,6 +3461,7 @@ typing-extensions = ">=3.7.4" name = "opentelemetry-semantic-conventions" version = "0.39b0" description = "OpenTelemetry Semantic Conventions" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3336,6 +3473,7 @@ files = [ name = "opentelemetry-util-http" version = "0.39b0" description = "Web util for OpenTelemetry" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3347,6 +3485,7 @@ files = [ name = "overrides" version = "7.3.1" description = "A decorator to automatically detect mismatch when overriding a method." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3358,6 +3497,7 @@ files = [ name = "packaging" version = "23.1" description = "Core utilities for Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3369,6 +3509,7 @@ files = [ name = "pandas" version = "1.5.3" description = "Powerful data structures for data analysis, time series, and statistics" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -3417,6 +3558,7 @@ test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] name = "pandas-stubs" version = "2.0.1.230501" description = "Type annotations for pandas" +category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3431,6 +3573,7 @@ types-pytz = ">=2022.1.1" name = "parso" version = "0.8.3" description = "A Python Parser" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3446,6 +3589,7 @@ testing = ["docopt", "pytest (<6.0.0)"] name = "pathspec" version = "0.11.1" description = "Utility library for gitignore style pattern matching of file paths." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3457,6 +3601,7 @@ files = [ name = "pexpect" version = "4.8.0" description = "Pexpect allows easy control of interactive console applications." +category = "dev" optional = false python-versions = "*" files = [ @@ -3471,6 +3616,7 @@ ptyprocess = ">=0.5" name = "pickleshare" version = "0.7.5" description = "Tiny 'shelve'-like database with concurrency support" +category = "dev" optional = false python-versions = "*" files = [ @@ -3482,6 +3628,7 @@ files = [ name = "pillow" version = "9.5.0" description = "Python Imaging Library (Fork)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3561,6 +3708,7 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa name = "platformdirs" version = "3.5.1" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3576,6 +3724,7 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest- name = "pluggy" version = "1.0.0" description = "plugin and hook calling mechanisms for python" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3591,6 +3740,7 @@ testing = ["pytest", "pytest-benchmark"] name = "portalocker" version = "2.7.0" description = "Wraps the portalocker recipe for easy usage" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -3610,6 +3760,7 @@ tests = ["pytest (>=5.4.1)", "pytest-cov (>=2.8.1)", "pytest-mypy (>=0.8.0)", "p name = "posthog" version = "3.0.1" description = "Integrate PostHog into any python application." +category = "main" optional = false python-versions = "*" files = [ @@ -3633,6 +3784,7 @@ test = ["coverage", "flake8", "freezegun (==0.3.15)", "mock (>=2.0.0)", "pylint" name = "prometheus-client" version = "0.17.0" description = "Python client for the Prometheus monitoring system." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3647,6 +3799,7 @@ twisted = ["twisted"] name = "prompt-toolkit" version = "3.0.38" description = "Library for building powerful interactive command lines in Python" +category = "dev" optional = false python-versions = ">=3.7.0" files = [ @@ -3661,6 +3814,7 @@ wcwidth = "*" name = "protobuf" version = "3.20.3" description = "Protocol Buffers" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3692,6 +3846,7 @@ files = [ name = "psutil" version = "5.9.5" description = "Cross-platform lib for process and system monitoring in Python." +category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3718,6 +3873,7 @@ test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] name = "psycopg2-binary" version = "2.9.6" description = "psycopg2 - Python-PostgreSQL Database Adapter" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3789,6 +3945,7 @@ files = [ name = "ptyprocess" version = "0.7.0" description = "Run a subprocess in a pseudo terminal" +category = "dev" optional = false python-versions = "*" files = [ @@ -3800,6 +3957,7 @@ files = [ name = "pure-eval" version = "0.2.2" description = "Safely evaluate AST nodes without side effects" +category = "dev" optional = false python-versions = "*" files = [ @@ -3814,6 +3972,7 @@ tests = ["pytest"] name = "pyarrow" version = "11.0.0" description = "Python library for Apache Arrow" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3851,6 +4010,7 @@ numpy = ">=1.16.6" name = "pyasn1" version = "0.5.0" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -3862,6 +4022,7 @@ files = [ name = "pyasn1-modules" version = "0.3.0" description = "A collection of ASN.1-based protocols modules" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ @@ -3876,6 +4037,7 @@ pyasn1 = ">=0.4.6,<0.6.0" name = "pycparser" version = "2.21" description = "C parser in Python" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3887,6 +4049,7 @@ files = [ name = "pydantic" version = "1.10.8" description = "Data validation and settings management using python type hints" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3939,6 +4102,7 @@ email = ["email-validator (>=1.0.3)"] name = "pygments" version = "2.15.1" description = "Pygments is a syntax highlighting package written in Python." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3953,6 +4117,7 @@ plugins = ["importlib-metadata"] name = "pypandoc" version = "1.11" description = "Thin wrapper for pandoc." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3964,6 +4129,7 @@ files = [ name = "pyparsing" version = "3.0.9" description = "pyparsing module - Classes and methods to define and execute parsing grammars" +category = "main" optional = false python-versions = ">=3.6.8" files = [ @@ -3978,6 +4144,7 @@ diagrams = ["jinja2", "railroad-diagrams"] name = "pypdf" version = "3.9.0" description = "A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3999,6 +4166,7 @@ image = ["Pillow"] name = "pyreadline3" version = "3.4.1" description = "A python implementation of GNU readline." +category = "main" optional = false python-versions = "*" files = [ @@ -4010,6 +4178,7 @@ files = [ name = "pysrt" version = "1.1.2" description = "SubRip (.srt) subtitle parser and writer" +category = "main" optional = false python-versions = "*" files = [ @@ -4023,6 +4192,7 @@ chardet = "*" name = "pytest" version = "7.3.1" description = "pytest: simple powerful testing with Python" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4045,6 +4215,7 @@ testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "no name = "pytest-cov" version = "4.1.0" description = "Pytest plugin for measuring coverage." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4063,6 +4234,7 @@ testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtuale name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -4077,6 +4249,7 @@ six = ">=1.5" name = "python-docx" version = "0.8.11" description = "Create and update Microsoft Word .docx files." +category = "main" optional = false python-versions = "*" files = [ @@ -4090,6 +4263,7 @@ lxml = ">=2.3.2" name = "python-dotenv" version = "1.0.0" description = "Read key-value pairs from a .env file and set them as environment variables" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4104,6 +4278,7 @@ cli = ["click (>=5.0)"] name = "python-jose" version = "3.3.0" description = "JOSE implementation in Python" +category = "main" optional = false python-versions = "*" files = [ @@ -4125,6 +4300,7 @@ pycryptodome = ["pyasn1", "pycryptodome (>=3.3.1,<4.0.0)"] name = "python-magic" version = "0.4.27" description = "File type identification using libmagic" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -4136,6 +4312,7 @@ files = [ name = "python-multipart" version = "0.0.6" description = "A streaming multipart parser for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4150,6 +4327,7 @@ dev = ["atomicwrites (==1.2.1)", "attrs (==19.2.0)", "coverage (==6.5.0)", "hatc name = "python-pptx" version = "0.6.21" description = "Generate and manipulate Open XML PowerPoint (.pptx) files" +category = "main" optional = false python-versions = "*" files = [ @@ -4165,6 +4343,7 @@ XlsxWriter = ">=0.5.7" name = "pytz" version = "2023.3" description = "World timezone definitions, modern and historical" +category = "main" optional = false python-versions = "*" files = [ @@ -4176,6 +4355,7 @@ files = [ name = "pywin32" version = "306" description = "Python for Window Extensions" +category = "main" optional = false python-versions = "*" files = [ @@ -4199,6 +4379,7 @@ files = [ name = "pyyaml" version = "6.0" description = "YAML parser and emitter for Python" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4248,6 +4429,7 @@ files = [ name = "pyzmq" version = "25.1.0" description = "Python bindings for 0MQ" +category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -4337,6 +4519,7 @@ cffi = {version = "*", markers = "implementation_name == \"pypy\""} name = "qdrant-client" version = "1.2.0" description = "Client library for the Qdrant vector search engine" +category = "main" optional = false python-versions = ">=3.7,<3.12" files = [ @@ -4358,6 +4541,7 @@ urllib3 = ">=1.26.14,<2.0.0" name = "regex" version = "2023.5.5" description = "Alternative regular expression module, to replace re." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4455,6 +4639,7 @@ files = [ name = "requests" version = "2.28.2" description = "Python HTTP for Humans." +category = "main" optional = false python-versions = ">=3.7, <4" files = [ @@ -4476,6 +4661,7 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] name = "rfc3986" version = "1.5.0" description = "Validating URI References per RFC 3986" +category = "main" optional = false python-versions = "*" files = [ @@ -4493,6 +4679,7 @@ idna2008 = ["idna"] name = "rich" version = "13.3.5" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -4511,6 +4698,7 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] name = "rsa" version = "4.9" description = "Pure-Python RSA implementation" +category = "main" optional = false python-versions = ">=3.6,<4" files = [ @@ -4525,6 +4713,7 @@ pyasn1 = ">=0.1.3" name = "ruff" version = "0.0.254" description = "An extremely fast Python linter, written in Rust." +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4551,6 +4740,7 @@ files = [ name = "scikit-learn" version = "1.2.2" description = "A set of python modules for machine learning and data mining" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4593,6 +4783,7 @@ tests = ["black (>=22.3.0)", "flake8 (>=3.8.2)", "matplotlib (>=3.1.3)", "mypy ( name = "scipy" version = "1.10.1" description = "Fundamental algorithms for scientific computing in Python" +category = "main" optional = false python-versions = "<3.12,>=3.8" files = [ @@ -4631,6 +4822,7 @@ test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeo name = "sentence-transformers" version = "2.2.2" description = "Multilingual text embeddings" +category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -4653,6 +4845,7 @@ transformers = ">=4.6.0,<5.0.0" name = "sentencepiece" version = "0.1.99" description = "SentencePiece python wrapper" +category = "main" optional = false python-versions = "*" files = [ @@ -4707,6 +4900,7 @@ files = [ name = "setuptools" version = "67.8.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4723,6 +4917,7 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -4734,6 +4929,7 @@ files = [ name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4745,6 +4941,7 @@ files = [ name = "soupsieve" version = "2.4.1" description = "A modern CSS selector implementation for Beautiful Soup." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4756,6 +4953,7 @@ files = [ name = "sqlalchemy" version = "2.0.15" description = "Database Abstraction Library" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4803,7 +5001,7 @@ files = [ ] [package.dependencies] -greenlet = {version = "!=0.4.17", markers = "platform_machine == \"win32\" or platform_machine == \"WIN32\" or platform_machine == \"AMD64\" or platform_machine == \"amd64\" or platform_machine == \"x86_64\" or platform_machine == \"ppc64le\" or platform_machine == \"aarch64\""} +greenlet = {version = "!=0.4.17", markers = "platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\""} typing-extensions = ">=4.2.0" [package.extras] @@ -4833,6 +5031,7 @@ sqlcipher = ["sqlcipher3-binary"] name = "stack-data" version = "0.6.2" description = "Extract data from python stack frames and tracebacks for informative displays" +category = "dev" optional = false python-versions = "*" files = [ @@ -4852,6 +5051,7 @@ tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] name = "starlette" version = "0.27.0" description = "The little ASGI library that shines." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4870,6 +5070,7 @@ full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart", "pyyam name = "sympy" version = "1.12" description = "Computer algebra system (CAS) in Python" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4884,6 +5085,7 @@ mpmath = ">=0.19" name = "tenacity" version = "8.2.2" description = "Retry code until it succeeds" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4898,6 +5100,7 @@ doc = ["reno", "sphinx", "tornado (>=4.5)"] name = "textual" version = "0.26.0" description = "Modern Text User Interface framework" +category = "main" optional = true python-versions = ">=3.7,<4.0" files = [ @@ -4918,6 +5121,7 @@ dev = ["aiohttp (>=3.8.1)", "click (>=8.1.2)", "msgpack (>=1.0.3)"] name = "threadpoolctl" version = "3.1.0" description = "threadpoolctl" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -4929,6 +5133,7 @@ files = [ name = "tiktoken" version = "0.3.3" description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -4974,6 +5179,7 @@ blobfile = ["blobfile (>=2)"] name = "tokenizers" version = "0.13.3" description = "Fast and Customizable Tokenizers" +category = "main" optional = false python-versions = "*" files = [ @@ -5028,6 +5234,7 @@ testing = ["black (==22.3)", "datasets", "numpy", "pytest", "requests"] name = "toml" version = "0.10.2" description = "Python Library for Tom's Obvious, Minimal Language" +category = "main" optional = true python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -5039,6 +5246,7 @@ files = [ name = "tomli" version = "2.0.1" description = "A lil' TOML parser" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5050,6 +5258,7 @@ files = [ name = "torch" version = "2.0.1" description = "Tensors and Dynamic neural networks in Python with strong GPU acceleration" +category = "main" optional = false python-versions = ">=3.8.0" files = [ @@ -5089,6 +5298,7 @@ opt-einsum = ["opt-einsum (>=3.3)"] name = "torchvision" version = "0.15.2" description = "image and video datasets and models for torch deep learning" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -5116,7 +5326,7 @@ files = [ [package.dependencies] numpy = "*" -pillow = ">=5.3.0,<8.3.dev0 || >=8.4.dev0" +pillow = ">=5.3.0,<8.3.0 || >=8.4.0" requests = "*" torch = "2.0.1" @@ -5127,6 +5337,7 @@ scipy = ["scipy"] name = "tornado" version = "6.3.2" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +category = "dev" optional = false python-versions = ">= 3.8" files = [ @@ -5147,6 +5358,7 @@ files = [ name = "tqdm" version = "4.65.0" description = "Fast, Extensible Progress Meter" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5167,6 +5379,7 @@ telegram = ["requests"] name = "traitlets" version = "5.9.0" description = "Traitlets Python configuration system" +category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -5182,6 +5395,7 @@ test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] name = "transformers" version = "4.29.0" description = "State-of-the-art Machine Learning for JAX, PyTorch and TensorFlow" +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -5249,6 +5463,7 @@ vision = ["Pillow"] name = "typer" version = "0.7.0" description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -5269,6 +5484,7 @@ test = ["black (>=22.3.0,<23.0.0)", "coverage (>=6.2,<7.0)", "isort (>=5.0.6,<6. name = "types-pillow" version = "9.5.0.4" description = "Typing stubs for Pillow" +category = "dev" optional = false python-versions = "*" files = [ @@ -5280,6 +5496,7 @@ files = [ name = "types-pytz" version = "2023.3.0.0" description = "Typing stubs for pytz" +category = "dev" optional = false python-versions = "*" files = [ @@ -5291,6 +5508,7 @@ files = [ name = "types-pyyaml" version = "6.0.12.10" description = "Typing stubs for PyYAML" +category = "main" optional = false python-versions = "*" files = [ @@ -5302,6 +5520,7 @@ files = [ name = "types-requests" version = "2.31.0.1" description = "Typing stubs for requests" +category = "dev" optional = false python-versions = "*" files = [ @@ -5316,6 +5535,7 @@ types-urllib3 = "*" name = "types-urllib3" version = "1.26.25.13" description = "Typing stubs for urllib3" +category = "dev" optional = false python-versions = "*" files = [ @@ -5327,6 +5547,7 @@ files = [ name = "typing-extensions" version = "4.5.0" description = "Backported and Experimental Type Hints for Python 3.7+" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5338,6 +5559,7 @@ files = [ name = "typing-inspect" version = "0.8.0" description = "Runtime inspection utilities for typing module." +category = "main" optional = false python-versions = "*" files = [ @@ -5353,6 +5575,7 @@ typing-extensions = ">=3.7.4" name = "uc-micro-py" version = "1.0.2" description = "Micro subset of unicode data files for linkify-it-py projects." +category = "main" optional = true python-versions = ">=3.7" files = [ @@ -5367,6 +5590,7 @@ test = ["coverage", "pytest", "pytest-cov"] name = "unstructured" version = "0.5.13" description = "A library that prepares raw documents for downstream ML tasks." +category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -5406,6 +5630,7 @@ wikipedia = ["wikipedia"] name = "uritemplate" version = "4.1.1" description = "Implementation of RFC 6570 URI Templates" +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -5417,6 +5642,7 @@ files = [ name = "urllib3" version = "1.26.16" description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ @@ -5433,6 +5659,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] name = "uvicorn" version = "0.20.0" description = "The lightning-fast ASGI server." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5447,7 +5674,7 @@ h11 = ">=0.8" httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} -uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\" and extra == \"standard\""} watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} @@ -5458,6 +5685,7 @@ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", name = "uvloop" version = "0.17.0" description = "Fast implementation of asyncio event loop on top of libuv" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5502,6 +5730,7 @@ test = ["Cython (>=0.29.32,<0.30.0)", "aiohttp", "flake8 (>=3.9.2,<3.10.0)", "my name = "validators" version = "0.20.0" description = "Python Data Validation for Humans™." +category = "main" optional = false python-versions = ">=3.4" files = [ @@ -5518,6 +5747,7 @@ test = ["flake8 (>=2.4.0)", "isort (>=4.2.2)", "pytest (>=2.2.3)"] name = "watchfiles" version = "0.19.0" description = "Simple, modern and high performance file watching and code reload in python." +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5552,6 +5782,7 @@ anyio = ">=3.0.0" name = "wcwidth" version = "0.2.6" description = "Measures the displayed width of unicode strings in a terminal" +category = "dev" optional = false python-versions = "*" files = [ @@ -5563,6 +5794,7 @@ files = [ name = "weaviate-client" version = "3.19.2" description = "A python native weaviate client" +category = "main" optional = false python-versions = ">=3.8" files = [ @@ -5583,6 +5815,7 @@ grpc = ["grpcio", "grpcio-tools"] name = "websocket-client" version = "1.5.2" description = "WebSocket client for Python with low level API options" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5599,6 +5832,7 @@ test = ["websockets"] name = "websockets" version = "11.0.3" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5678,6 +5912,7 @@ files = [ name = "wikipedia" version = "1.4.0" description = "Wikipedia API for Python" +category = "main" optional = false python-versions = "*" files = [ @@ -5692,6 +5927,7 @@ requests = ">=2.0.0,<3.0.0" name = "wrapt" version = "1.14.1" description = "Module for decorators, wrappers and monkey patching." +category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -5765,6 +6001,7 @@ files = [ name = "xlsxwriter" version = "3.1.2" description = "A Python module for creating Excel XLSX files." +category = "main" optional = false python-versions = ">=3.6" files = [ @@ -5776,6 +6013,7 @@ files = [ name = "yarl" version = "1.9.2" description = "Yet another URL library" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5863,6 +6101,7 @@ multidict = ">=4.0" name = "zipp" version = "3.15.0" description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5878,6 +6117,7 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more name = "zstandard" version = "0.21.0" description = "Zstandard bindings for Python" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -5938,4 +6178,4 @@ deploy = ["langchain-serve"] [metadata] lock-version = "2.0" python-versions = ">=3.9,<3.12" -content-hash = "6560026ff87dd44f900ee5a22caabd294ef20c2b2fbe51e06e418727927d8df2" +content-hash = "9ce165d2decf2190d7ce69be608872b3ed9abe705a276045623706d01665754b" diff --git a/pyproject.toml b/pyproject.toml index 0d3affef3..79d09b422 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "langflow" -version = "0.0.78" +version = "0.0.79" description = "A Python package with a built-in web application" authors = ["Logspace "] maintainers = [ @@ -29,7 +29,7 @@ google-search-results = "^2.4.1" google-api-python-client = "^2.79.0" typer = "^0.7.0" gunicorn = "^20.1.0" -langchain = "^0.0.184" +langchain = "^0.0.186" openai = "^0.27.7" types-pyyaml = "^6.0.12.8" dill = "^0.3.6"