From ff4ecb86e59ff67002393a255a40c5138bd7c198 Mon Sep 17 00:00:00 2001 From: Stan Girard Date: Tue, 28 May 2024 16:47:31 +0200 Subject: [PATCH] feat: Update QuivrRAG and run_evaluation.py files (#2615) # Description Please include a summary of the changes and the related issue. Please also include relevant motivation and context. ## Checklist before requesting a review Please delete options that are not relevant. - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my code - [ ] I have commented hard-to-understand areas - [ ] I have ideally added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged ## Screenshots (if appropriate): --------- Co-authored-by: chloedia --- .gitignore | 1 + Pipfile.lock | 990 +++++++++--------- .../integrations/Multi_Contract/Brain.py | 206 ++++ .../integrations/Multi_Contract/__init__.py | 0 backend/modules/brain/knowledge_brain_qa.py | 4 +- backend/modules/brain/rags/quivr_rag.py | 39 +- .../chat/controller/chat/brainful_chat.py | 20 +- backend/packages/files/parsers/common.py | 9 +- backend/requirements.txt | 109 +- .../tests/ragas_evaluation/run_evaluation.py | 16 +- backend/tests/ragas_tests/experiment.json | 17 +- backend/vectorstore/supabase.py | 10 +- 12 files changed, 831 insertions(+), 590 deletions(-) create mode 100644 backend/modules/brain/integrations/Multi_Contract/Brain.py create mode 100644 backend/modules/brain/integrations/Multi_Contract/__init__.py diff --git a/.gitignore b/.gitignore index 64bd07347..ca61c45e9 100644 --- a/.gitignore +++ b/.gitignore @@ -84,3 +84,4 @@ backend/application.log.* backend/score.json backend/modules/assistant/ito/utils/simple.pdf backend/modules/sync/controller/credentials.json +backend/.env.test diff --git a/Pipfile.lock b/Pipfile.lock index df8141b23..501ab627b 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -116,11 +116,11 @@ }, "annotated-types": { "hashes": [ - "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43", - "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d" + "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", + "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89" ], "markers": "python_version >= '3.8'", - "version": "==0.6.0" + "version": "==0.7.0" }, "antlr4-python3-runtime": { "hashes": [ @@ -130,11 +130,11 @@ }, "anyio": { "hashes": [ - "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8", - "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6" + "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94", + "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7" ], "markers": "python_version >= '3.8'", - "version": "==4.3.0" + "version": "==4.4.0" }, "appdirs": { "hashes": [ @@ -279,21 +279,21 @@ }, "boto3": { "hashes": [ - "sha256:2500963ddd7fee0c891db596ed73f203a62e8ee6faf1543c7a14169b1d557bc3", - "sha256:a7280f54babc8e285d85d2558dd6167e4deb069e03abe43a55b643e10c03952b" + "sha256:009cd143509f2ff4c37582c3f45d50f28c95eed68e8a5c36641206bdb597a9ea", + "sha256:7e59f0a848be477a4c98a90e7a18a0e284adfb643f7879d2b303c5f493661b7a" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==1.34.107" + "version": "==1.34.113" }, "botocore": { "hashes": [ - "sha256:4620286a814c3c8abc59145203650a6b2a4f538e887552fa1bc6896b6d11b28b", - "sha256:98bfab930391a21d24ed7a7bc86ec2ec076607318ab8de0c37d2587f73a88d89" + "sha256:449912ba3c4ded64f21d09d428146dd9c05337b2a112e15511bf2c4888faae79", + "sha256:8ca87776450ef41dd25c327eb6e504294230a5756940d68bcfdedc4a7cdeca97" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==1.34.107" + "version": "==1.34.113" }, "cachetools": { "hashes": [ @@ -518,11 +518,11 @@ }, "cohere": { "hashes": [ - "sha256:00b492ebf8921e83cb2371f2ee36ddf301422daae3024343a87d4316f02b711b", - "sha256:7792e8898c95f2cb955b2d9f23b8602f73f3b698d59f1a1b4896c53809671da0" + "sha256:8c7ebe2f5bf83fee8e55a24a0acdd4b0e94de274fd0ef32b285978289a03e930", + "sha256:99d20129713a6dae052368b4839773a214592a76bee345b94a4846d00f702da3" ], "markers": "python_version >= '3.8' and python_version < '4.0'", - "version": "==5.5.0" + "version": "==5.5.3" }, "coloredlogs": { "hashes": [ @@ -770,11 +770,11 @@ }, "docker": { "hashes": [ - "sha256:12ba681f2777a0ad28ffbcc846a69c31b4dfd9752b47eb425a274ee269c5e14b", - "sha256:323736fb92cd9418fc5e7133bc953e11a9da04f4483f828b527db553f1e7e5a3" + "sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c", + "sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0" ], "markers": "python_version >= '3.8'", - "version": "==7.0.0" + "version": "==7.1.0" }, "docx2txt": { "hashes": [ @@ -785,65 +785,65 @@ }, "duckdb": { "hashes": [ - "sha256:00576c11c78c83830ab483bad968e07cd9b5f730e7ffaf5aa5fadee5ac4f71e9", - "sha256:06e3a36f04f4d98d2c0bbdd63e517cfbe114a795306e26ec855e62e076af5043", - "sha256:077db692cdda50c4684ef87dc2a68507665804caa90e539dbe819116bda722ad", - "sha256:0bf58385c43b8e448a2fea7e8729054934bf73ea616d1d7ef8184eda07f975e2", - "sha256:0f609c9d5f941f1ecde810f010dd9321cd406a552c1df20318a13fa64247f67f", - "sha256:186d86b8dda8e1076170eb770bb2bb73ea88ca907d92885c9695d6515207b205", - "sha256:20ee0aa27e688aa52a40b434ec41a50431d0b06edeab88edc2feaca18d82c62c", - "sha256:2c68c6dde2773774cf2371522a3959ea2716fc2b3a4891d4066f0e426455fe19", - "sha256:3102bcf5011e8f82ea3c2bde43108774fe5a283a410d292c0843610ea13e2237", - "sha256:33308190e9c7f05a3a0a2d46008a043effd4eae77011869d7c18fb37acdd9215", - "sha256:364cd6f5dc8a1010d144d08c410ba9a74c521336ee5bda84fabc6616216a6d6a", - "sha256:38607e6e6618e8ea28c8d9b67aa9e22cfd6d6d673f2e8ab328bd6e867b697f69", - "sha256:3891d3ac03e12a3e5c43afa3020fe701f64060f52d25f429a1ed7b5d914368d3", - "sha256:3a8b2f1229b4aecb79cd28ffdb99032b1497f0a805d0da1136a9b6115e1afc70", - "sha256:3ff62bc98278c98fecbd6eecec5d698ad41ebd654110feaadbf8ac8bb59b1ecf", - "sha256:41e8b34b1a944590ebcf82f8cc59d67b084fe99479f048892d60da6c1402c386", - "sha256:4800469489bc262dda61a7f1d40acedf67cf2454874e9d8bbf07920dc2b147e6", - "sha256:4a5d5655cf0bdaf664a6f332afe465e02b08cef715548a0983bb7aef48da06a6", - "sha256:4c57c11d1060296f5e9ebfb5bb7e5521e0d77912e8f9ff43c90240c3311e9de9", - "sha256:4f63877651f1fb940e049dc53038eb763856616319acf4f892b1c3ed074f5ab0", - "sha256:5f65b62f31c6bff21afc0261cfe28d238b8f34ec78f339546b12f4740c39552a", - "sha256:62e89deff778a7a86f651802b947a3466425f6cce41e9d7d412d39e492932943", - "sha256:6934758cacd06029a5c9f54556a43bd277a86757e22bf8d0dd11ca15c1813d1c", - "sha256:6a72cc40982c7b92cf555e574618fc711033b013bf258b611ba18d7654c89d8c", - "sha256:728dd4ff0efda387a424754e5508d4f8c72a272c2d3ccb036a83286f60b46002", - "sha256:7a11e2d68bd79044eea5486b1cddb5b915115f537e5c74eeb94c768ce30f9f4b", - "sha256:80a6d43d9044f0997a15a92e0c0ff3afd21151a1e572a92f439cc4f56b7090e1", - "sha256:82fab1a24faf7c33d8a7afed08b57ee36e8821a3a68a2f1574cd238ea440bba0", - "sha256:909351ff72eb3b50b89761251148d8a186594d8a438e12dcf5494794caff6693", - "sha256:a860d7466a5c93714cdd94559ce9e1db2ab91914f0941c25e5e93d4ebe36a5fa", - "sha256:a9d15842876d18763e085648656cccc7660a215d16254906db5c4471be2c7732", - "sha256:acdfff60b7efccd7f731213a9795851256249dfacf80367074b2b2e144f716dd", - "sha256:c461d6b4619e80170044a9eb999bbf4097e330d3a4974ced0a7eaeb79c7c39f6", - "sha256:c88cdcdc8452c910e4298223e7d9fca291534ff5aa36090aa49c9e6557550b13", - "sha256:ca25984ad9f9a04e46e8359f852668c11569534e3bb8424b80be711303ad2314", - "sha256:cb31398826d1b7473344e5ee8e0f826370c9752549469ba1327042ace9041f80", - "sha256:cceede13fde095c23cf9a53adf7c414c7bfb21b9a7aa6a4836014fdbecbfca70", - "sha256:cf5f95ad5b75c8e65c6508b4df02043dd0b9d97712b9a33236ad77c388ce7861", - "sha256:d09dcec467cd6127d5cc1fb0ce4efbd77e761882d9d772b0f64fc2f79a2a1cde", - "sha256:d23a6dea61963733a0f45a0d0bbb1361fb2a47410ed5ff308b4a1f869d4eeb6f", - "sha256:d27b9efd6e788eb561535fdc0cbc7c74aca1ff39f748b7cfc27aa49b00e22da1", - "sha256:d64d443613e5f16caf7d67102733538c90f7715867c1a98597efd3babca068e3", - "sha256:d9eeb8393d69abafd355b869669957eb85b89e4df677e420b9ef0693b7aa6cb4", - "sha256:eae75c7014597ded6e7f6dc51e32d48362a31608acd73e9f795748ee94335a54", - "sha256:f87e555fd36ec6da316b727a39fb24c53124a797dfa9b451bdea87b2f20a351f", - "sha256:fb0c23bc8c09615bff38aebcf8e92e6ae74959c67b3c9e5b00edddc730bf22be", - "sha256:ff6a8a0980d0f9398fa461deffa59465dac190d707468478011ea8a5fe1f2c81" + "sha256:03bc54a9cde5490918aad82d7d2a34290e3dfb78d5b889c6626625c0f141272a", + "sha256:04129f94fb49bba5eea22f941f0fb30337f069a04993048b59e2811f52d564bc", + "sha256:0fa1e7ff8d18d71defa84e79f5c86aa25d3be80d7cb7bc259a322de6d7cc72da", + "sha256:1209a354a763758c4017a1f6a9f9b154a83bed4458287af9f71d84664ddb86b6", + "sha256:1631184b94c3dc38b13bce4045bf3ae7e1b0ecbfbb8771eb8d751d8ffe1b59b3", + "sha256:22f2aad5bb49c007f3bfcd3e81fdedbc16a2ae41f2915fc278724ca494128b0c", + "sha256:2b3dec4ef8ed355d7b7230b40950b30d0def2c387a2e8cd7efc80b9d14134ecf", + "sha256:2f9259c637b917ca0f4c63887e8d9b35ec248f5d987c886dfc4229d66a791009", + "sha256:338c14d8ac53ac4aa9ec03b6f1325ecfe609ceeb72565124d489cb07f8a1e4eb", + "sha256:372b6e3901d85108cafe5df03c872dfb6f0dbff66165a0cf46c47246c1957aa0", + "sha256:3b735cea64aab39b67c136ab3a571dbf834067f8472ba2f8bf0341bc91bea820", + "sha256:3d34b86d6a2a6dfe8bb757f90bfe7101a3bd9e3022bf19dbddfa4b32680d26a9", + "sha256:46757e0cf5f44b4cb820c48a34f339a9ccf83b43d525d44947273a585a4ed822", + "sha256:468a4e0c0b13c55f84972b1110060d1b0f854ffeb5900a178a775259ec1562db", + "sha256:538f943bf9fa8a3a7c4fafa05f21a69539d2c8a68e557233cbe9d989ae232899", + "sha256:56429b2cfe70e367fb818c2be19f59ce2f6b080c8382c4d10b4f90ba81f774e9", + "sha256:5d8b20ed67da004b4481973f4254fd79a0e5af957d2382eac8624b5c527ec48c", + "sha256:5ec3bbdb209e6095d202202893763e26c17c88293b88ef986b619e6c8b6715bd", + "sha256:651fcb429602b79a3cf76b662a39e93e9c3e6650f7018258f4af344c816dab72", + "sha256:6930608f35025a73eb94252964f9f19dd68cf2aaa471da3982cf6694866cfa63", + "sha256:732b1d3b6b17bf2f32ea696b9afc9e033493c5a3b783c292ca4b0ee7cc7b0e66", + "sha256:73b1cb283ca0f6576dc18183fd315b4e487a545667ffebbf50b08eb4e8cdc143", + "sha256:78e539d85ebd84e3e87ec44d28ad912ca4ca444fe705794e0de9be3dd5550c11", + "sha256:7a99b67ac674b4de32073e9bc604b9c2273d399325181ff50b436c6da17bf00a", + "sha256:7e75c9f5b6a92b2a6816605c001d30790f6d67ce627a2b848d4d6040686efdf9", + "sha256:816ffb9f758ed98eb02199d9321d592d7a32a6cb6aa31930f4337eb22cfc64e2", + "sha256:8f9e2bb00a048eb70b73a494bdc868ce7549b342f7ffec88192a78e5a4e164bd", + "sha256:a66c125d0c30af210f7ee599e7821c3d1a7e09208196dafbf997d4e0cfcb81ab", + "sha256:a6c2fc49875b4b54e882d68703083ca6f84b27536d57d623fc872e2f502b1078", + "sha256:ae786eddf1c2fd003466e13393b9348a44b6061af6fe7bcb380a64cac24e7df7", + "sha256:b46c02c2e39e3676b1bb0dc7720b8aa953734de4fd1b762e6d7375fbeb1b63af", + "sha256:b48f5f1542f1e4b184e6b4fc188f497be8b9c48127867e7d9a5f4a3e334f88b0", + "sha256:b9387da7b7973707b0dea2588749660dd5dd724273222680e985a2dd36787668", + "sha256:bcd460feef56575af2c2443d7394d405a164c409e9794a4d94cb5fdaa24a0ba4", + "sha256:c5bd84a92bc708d3a6adffe1f554b94c6e76c795826daaaf482afc3d9c636971", + "sha256:cd25cc8d001c09a19340739ba59d33e12a81ab285b7a6bed37169655e1cefb31", + "sha256:d37680b8d7be04e4709db3a66c8b3eb7ceba2a5276574903528632f2b2cc2e60", + "sha256:d3ae3c73b98b6215dab93cc9bc936b94aed55b53c34ba01dec863c5cab9f8e25", + "sha256:d75d67024fc22c8edfd47747c8550fb3c34fb1cbcbfd567e94939ffd9c9e3ca7", + "sha256:d917dde19fcec8cadcbef1f23946e85dee626ddc133e1e3f6551f15a61a03c61", + "sha256:d99dd7a1d901149c7a276440d6e737b2777e17d2046f5efb0c06ad3b8cb066a6", + "sha256:e229a7c6361afbb0d0ab29b1b398c10921263c52957aefe3ace99b0426fdb91e", + "sha256:e327f7a3951ea154bb56e3fef7da889e790bd9a67ca3c36afc1beb17d3feb6d6", + "sha256:ed1063ed97c02e9cf2e7fd1d280de2d1e243d72268330f45344c69c7ce438a01", + "sha256:f3796e9507c02d0ddbba2e84c994fae131da567ce3d9cbb4cbcd32fadc5fbb26", + "sha256:f5380d4db11fec5021389fb85d614680dc12757ef7c5881262742250e0b58c75", + "sha256:fb98c35fc8dd65043bc08a2414dd9f59c680d7e8656295b8969f3f2061f26c52" ], "markers": "python_full_version >= '3.7.0'", - "version": "==0.10.2" + "version": "==0.10.3" }, "duckduckgo-search": { "hashes": [ - "sha256:0f9ea0cb0d23575d98255931c0d437cf67ac958be8e54459704b833fa903e693", - "sha256:88e008e46b8c6037559f0617dfd9f034e5dd9b384b2795343a9ef25782ca053d" + "sha256:6c06b890d5c82206b196927af9d8c104c51896c747541a950b64eaacd0ce9144", + "sha256:7ac06eef67c2c848757c3ee35bb89a8e3371ed8eea3a03e943793655a49f3b71" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==6.1.0" + "version": "==6.1.1" }, "ecdsa": { "hashes": [ @@ -870,11 +870,11 @@ }, "emoji": { "hashes": [ - "sha256:062ff0b3154b6219143f8b9f4b3e5c64c35bc2b146e6e2349ab5f29e218ce1ee", - "sha256:b7ba25299bbf520cc8727848ae66b986da32aee27dc2887eaea2bff07226ce49" + "sha256:4aa0488817691aa58d83764b6c209f8a27c0b3ab3f89d1b8dceca1a62e4973eb", + "sha256:a00d62173bdadc2510967a381810101624a2f0986145b8da0cffa42e29430235" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==2.11.1" + "markers": "python_version >= '3.7'", + "version": "==2.12.1" }, "et-xmlfile": { "hashes": [ @@ -903,11 +903,11 @@ }, "fastapi-cli": { "hashes": [ - "sha256:3b6e4d2c4daee940fb8db59ebbfd60a72c4b962bcf593e263e4cc69da4ea3d7f", - "sha256:ae233115f729945479044917d949095e829d2d84f56f55ce1ca17627872825a5" + "sha256:a2552f3a7ae64058cdbb530be6fa6dbfc975dc165e4fa66d224c3d396e25e809", + "sha256:e2e9ffaffc1f7767f488d6da34b6f5a377751c996f397902eb6abb99a67bde32" ], "markers": "python_version >= '3.8'", - "version": "==0.0.3" + "version": "==0.0.4" }, "fastavro": { "hashes": [ @@ -1020,60 +1020,60 @@ }, "fonttools": { "hashes": [ - "sha256:0118ef998a0699a96c7b28457f15546815015a2710a1b23a7bf6c1be60c01636", - "sha256:0d145976194a5242fdd22df18a1b451481a88071feadf251221af110ca8f00ce", - "sha256:0e19bd9e9964a09cd2433a4b100ca7f34e34731e0758e13ba9a1ed6e5468cc0f", - "sha256:0f08c901d3866a8905363619e3741c33f0a83a680d92a9f0e575985c2634fcc1", - "sha256:1250e818b5f8a679ad79660855528120a8f0288f8f30ec88b83db51515411fcc", - "sha256:15c94eeef6b095831067f72c825eb0e2d48bb4cea0647c1b05c981ecba2bf39f", - "sha256:1621ee57da887c17312acc4b0e7ac30d3a4fb0fec6174b2e3754a74c26bbed1e", - "sha256:180194c7fe60c989bb627d7ed5011f2bef1c4d36ecf3ec64daec8302f1ae0716", - "sha256:278e50f6b003c6aed19bae2242b364e575bcb16304b53f2b64f6551b9c000e15", - "sha256:32b17504696f605e9e960647c5f64b35704782a502cc26a37b800b4d69ff3c77", - "sha256:3bee3f3bd9fa1d5ee616ccfd13b27ca605c2b4270e45715bd2883e9504735034", - "sha256:4060acc2bfa2d8e98117828a238889f13b6f69d59f4f2d5857eece5277b829ba", - "sha256:54dcf21a2f2d06ded676e3c3f9f74b2bafded3a8ff12f0983160b13e9f2fb4a7", - "sha256:56fc244f2585d6c00b9bcc59e6593e646cf095a96fe68d62cd4da53dd1287b55", - "sha256:599bdb75e220241cedc6faebfafedd7670335d2e29620d207dd0378a4e9ccc5a", - "sha256:5f6bc991d1610f5c3bbe997b0233cbc234b8e82fa99fc0b2932dc1ca5e5afec0", - "sha256:60a3409c9112aec02d5fb546f557bca6efa773dcb32ac147c6baf5f742e6258b", - "sha256:68b3fb7775a923be73e739f92f7e8a72725fd333eab24834041365d2278c3671", - "sha256:76f1777d8b3386479ffb4a282e74318e730014d86ce60f016908d9801af9ca2a", - "sha256:806e7912c32a657fa39d2d6eb1d3012d35f841387c8fc6cf349ed70b7c340039", - "sha256:84d7751f4468dd8cdd03ddada18b8b0857a5beec80bce9f435742abc9a851a74", - "sha256:865a58b6e60b0938874af0968cd0553bcd88e0b2cb6e588727117bd099eef836", - "sha256:8ac27f436e8af7779f0bb4d5425aa3535270494d3bc5459ed27de3f03151e4c2", - "sha256:8b4850fa2ef2cfbc1d1f689bc159ef0f45d8d83298c1425838095bf53ef46308", - "sha256:8b5ad456813d93b9c4b7ee55302208db2b45324315129d85275c01f5cb7e61a2", - "sha256:8e2f1a4499e3b5ee82c19b5ee57f0294673125c65b0a1ff3764ea1f9db2f9ef5", - "sha256:9696fe9f3f0c32e9a321d5268208a7cc9205a52f99b89479d1b035ed54c923f1", - "sha256:96a48e137c36be55e68845fc4284533bda2980f8d6f835e26bca79d7e2006438", - "sha256:a8feca65bab31479d795b0d16c9a9852902e3a3c0630678efb0b2b7941ea9c74", - "sha256:aefa011207ed36cd280babfaa8510b8176f1a77261833e895a9d96e57e44802f", - "sha256:b2b92381f37b39ba2fc98c3a45a9d6383bfc9916a87d66ccb6553f7bdd129097", - "sha256:b3c61423f22165541b9403ee39874dcae84cd57a9078b82e1dce8cb06b07fa2e", - "sha256:b5b48a1121117047d82695d276c2af2ee3a24ffe0f502ed581acc2673ecf1037", - "sha256:c18b49adc721a7d0b8dfe7c3130c89b8704baf599fb396396d07d4aa69b824a1", - "sha256:c5b8cab0c137ca229433570151b5c1fc6af212680b58b15abd797dcdd9dd5051", - "sha256:c7e91abdfae1b5c9e3a543f48ce96013f9a08c6c9668f1e6be0beabf0a569c1b", - "sha256:cadf4e12a608ef1d13e039864f484c8a968840afa0258b0b843a0556497ea9ed", - "sha256:dc0673361331566d7a663d7ce0f6fdcbfbdc1f59c6e3ed1165ad7202ca183c68", - "sha256:de7c29bdbdd35811f14493ffd2534b88f0ce1b9065316433b22d63ca1cd21f14", - "sha256:e9d9298be7a05bb4801f558522adbe2feea1b0b103d5294ebf24a92dd49b78e5", - "sha256:ee1af4be1c5afe4c96ca23badd368d8dc75f611887fb0c0dac9f71ee5d6f110e", - "sha256:f7e89853d8bea103c8e3514b9f9dc86b5b4120afb4583b57eb10dfa5afbe0936" + "sha256:0caf05c969cbde6729dd97b64bea445ee152bb19215d5886f7b93bd0fb455468", + "sha256:10e44bf8e5654050a332a79285bacd6bd3069084540aec46c0862391147a1daa", + "sha256:15df3517eb95035422a5c953ca19aac99913c16aa0e4ef061aeaef5f3bcaf369", + "sha256:1e2c415160397fd6ed3964155aeec4bfefceeee365ab17161a5b3fe3f8dab077", + "sha256:20f0fc969817c50539dc919ed8c4aef4de28c2d6e0111a064112301f157aede4", + "sha256:228faab7638cd726cdde5e2ec9ee10f780fbf9de9aa38d7f1e56a270437dff36", + "sha256:26b43bab5a3bce55ed4d9699b16568795eef5597d154f52dcabef5b4804c4b21", + "sha256:33cfc9fe27af5e113d157d5147e24fc8e5bda3c5aadb55bea9847ec55341ce30", + "sha256:3ba2c4647e7decfb8e9cd346661c7d151dae1fba23d37b48bcf5fa8351f7b8c8", + "sha256:40730aab9cf42286f314b985b483eea574f1bcf3a23e28223084cbb9e256457c", + "sha256:56addf1f995d94dad13aaaf56eb6def3d9ca97c2fada5e27af8190b3141e8633", + "sha256:5c9622593dfff042480a1b7e5b72c4d7dc00b96d2b4f98b0bf8acf071087e0db", + "sha256:5ff8857dc9bb3e407c25aef3e025409cfbb23adb646a835636bebb1bdfc27a41", + "sha256:67a30b872e79577e5319ce660ede4a5131fa8a45de76e696746545e17db4437f", + "sha256:6e58d8097a269b6c43ec0abb3fa8d6c350ff0c7dfd23fc14d004610df88a4bb3", + "sha256:7352ba2226e45e8fba11c3fb416363faf1b06f3f2e80d07d2930401265f3bf9c", + "sha256:74cd3e3e9ba501e87a391b62e91f7b1610e8b3f3d706a368e5aee51614c1674e", + "sha256:75aa00a16b9a64d1550e2e70d3582c7fe1ef18560e0cf066a4087fe6d11908a2", + "sha256:7685fdc6e23267844eef2b9af585d7f171cca695e4eb369d7682544c3e2e1123", + "sha256:78ea6e0d4c89f8e216995923b854dd10bd09e48d3a5a3ccb48bb68f436a409ad", + "sha256:7c6aeb0d53e2ea92009b11c3d4ad9c03d0ecdfe602d547bed8537836e464f51e", + "sha256:7e8dbc13c4bc12e60df1b1f5e484112a5e96a6e8bba995e2965988ad73c5ea1b", + "sha256:7fba390ac2ca18ebdd456f3a9acfb4557d6dcb2eaba5cc3eadce01003892a770", + "sha256:82ffcf4782ceda09842b5b7875b36834c15d7cc0d5dd3d23a658ee9cf8819cd6", + "sha256:8c9204435aa6e5e9479a5ba4e669f05dea28b0c61958e0c0923cb164296d9329", + "sha256:8eb5a389bbdee6f4c422881de422ee0e7efdfcd9310b13d540b12aa8ae2c9e7b", + "sha256:958957b81418647f66820480363cb617ba6b5bcf189ec6c4cea307d051048545", + "sha256:a19bc2be3af5b22ff5c7fe858c380862e31052c74f62e2c6d565ed0855bed7a6", + "sha256:a8834d43763e9e92349ce8bb25dfb612aef6691eefefad885212d5e8f36a94a4", + "sha256:a99b738227c0f6f2bbe381b45804a7c46653c95b9d7bf13f6f02884bc87e4930", + "sha256:aa5bec5027d947ee4b2242caecf7dc6e4ea03833e92e9b5211ebb6ab4eede8b2", + "sha256:b1e1b2774485fbbb41a1beccc913b9c6f7971f78da61dd34207b9acc3cc2963e", + "sha256:c2f09b4aa699cfed4bbebc1829c5f044b41976707dac9230ed00d5a9fc6452c1", + "sha256:d39b926f14a2f7a7f92ded7d266b18f0108d867364769ab59da88ac2fa90d288", + "sha256:d62e84d38969491c6c1f6fe3dd63108e99d02de01bb3d98c160a5d4d24120910", + "sha256:df08bee1dd29a767311b50c62c0cfe4d72ae8c793e567d4c60b8c16c7c63a4f0", + "sha256:e871123d12c92e2c9bda6369b69ce2da9cef40b119cc340451e413e90355fa38", + "sha256:ee2a8c1101d06cc8fca7851dceb67afd53dd6fc0288bacaa632e647bc5afff58", + "sha256:f0a5bff35738f8f6607c4303561ee1d1e5f64d5b14cf3c472d3030566c82e763", + "sha256:f859066d8afde53f2ddabcd0705061e6d9d9868757c6ae28abe49bc885292df4", + "sha256:faf5c83f83f7ddebdafdb453d02efdbea7fb494080d7a8d45a8a20db06ea8da5", + "sha256:fea5456b2af42db8ecb1a6c2f144655ca6dcdcebd970f3145c56e668084ded7e" ], "markers": "python_version >= '3.8'", - "version": "==4.51.0" + "version": "==4.52.1" }, "fpdf2": { "hashes": [ - "sha256:21733fe27cc75021e5a4d7d69de95e185adf9717b1f9b1e14aa27d277d5c10fd", - "sha256:b09a297cbb14878ec4443ea2bef504d15e5cf4d92903118f013cb05e204fd491" + "sha256:1f176aea4a1cc0fa1da5c799fce8f8bcfe2e936b9d2298a75514c9efc7528bfa", + "sha256:f364c0d816a5e364eeeda9761cf5c961bae8c946f080cf87fed7f38ab773b318" ], "index": "pypi", "markers": "python_version >= '3.7'", - "version": "==2.7.8" + "version": "==2.7.9" }, "frozenlist": { "hashes": [ @@ -1199,12 +1199,12 @@ }, "google-api-python-client": { "hashes": [ - "sha256:984cc8cc8eb4923468b1926d2b8effc5b459a4dda3c845896eb87c153b28ef84", - "sha256:d50f7e2dfdbb7fc2732f6a0cba1c54d7bb676390679526c6bb628c901e43ec86" + "sha256:2bba3122b82a649c677b8a694b8e2bbf2a5fbf3420265caf3343bb88e2e9f0ae", + "sha256:7d45a28d738628715944a9c9d73e8696e7e03ac50b7de87f5e3035cefa94ed3a" ], "index": "pypi", "markers": "python_version >= '3.7'", - "version": "==2.129.0" + "version": "==2.130.0" }, "google-auth": { "hashes": [ @@ -1320,54 +1320,54 @@ }, "grpcio": { "hashes": [ - "sha256:01799e8649f9e94ba7db1aeb3452188048b0019dc37696b0f5ce212c87c560c3", - "sha256:0697563d1d84d6985e40ec5ec596ff41b52abb3fd91ec240e8cb44a63b895094", - "sha256:08e1559fd3b3b4468486b26b0af64a3904a8dbc78d8d936af9c1cf9636eb3e8b", - "sha256:166e5c460e5d7d4656ff9e63b13e1f6029b122104c1633d5f37eaea348d7356d", - "sha256:1ff737cf29b5b801619f10e59b581869e32f400159e8b12d7a97e7e3bdeee6a2", - "sha256:219bb1848cd2c90348c79ed0a6b0ea51866bc7e72fa6e205e459fedab5770172", - "sha256:259e11932230d70ef24a21b9fb5bb947eb4703f57865a404054400ee92f42f5d", - "sha256:2e93aca840c29d4ab5db93f94ed0a0ca899e241f2e8aec6334ab3575dc46125c", - "sha256:3a6d1f9ea965e750db7b4ee6f9fdef5fdf135abe8a249e75d84b0a3e0c668a1b", - "sha256:50344663068041b34a992c19c600236e7abb42d6ec32567916b87b4c8b8833b3", - "sha256:56cdf96ff82e3cc90dbe8bac260352993f23e8e256e063c327b6cf9c88daf7a9", - "sha256:5c039ef01516039fa39da8a8a43a95b64e288f79f42a17e6c2904a02a319b357", - "sha256:6426e1fb92d006e47476d42b8f240c1d916a6d4423c5258ccc5b105e43438f61", - "sha256:65bf975639a1f93bee63ca60d2e4951f1b543f498d581869922910a476ead2f5", - "sha256:6a1a3642d76f887aa4009d92f71eb37809abceb3b7b5a1eec9c554a246f20e3a", - "sha256:6ef0ad92873672a2a3767cb827b64741c363ebaa27e7f21659e4e31f4d750280", - "sha256:756fed02dacd24e8f488f295a913f250b56b98fb793f41d5b2de6c44fb762434", - "sha256:75f701ff645858a2b16bc8c9fc68af215a8bb2d5a9b647448129de6e85d52bce", - "sha256:8064d986d3a64ba21e498b9a376cbc5d6ab2e8ab0e288d39f266f0fca169b90d", - "sha256:878b1d88d0137df60e6b09b74cdb73db123f9579232c8456f53e9abc4f62eb3c", - "sha256:8f3f6883ce54a7a5f47db43289a0a4c776487912de1a0e2cc83fdaec9685cc9f", - "sha256:91b73d3f1340fefa1e1716c8c1ec9930c676d6b10a3513ab6c26004cb02d8b3f", - "sha256:93a46794cc96c3a674cdfb59ef9ce84d46185fe9421baf2268ccb556f8f81f57", - "sha256:93f45f27f516548e23e4ec3fbab21b060416007dbe768a111fc4611464cc773f", - "sha256:9e350cb096e5c67832e9b6e018cf8a0d2a53b2a958f6251615173165269a91b0", - "sha256:a2d60cd1d58817bc5985fae6168d8b5655c4981d448d0f5b6194bbcc038090d2", - "sha256:a3abfe0b0f6798dedd2e9e92e881d9acd0fdb62ae27dcbbfa7654a57e24060c0", - "sha256:a44624aad77bf8ca198c55af811fd28f2b3eaf0a50ec5b57b06c034416ef2d0a", - "sha256:a7b19dfc74d0be7032ca1eda0ed545e582ee46cd65c162f9e9fc6b26ef827dc6", - "sha256:ad2ac8903b2eae071055a927ef74121ed52d69468e91d9bcbd028bd0e554be6d", - "sha256:b005292369d9c1f80bf70c1db1c17c6c342da7576f1c689e8eee4fb0c256af85", - "sha256:b2e44f59316716532a993ca2966636df6fbe7be4ab6f099de6815570ebe4383a", - "sha256:b3afbd9d6827fa6f475a4f91db55e441113f6d3eb9b7ebb8fb806e5bb6d6bd0d", - "sha256:b416252ac5588d9dfb8a30a191451adbf534e9ce5f56bb02cd193f12d8845b7f", - "sha256:b5194775fec7dc3dbd6a935102bb156cd2c35efe1685b0a46c67b927c74f0cfb", - "sha256:cacdef0348a08e475a721967f48206a2254a1b26ee7637638d9e081761a5ba86", - "sha256:cd1e68776262dd44dedd7381b1a0ad09d9930ffb405f737d64f505eb7f77d6c7", - "sha256:cdcda1156dcc41e042d1e899ba1f5c2e9f3cd7625b3d6ebfa619806a4c1aadda", - "sha256:cf8dae9cc0412cb86c8de5a8f3be395c5119a370f3ce2e69c8b7d46bb9872c8d", - "sha256:d2497769895bb03efe3187fb1888fc20e98a5f18b3d14b606167dacda5789434", - "sha256:e3b77eaefc74d7eb861d3ffbdf91b50a1bb1639514ebe764c47773b833fa2d91", - "sha256:e48cee31bc5f5a31fb2f3b573764bd563aaa5472342860edcc7039525b53e46a", - "sha256:e4cbb2100ee46d024c45920d16e888ee5d3cf47c66e316210bc236d5bebc42b3", - "sha256:f28f8b2db7b86c77916829d64ab21ff49a9d8289ea1564a2b2a3a8ed9ffcccd3", - "sha256:f3023e14805c61bc439fb40ca545ac3d5740ce66120a678a3c6c2c55b70343d1", - "sha256:fdf348ae69c6ff484402cfdb14e18c1b0054ac2420079d575c53a60b9b2853ae" + "sha256:01615bbcae6875eee8091e6b9414072f4e4b00d8b7e141f89635bdae7cf784e5", + "sha256:02cc9cc3f816d30f7993d0d408043b4a7d6a02346d251694d8ab1f78cc723e7e", + "sha256:0b2dfe6dcace264807d9123d483d4c43274e3f8c39f90ff51de538245d7a4145", + "sha256:0da1d921f8e4bcee307aeef6c7095eb26e617c471f8cb1c454fd389c5c296d1e", + "sha256:0f30596cdcbed3c98024fb4f1d91745146385b3f9fd10c9f2270cbfe2ed7ed91", + "sha256:1ce4cd5a61d4532651079e7aae0fedf9a80e613eed895d5b9743e66b52d15812", + "sha256:1f279ad72dd7d64412e10f2443f9f34872a938c67387863c4cd2fb837f53e7d2", + "sha256:1f5de082d936e0208ce8db9095821361dfa97af8767a6607ae71425ac8ace15c", + "sha256:1f8ea18b928e539046bb5f9c124d717fbf00cc4b2d960ae0b8468562846f5aa1", + "sha256:2186d76a7e383e1466e0ea2b0febc343ffeae13928c63c6ec6826533c2d69590", + "sha256:23b6887bb21d77649d022fa1859e05853fdc2e60682fd86c3db652a555a282e0", + "sha256:257baf07f53a571c215eebe9679c3058a313fd1d1f7c4eede5a8660108c52d9c", + "sha256:2a18090371d138a57714ee9bffd6c9c9cb2e02ce42c681aac093ae1e7189ed21", + "sha256:2e8fabe2cc57a369638ab1ad8e6043721014fdf9a13baa7c0e35995d3a4a7618", + "sha256:3161a8f8bb38077a6470508c1a7301cd54301c53b8a34bb83e3c9764874ecabd", + "sha256:31890b24d47b62cc27da49a462efe3d02f3c120edb0e6c46dcc0025506acf004", + "sha256:3550493ac1d23198d46dc9c9b24b411cef613798dc31160c7138568ec26bc9b4", + "sha256:3b09c3d9de95461214a11d82cc0e6a46a6f4e1f91834b50782f932895215e5db", + "sha256:3d2004e85cf5213995d09408501f82c8534700d2babeb81dfdba2a3bff0bb396", + "sha256:46b8b43ba6a2a8f3103f103f97996cad507bcfd72359af6516363c48793d5a7b", + "sha256:579dd9fb11bc73f0de061cab5f8b2def21480fd99eb3743ed041ad6a1913ee2f", + "sha256:597191370951b477b7a1441e1aaa5cacebeb46a3b0bd240ec3bb2f28298c7553", + "sha256:59c68df3a934a586c3473d15956d23a618b8f05b5e7a3a904d40300e9c69cbf0", + "sha256:5a56797dea8c02e7d3a85dfea879f286175cf4d14fbd9ab3ef2477277b927baa", + "sha256:650a8150a9b288f40d5b7c1d5400cc11724eae50bd1f501a66e1ea949173649b", + "sha256:6d5541eb460d73a07418524fb64dcfe0adfbcd32e2dac0f8f90ce5b9dd6c046c", + "sha256:6ec5ed15b4ffe56e2c6bc76af45e6b591c9be0224b3fb090adfb205c9012367d", + "sha256:73f84f9e5985a532e47880b3924867de16fa1aa513fff9b26106220c253c70c5", + "sha256:753cb58683ba0c545306f4e17dabf468d29cb6f6b11832e1e432160bb3f8403c", + "sha256:7c1f5b2298244472bcda49b599be04579f26425af0fd80d3f2eb5fd8bc84d106", + "sha256:7e013428ab472892830287dd082b7d129f4d8afef49227a28223a77337555eaa", + "sha256:7f17572dc9acd5e6dfd3014d10c0b533e9f79cd9517fc10b0225746f4c24b58e", + "sha256:85fda90b81da25993aa47fae66cae747b921f8f6777550895fb62375b776a231", + "sha256:874c741c8a66f0834f653a69e7e64b4e67fcd4a8d40296919b93bab2ccc780ba", + "sha256:8d598b5d5e2c9115d7fb7e2cb5508d14286af506a75950762aa1372d60e41851", + "sha256:8de0399b983f8676a7ccfdd45e5b2caec74a7e3cc576c6b1eecf3b3680deda5e", + "sha256:a053584079b793a54bece4a7d1d1b5c0645bdbee729215cd433703dc2532f72b", + "sha256:a54362f03d4dcfae63be455d0a7d4c1403673498b92c6bfe22157d935b57c7a9", + "sha256:aca4f15427d2df592e0c8f3d38847e25135e4092d7f70f02452c0e90d6a02d6d", + "sha256:b2cbdfba18408389a1371f8c2af1659119e1831e5ed24c240cae9e27b4abc38d", + "sha256:b52e1ec7185512103dd47d41cf34ea78e7a7361ba460187ddd2416b480e0938c", + "sha256:c46fb6bfca17bfc49f011eb53416e61472fa96caa0979b4329176bdd38cbbf2a", + "sha256:c56c91bd2923ddb6e7ed28ebb66d15633b03e0df22206f22dfcdde08047e0a48", + "sha256:cf4c8daed18ae2be2f1fc7d613a76ee2a2e28fdf2412d5c128be23144d28283d", + "sha256:d7b7bf346391dffa182fba42506adf3a84f4a718a05e445b37824136047686a1", + "sha256:d9171f025a196f5bcfec7e8e7ffb7c3535f7d60aecd3503f9e250296c7cfc150" ], - "version": "==1.63.0" + "version": "==1.64.0" }, "grpcio-status": { "hashes": [ @@ -1468,11 +1468,11 @@ }, "huggingface-hub": { "hashes": [ - "sha256:075c30d48ee7db2bba779190dc526d2c11d422aed6f9044c5e2fdc2c432fdb91", - "sha256:7126dedd10a4c6fac796ced4d87a8cf004efc722a5125c2c09299017fa366fa9" + "sha256:48727a16e704d409c4bb5913613308499664f22a99743435dc3a13b23c485827", + "sha256:f6829b62d5fdecb452a76fdbec620cba4c1573655a8d710c1df71735fd9edbd2" ], "markers": "python_full_version >= '3.8.0'", - "version": "==0.23.0" + "version": "==0.23.2" }, "humanfriendly": { "hashes": [ @@ -1778,12 +1778,12 @@ }, "langchain": { "hashes": [ - "sha256:09991999fbd6c3421a12db3c7d1f52d55601fc41d9b2a3ef51aab2e0e9c38da9", - "sha256:f35c95eed8c8375e02dce95a34f2fd4856a4c98269d6dc34547a23dba5beab7e" + "sha256:3e13bf97c5717bce2c281f5117e8778823e8ccf62d949e73d3869448962b1c97", + "sha256:5758a315e1ac92eb26dafec5ad0fafa03cafa686aba197d5bb0b1dd28cc03ebe" ], "index": "pypi", "markers": "python_version < '4.0' and python_full_version >= '3.8.1'", - "version": "==0.1.20" + "version": "==0.2.1" }, "langchain-cohere": { "hashes": [ @@ -1796,20 +1796,20 @@ }, "langchain-community": { "hashes": [ - "sha256:127fc4b75bc67b62fe827c66c02e715a730fef8fe69bd2023d466bab06b5810d", - "sha256:ecb48660a70a08c90229be46b0cc5f6bc9f38f2833ee44c57dfab9bf3a2c121a" + "sha256:079942e8f15da975769ccaae19042b7bba5481c42020bbbd7d8cad73a9393261", + "sha256:b834e2c5ded6903b839fcaf566eee90a0ffae53405a0f7748202725e701d39cd" ], "index": "pypi", "markers": "python_version < '4.0' and python_full_version >= '3.8.1'", - "version": "==0.0.38" + "version": "==0.2.1" }, "langchain-core": { "hashes": [ - "sha256:084c3fc452f5a6966c28ab3ec5dbc8b8d26fc3f63378073928f4e29d90b6393f", - "sha256:62566749c92e8a1181c255c788548dc16dbc319d896cd6b9c95dc17af9b2a6db" + "sha256:3521e1e573988c47399fca9739270c5d34f8ecec147253ad829eb9ff288f76d5", + "sha256:49383126168d934559a543ce812c485048d9e6ac9b6798fbf3d4a72b6bba5b0c" ], "markers": "python_version < '4.0' and python_full_version >= '3.8.1'", - "version": "==0.1.52" + "version": "==0.2.1" }, "langchain-openai": { "hashes": [ @@ -1822,11 +1822,11 @@ }, "langchain-text-splitters": { "hashes": [ - "sha256:13887f32705862c1e1454213cb7834a63aae57c26fcd80346703a1d09c46168d", - "sha256:ac8927dc0ba08eba702f6961c9ed7df7cead8de19a9f7101ab2b5ea34201b3c1" + "sha256:7b4c6a45f8471630a882b321e138329b6897102a5bc62f4c12be1c0b05bb9199", + "sha256:b32ab4f7397f7d42c1fa3283fefc2547ba356bd63a68ee9092865e5ad83c82f9" ], "markers": "python_version < '4.0' and python_full_version >= '3.8.1'", - "version": "==0.0.2" + "version": "==0.2.0" }, "langdetect": { "hashes": [ @@ -1837,29 +1837,29 @@ }, "langfuse": { "hashes": [ - "sha256:07dcbb8fa9f754928d6af377dbea530d591680e3f50340d687018d8bcb83ba34", - "sha256:ecdd06fae46637d635249dfaf8f0564ac8e8769519712b11e777d2905309e5d7" + "sha256:362e3078c5a891df0b7ba3c9ce82f046d1f0274eab3d55337e443fff526f18ad", + "sha256:3ca2ef8539a8f28cb80135f4b46b80d5585ce183f8e2035f318be296d09d7d88" ], "index": "pypi", "markers": "python_version < '4.0' and python_full_version >= '3.8.1'", - "version": "==2.32.0" + "version": "==2.33.0" }, "langgraph": { "hashes": [ - "sha256:229f29959d44c6bc4cec9f42ba68766cadedd25f0b3052afb2a43cbfac4f8d4d", - "sha256:fa10cf938b1fbc270e2f597d79fbb7ab196f9c0a56d6a96a479e65879729d70e" + "sha256:98abfaea107af79cfe3e9eb3768542fcff6c78561d79f3a532099bd17c0b9be2", + "sha256:beb74bff8429b98d5840882a615913a3df4a6986825b96cf3b6453c9aab013b1" ], "index": "pypi", "markers": "python_version < '4.0' and python_full_version >= '3.9.0'", - "version": "==0.0.49" + "version": "==0.0.55" }, "langsmith": { "hashes": [ - "sha256:445e3bc1d3baa1e5340cd979907a19483b9763a2ed37b863a01113d406f69345", - "sha256:e748a89f4dd6aa441349143e49e546c03b5dfb43376a25bfef6a5ca792fe1437" + "sha256:7810afdf5e3f3b472fc581a29371fb96cd843dde2149e048d1b9610325159d1e", + "sha256:a609405b52f6f54df442a142cbf19ab38662d54e532f96028b4c546434d4afdf" ], "markers": "python_version < '4.0' and python_full_version >= '3.8.1'", - "version": "==0.1.59" + "version": "==0.1.63" }, "layoutparser": { "extras": [ @@ -1875,12 +1875,12 @@ }, "litellm": { "hashes": [ - "sha256:3ae9c217dcfb6c2ab4b9592ed736482475b14e3dfb4d445076be717c48131791", - "sha256:fc3344c6606c3261bd9ae2640f970c32cf5ff8ee596fd790209a30a8f3315a36" + "sha256:1a0b3088fe4b072f367343a7d7d25e4c5f9990975d9ee7dbf21f3b25ff046bb0", + "sha256:4d33465eacde566832b9d7aa7677476e61aa7ba4ec26631fb1c8411c87219ed1" ], "index": "pypi", "markers": "python_version not in '2.7, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7' and python_version >= '3.8'", - "version": "==1.37.13" + "version": "==1.38.10" }, "llama-cpp-python": { "hashes": [ @@ -1891,12 +1891,12 @@ }, "llama-index": { "hashes": [ - "sha256:d5057fd609e2423e75a4695242ab030d1647e4f07cb46faf9476ab504005f033", - "sha256:da8871c5c8e5d038e56c0e5cb8c18a81ddc4117bf403bace95b4cec212f88fb9" + "sha256:59d273b7695d66757f6fe3e9a0a06c994a2e26a9d545310cd088a684be1dc4b5", + "sha256:ddc7e77cfd526869e781a76a3db17175f3c04ec97f256bf4ee2bf433008d7dd1" ], "index": "pypi", "markers": "python_version < '4.0' and python_full_version >= '3.8.1'", - "version": "==0.10.37" + "version": "==0.10.39" }, "llama-index-agent-openai": { "hashes": [ @@ -1916,19 +1916,19 @@ }, "llama-index-core": { "hashes": [ - "sha256:02f06bdefb5c6fd11dee1f65007a98decf3b266ad76136b7cfd3bec44efc5493", - "sha256:a6e8ea790e5b3656a254d9b47f8c00044dd46aae1cd43004c5d1303a7502b3e6" + "sha256:abc9d18107d8d2017d6e693bdab8ed8c1a8b8093dc9a0093127f83778ecff10f", + "sha256:d6aef2ff952cbd2c04f1a10ab865af8618b489a64bfbda925855881f3bfddbf3" ], "markers": "python_version < '4.0' and python_full_version >= '3.8.1'", - "version": "==0.10.36" + "version": "==0.10.39.post1" }, "llama-index-embeddings-openai": { "hashes": [ - "sha256:0fd292b2f9a0ad4534a790d6374726bc885853188087eb018167dcf239643924", - "sha256:fbd16d6197b91f4dbdc6d0707e573cc224ac2b0a48d5b370c6232dd8a2282473" + "sha256:1bc1fc9b46773a12870c5d3097d3735d7ca33805f12462a8e35ae8a6e5ce1cf6", + "sha256:c3cfa83b537ded34d035fc172a945dd444c87fb58a89b02dfbf785b675f9f681" ], "markers": "python_version < '4.0' and python_full_version >= '3.8.1'", - "version": "==0.1.9" + "version": "==0.1.10" }, "llama-index-indices-managed-llama-cloud": { "hashes": [ @@ -1948,11 +1948,11 @@ }, "llama-index-llms-openai": { "hashes": [ - "sha256:2bd98ff3abbb4aa0daed1fbe01d8b69f8270ab86c53f8da51fc9f148a672264c", - "sha256:f61b64a997892e424fb3cd547090d279c5b210ef15b614fc39de854d3ccaa7e7" + "sha256:e9d631135160ac87093cd7d5ae3e32c4debf8eeaafa29ee4739675867155d773", + "sha256:fd2fa240238c7dca0170bf55957bb088d9b6acf63c80924eb59498f3a5ac0df3" ], "markers": "python_version < '4.0' and python_full_version >= '3.8.1'", - "version": "==0.1.19" + "version": "==0.1.21" }, "llama-index-multi-modal-llms-openai": { "hashes": [ @@ -1980,11 +1980,11 @@ }, "llama-index-readers-file": { "hashes": [ - "sha256:37de54ad0cfbdc607c195532b9a292417a4714f57773570b87027b8dc381f0e2", - "sha256:a8d4a69a9ea659c14ebb22ca9a5560b9c7ec6f501e7f68f6c52f591374165376" + "sha256:32450d0a3edc6ef6af575f814beec39cd3a3351eaf0e3c97045bdd72a7a7b38d", + "sha256:fde8ecb588e703849e51dc0f075f56d1f5db3bc1479dd00c21b42e93b81b6267" ], "markers": "python_version < '4.0' and python_full_version >= '3.8.1'", - "version": "==0.1.22" + "version": "==0.1.23" }, "llama-index-readers-llama-parse": { "hashes": [ @@ -2030,6 +2030,7 @@ "sha256:19b4e485cd07b7d83e3fe3b72132e7df70bfac22b14fe4bf7a23822c3a35bff5", "sha256:1a2569a1f15ae6c8c64108a2cd2b4a858fc1e13d25846be0666fc144715e32ab", "sha256:1a7aca7964ac4bb07680d5c9d63b9d7028cace3e2d43175cb50bba8c5ad33316", + "sha256:1b590b39ef90c6b22ec0be925b211298e810b4856909c8ca60d27ffbca6c12e6", "sha256:1d8a701774dfc42a2f0b8ccdfe7dbc140500d1049e0632a611985d943fcf12df", "sha256:1e275ea572389e41e8b039ac076a46cb87ee6b8542df3fff26f5baab43713bca", "sha256:2304d3c93f2258ccf2cf7a6ba8c761d76ef84948d87bf9664e14d203da2cd264", @@ -2085,6 +2086,7 @@ "sha256:79d1fb9252e7e2cfe4de6e9a6610c7cbb99b9708e2c3e29057f487de5a9eaefa", "sha256:7ce7ad8abebe737ad6143d9d3bf94b88b93365ea30a5b81f6877ec9c0dee0a48", "sha256:7ed07b3062b055d7a7f9d6557a251cc655eed0b3152b76de619516621c56f5d3", + "sha256:7ff762670cada8e05b32bf1e4dc50b140790909caa8303cfddc4d702b71ea184", "sha256:8268cbcd48c5375f46e000adb1390572c98879eb4f77910c6053d25cc3ac2c67", "sha256:875a3f90d7eb5c5d77e529080d95140eacb3c6d13ad5b616ee8095447b1d22e7", "sha256:89feb82ca055af0fe797a2323ec9043b26bc371365847dbe83c7fd2e2f181c34", @@ -2102,6 +2104,7 @@ "sha256:a233bb68625a85126ac9f1fc66d24337d6e8a0f9207b688eec2e7c880f012ec0", "sha256:a2f6a1bc2460e643785a2cde17293bd7a8f990884b822f7bca47bee0a82fc66b", "sha256:a6d17e0370d2516d5bb9062c7b4cb731cff921fc875644c3d751ad857ba9c5b1", + "sha256:a6d2092797b388342c1bc932077ad232f914351932353e2e8706851c870bca1f", "sha256:ab67ed772c584b7ef2379797bf14b82df9aa5f7438c5b9a09624dd834c1c1aaf", "sha256:ac6540c9fff6e3813d29d0403ee7a81897f1d8ecc09a8ff84d2eea70ede1cdbf", "sha256:ae4073a60ab98529ab8a72ebf429f2a8cc612619a8c04e08bed27450d52103c0", @@ -2120,6 +2123,7 @@ "sha256:bcc98f911f10278d1daf14b87d65325851a1d29153caaf146877ec37031d5f36", "sha256:be49ad33819d7dcc28a309b86d4ed98e1a65f3075c6acd3cd4fe32103235222b", "sha256:bec4bd9133420c5c52d562469c754f27c5c9e36ee06abc169612c959bd7dbb07", + "sha256:c2faf60c583af0d135e853c86ac2735ce178f0e338a3c7f9ae8f622fd2eb788c", "sha256:c689d0d5381f56de7bd6966a4541bff6e08bf8d3871bbd89a0c6ab18aa699573", "sha256:c7079d5eb1c1315a858bbf180000757db8ad904a89476653232db835c3114001", "sha256:cb3942960f0beb9f46e2a71a3aca220d1ca32feb5a398656be934320804c0df9", @@ -2536,7 +2540,7 @@ "sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3", "sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f" ], - "markers": "python_version >= '3.9'", + "markers": "python_version >= '3.10'", "version": "==1.26.4" }, "oauthlib": { @@ -2565,78 +2569,73 @@ }, "onnx": { "hashes": [ - "sha256:034ae21a2aaa2e9c14119a840d2926d213c27aad29e5e3edaa30145a745048e1", - "sha256:03a627488b1a9975d95d6a55582af3e14c7f3bb87444725b999935ddd271d352", - "sha256:0e60ca76ac24b65c25860d0f2d2cdd96d6320d062a01dd8ce87c5743603789b8", - "sha256:0efeb46985de08f0efe758cb54ad3457e821a05c2eaf5ba2ccb8cd1602c08084", - "sha256:209fe84995a28038e29ae8369edd35f33e0ef1ebc3bddbf6584629823469deb1", - "sha256:237c6987c6c59d9f44b6136f5819af79574f8d96a760a1fa843bede11f3822f7", - "sha256:257858cbcb2055284f09fa2ae2b1cfd64f5850367da388d6e7e7b05920a40c90", - "sha256:298f28a2b5ac09145fa958513d3d1e6b349ccf86a877dbdcccad57713fe360b3", - "sha256:30f02beaf081c7d9fa3a8c566a912fc4408e28fc33b1452d58f890851691d364", - "sha256:3e0860fea94efde777e81a6f68f65761ed5e5f3adea2e050d7fbe373a9ae05b3", - "sha256:5202559070afec5144332db216c20f2fff8323cf7f6512b0ca11b215eacc5bf3", - "sha256:62a2e27ae8ba5fc9b4a2620301446a517b5ffaaf8566611de7a7c2160f5bcf4c", - "sha256:66300197b52beca08bc6262d43c103289c5d45fde43fb51922ed1eb83658cf0c", - "sha256:70a90649318f3470985439ea078277c9fb2a2e6e2fd7c8f3f2b279402ad6c7e6", - "sha256:71839546b7f93be4fa807995b182ab4b4414c9dbf049fee11eaaced16fcf8df2", - "sha256:7449241e70b847b9c3eb8dae622df8c1b456d11032a9d7e26e0ee8a698d5bf86", - "sha256:7532343dc5b8b5e7c3e3efa441a3100552f7600155c4db9120acd7574f64ffbf", - "sha256:7665217c45a61eb44718c8e9349d2ad004efa0cb9fbc4be5c6d5e18b9fe12b52", - "sha256:7755cbd5f4e47952e37276ea5978a46fc8346684392315902b5ed4a719d87d06", - "sha256:77579e7c15b4df39d29465b216639a5f9b74026bdd9e4b6306cd19a32dcfe67c", - "sha256:7fb29a9a692b522deef1f6b8f2145da62c0c43ea1ed5b4c0f66f827fdc28847d", - "sha256:81b4ee01bc554e8a2b11ac6439882508a5377a1c6b452acd69a1eebb83571117", - "sha256:8cf3e518b1b1b960be542e7c62bed4e5219e04c85d540817b7027029537dec92", - "sha256:9eadbdce25b19d6216f426d6d99b8bc877a65ed92cbef9707751c6669190ba4f", - "sha256:ae0029f5e47bf70a1a62e7f88c80bca4ef39b844a89910039184221775df5e43", - "sha256:c392faeabd9283ee344ccb4b067d1fea9dfc614fa1f0de7c47589efd79e15e78", - "sha256:d7886c05aa6d583ec42f6287678923c1e343afc4350e49d5b36a0023772ffa22", - "sha256:ddf14a3d32234f23e44abb73a755cb96a423fac7f004e8f046f36b10214151ee", - "sha256:e5752bbbd5717304a7643643dba383a2fb31e8eb0682f4e7b7d141206328a73b", - "sha256:ec22a43d74eb1f2303373e2fbe7fbcaa45fb225f4eb146edfed1356ada7a9aea", - "sha256:f51179d4af3372b4f3800c558d204b592c61e4b4a18b8f61e0eea7f46211221a" + "sha256:006ba5059c85ce43e89a1486cc0276d0f1a8ec9c6efd1a9334fd3fa0f6e33b64", + "sha256:0f3faf239b48418b3ea6fe73bd4d86807b903d0b2ebd20b8b8c84f83741b0f18", + "sha256:0fc189195a40b5862fb77d97410c89823197fe19c1088ce150444eec72f200c1", + "sha256:1521ea7cd3497ecaf57d3b5e72d637ca5ebca632122a0806a9df99bedbeecdf8", + "sha256:15abf94a7868eed6db15a8b5024ba570c891cae77ca4d0e7258dabdad76980df", + "sha256:18b22143836838591f6551b089196e69f60c47fabce52b4b72b4cb37522645aa", + "sha256:1c059fea6229c44d2d39c8f6e2f2f0d676d587c97f4c854c86f3e7bc97e0b31c", + "sha256:2bed6fe05905b073206cabbb4463c58050cf8d544192303c09927b229f93ac14", + "sha256:2fde4dd5bc278b3fc8148f460bce8807b2874c66f48529df9444cdbc9ecf456b", + "sha256:32e11d39bee04f927fab09f74c46cf76584094462311bab1aca9ccdae6ed3366", + "sha256:45cf20421aeac03872bea5fd6ebf92abe15c4d1461a2572eb839add5059e2a09", + "sha256:496ba17b16a74711081772e1b03f3207959972e351298e51abdc600051027a22", + "sha256:5798414332534a41404a7ff83677d49ced01d70160e1541484cce647f2295051", + "sha256:595b2830093f81361961295f7b0ebb6000423bcd04123d516d081c306002e387", + "sha256:6251910e554f811fdd070164b0bc76d76b067b95576cb9dad4d52ae64fe014b5", + "sha256:67f372db4fe8fe61e00b762af5b0833aa72b5baa37e7e2f47d8668964ebff411", + "sha256:8299193f0f2a3849bfc069641aa8e4f93696602da8d165632af8ee48ec7556b6", + "sha256:8884bf53b552873c0c9b072cb8625e7d4e8f3cc0529191632d24e3de58a3b93a", + "sha256:8c2b70d602acfb90056fbdc60ef26f4658f964591212a4e9dbbda922ff43061b", + "sha256:95aa20aa65a9035d7543e81713e8b0f611e213fc02171959ef4ee09311d1bf28", + "sha256:aa7518d6d27f357261a4014079dec364cad6fef827d0b3fe1d3ff59939a68394", + "sha256:b3d10405706807ec2ef493b2a78519fa0264cf190363e89478585aac1179b596", + "sha256:bb2d392e5b7060082c2fb38eb5c44f67eb34ff5f0681bd6f45beff9abc6f7094", + "sha256:c11e3b15eee46cd20767e505cc3ba97457ef5ac93c3e459cdfb77943ff8fe9a7", + "sha256:e69ad8c110d8c37d759cad019d498fdf3fd24e0bfaeb960e52fed0469a5d2974", + "sha256:f98e275b4f46a617a9c527e60c02531eae03cf67a04c26db8a1c20acee539533" ], - "version": "==1.16.0" + "version": "==1.16.1" }, "onnxruntime": { "hashes": [ - "sha256:0962a4d0f5acebf62e1f0bf69b6e0adf16649115d8de854c1460e79972324d68", - "sha256:23da8469049b9759082e22c41a444f44a520a9c874b084711b6343672879f50b", - "sha256:26e950cf0333cf114a155f9142e71da344d2b08dfe202763a403ae81cc02ebd1", - "sha256:2949730215af3f9289008b2e31e9bbef952012a77035b911c4977edea06f3f9e", - "sha256:2f823d5eb4807007f3da7b27ca972263df6a1836e6f327384eb266274c53d05d", - "sha256:351bf5a1140dcc43bfb8d3d1a230928ee61fcd54b0ea664c8e9a889a8e3aa515", - "sha256:3ff2dc012bd930578aff5232afd2905bf16620815f36783a941aafabf94b3702", - "sha256:4395ba86e3c1e93c794a00619ef1aec597ab78f5a5039f3c6d2e9d0695c0a734", - "sha256:468ccb8a0faa25c681a41787b1594bf4448b0252d3efc8b62fd8b2411754340f", - "sha256:570760ca53a74cdd751ee49f13de70d1384dcf73d9888b8deac0917023ccda6d", - "sha256:57a3de15778da8d6cc43fbf6cf038e1e746146300b5f0b1fbf01f6f795dc6440", - "sha256:58672cf20293a1b8a277a5c6c55383359fcdf6119b2f14df6ce3b140f5001c39", - "sha256:5a335c76f9c002a8586c7f38bc20fe4b3725ced21f8ead835c3e4e507e42b2ab", - "sha256:6c7555a49008f403fb3b19204671efb94187c5085976ae526cb625f6ede317bc", - "sha256:77c318178d9c16e9beadd9a4070d8aaa9f57382c3f509b01709f0f010e583b99", - "sha256:8f56a86fbd0ddc8f22696ddeda0677b041381f4168a2ca06f712ef6ec6050d6d", - "sha256:9d87b68bf931ac527b2d3c094ead66bb4381bac4298b65f46c54fe4d1e255865", - "sha256:a058b39801baefe454eeb8acf3ada298c55a06a4896fafc224c02d79e9037f60", - "sha256:a94b600b7af50e922d44b95a57981e3e35103c6e3693241a03d3ca204740bbda", - "sha256:b66b23f9109e78ff2791628627a26f65cd335dcc5fbd67ff60162733a2f7aded", - "sha256:bdf354c04344ec38564fc22394e1fe08aa6d70d790df00159205a0055c4a4d3f", - "sha256:cf6c37483782e4785019b56e26224a25e9b9a35b849d0169ce69189867a22bb1", - "sha256:d86dde9c0bb435d709e51bd25991c9fe5b9a5b168df45ce119769edc4d198b15", - "sha256:e0ae39f5452278cd349520c296e7de3e90d62dc5b0157c6868e2748d7f28b871", - "sha256:e8cd90c1c17d13d47b89ab076471e07fb85467c01dcd87a8b8b5cdfbcb40aa51" + "sha256:0284c579c20ec8b1b472dd190290a040cc68b6caec790edb960f065d15cf164a", + "sha256:15b944623b2cdfe7f7945690bfb71c10a4531b51997c8320b84e7b0bb59af902", + "sha256:1f45ca2887f62a7b847d526965686b2923efa72538c89b7703c7b3fe970afd59", + "sha256:1fa175bd43f610465d5787ae06050c81f7ce09da2bf3e914eb282cb8eab363ef", + "sha256:2c7fd86eca727c989bb8d9c5104f3c45f7ee45f445cc75579ebe55d6b99dfd7c", + "sha256:2e61ce5005118064b1a0ed73ebe936bc773a102f067db34108ea6c64dd62a179", + "sha256:3d24bd623872a72a7fe2f51c103e20fcca2acfa35d48f2accd6be1ec8633d960", + "sha256:46de6031cb6745f33f7eca9e51ab73e8c66037fb7a3b6b4560887c5b55ab5d5d", + "sha256:47af3f803752fce23ea790fd8d130a47b2b940629f03193f780818622e856e7a", + "sha256:498d2b8380635f5e6ebc50ec1b45f181588927280f32390fb910301d234f97b8", + "sha256:5a3b7993a5ecf4a90f35542a4757e29b2d653da3efe06cdd3164b91167bbe10d", + "sha256:6ffb445816d06497df7a6dd424b20e0b2c39639e01e7fe210e247b82d15a23b9", + "sha256:71ed219b768cab004e5cd83e702590734f968679bf93aa488c1a7ffbe6e220c3", + "sha256:8614733de3695656411d71fc2f39333170df5da6c7efd6072a59962c0bc7055c", + "sha256:885509d2b9ba4b01f08f7fa28d31ee54b6477953451c7ccf124a84625f07c803", + "sha256:9153eb2b4d5bbab764d0aea17adadffcfc18d89b957ad191b1c3650b9930c59f", + "sha256:99e8caf3a8565c853a22d323a3eebc2a81e3de7591981f085a4f74f7a60aab2d", + "sha256:9e24d9ecc8781323d9e2eeda019b4b24babc4d624e7d53f61b1fe1a929b0511a", + "sha256:a4fc8a2a526eb442317d280610936a9f73deece06c7d5a91e51570860802b93f", + "sha256:ac67a4de9c1326c4d87bcbfb652c923039b8a2446bb28516219236bec3b494f5", + "sha256:ba7cc0ce2798a386c082aaa6289ff7e9bedc3dee622eef10e74830cff200a72e", + "sha256:d47353d036d8c380558a5643ea5f7964d9d259d31c86865bad9162c3e916d1f6", + "sha256:f15e41ca9b307a12550bfd2ec93f88905d9fba12bab7e578f05138ad0ae10d7b", + "sha256:f1d79941f15fc40b1ee67738b2ca26b23e0181bf0070b5fb2984f0988734698f", + "sha256:f8608398976ed18aef450d83777ff6f77d0b64eced1ed07a985e1a7db8ea3771" ], - "version": "==1.17.3" + "version": "==1.18.0" }, "openai": { "hashes": [ - "sha256:4f85190e577cba0b066e1950b8eb9b11d25bc7ebcc43a86b326ce1bfa564ec74", - "sha256:c9fb3c3545c118bbce8deb824397b9433a66d0d0ede6a96f7009c95b76de4a46" + "sha256:8e1bcdca2b96fe3636ab522fa153d88efde1b702d12ec32f1c73e9553ff93f45", + "sha256:f88119c8a848998be533c71ab8aa832446fa72b7ddbc70917c3f5886dc132051" ], "index": "pypi", "markers": "python_full_version >= '3.7.1'", - "version": "==1.30.1" + "version": "==1.30.3" }, "opencv-python": { "hashes": [ @@ -2761,12 +2760,12 @@ }, "pandasai": { "hashes": [ - "sha256:6d79381bcd1d89fd03e994cc33c4b24600fcfbc90fd842134b70d44277bd5fa9", - "sha256:cea4480edf1251b6b1648940ab74183eb0820610c7d3c001d219973aafa625c8" + "sha256:504cf26776a3b1bef1d265b1b5d837c1494b3ecb471378d0cfcca8e6d94476bb", + "sha256:529a1b93f12d2a690980eea7e760a71689025ade851cfc52785746b9692ee753" ], "index": "pypi", "markers": "python_version not in '2.7, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8' and python_version >= '3.9'", - "version": "==2.0.42" + "version": "==2.0.43" }, "pathspec": { "hashes": [ @@ -2983,17 +2982,17 @@ }, "playwright": { "hashes": [ - "sha256:50d9a5c07c76456945a2296d63f78fdf6eb11aed3e8d39bb5ccbda760a8d6d41", - "sha256:87191272c40b4c282cf2c9449ca3acaf705f38ac6e2372270f1617ce16b661b8", - "sha256:9b7bd707eeeaebee47f656b2de90aa9bd85e9ca2c6af7a08efd73896299e4d50", - "sha256:b03b12bd4da9c2cfb78dff820deac8b52892fe3c2f89a4d95d6f08c59e41deb9", - "sha256:bd8b818904b17e2914be23e7bc2a340b203f57fe81678520b10f908485b056ea", - "sha256:e05a8d8fb2040c630429cca07e843c8fa33059717837c8f50c01b7d1fc651ce1", - "sha256:e9ec21b141727392f630761c7f4dec46d80c98243614257cc501b64ff636d337" + "sha256:235e37832deaa9af8a629d09955396259ab757533cc1922f9b0308b4ee0d9cdf", + "sha256:29161b1fae71f7c402df5b15f0bd3deaeecd8b3d1ecd9ff01271700c66210e7b", + "sha256:54d44fb634d870839301c2326e1e12a178a1be0de76d0caaec230ab075c2e077", + "sha256:5b8a4a1d4d50f4ff99b47965576322a8c4e34631854b862a25c1feb824be22a8", + "sha256:64b67194e73b47ae72acf25f1a9cfacfef38ca2b52e4bb8b0abd385c5deeaadf", + "sha256:c2317a80896796fdeb03d60f06cc229e775ff2e19b80c64b1bb9b29c8a59d992", + "sha256:f8c8a3bfea17576d3f94a2363eee195cbda8dbba86975588c7eaac7792b25eee" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==1.43.0" + "version": "==1.44.0" }, "pluggy": { "hashes": [ @@ -3611,12 +3610,12 @@ }, "pyright": { "hashes": [ - "sha256:00a8f0ae0e339473bb0488f8a2a2dcdf574e94a16cd7b4390d49d144714d8db2", - "sha256:d3b8d73c8d230e26cc3523862f3398032a0c39a00d7bb69dc0f595f8e888fd01" + "sha256:612a2106a4078ec57efc22b5620729e9bdf4a3c17caba013b534bd33f7d08e5a", + "sha256:865f1e02873c5dc7427c95acf53659a118574010e6fb364e27e47ec5c46a9f26" ], "index": "pypi", "markers": "python_version >= '3.7'", - "version": "==1.1.363" + "version": "==1.1.364" }, "pysbd": { "hashes": [ @@ -3636,12 +3635,12 @@ }, "pytest": { "hashes": [ - "sha256:1733f0620f6cda4095bbf0d9ff8022486e91892245bb9e7d5542c018f612f233", - "sha256:d507d4482197eac0ba2bae2e9babf0672eb333017bcedaa5fb1a3d42c1174b3f" + "sha256:5046e5b46d8e4cac199c373041f26be56fdb81eb4e67dc11d4e10811fc3408fd", + "sha256:faccc5d332b8c3719f40283d0d44aa5cf101cec36f88cde9ed8f2bc0538612b1" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==8.2.0" + "version": "==8.2.1" }, "pytest-celery": { "hashes": [ @@ -3807,107 +3806,110 @@ }, "ragas": { "hashes": [ - "sha256:abe02b40a8d11842c42e222226901287858beb70203f1227a403a9261d0bb684", - "sha256:db857262dda63fc01a7eef837cbba166202084b5d535b2e8ad408c63a66f9319" + "sha256:52a5269544c7051da95eeb94690b2092aae0ada9bbd4017337b696c431b434ef", + "sha256:5673970f49aecb8bd9cfc9313f3cd95c7c9d234c896b24fb4ab32c7df2a920e8" ], "index": "pypi", - "version": "==0.1.7" + "version": "==0.1.8" }, "rapidfuzz": { "hashes": [ - "sha256:014ac55b03f4074f903248ded181f3000f4cdbd134e6155cbf643f0eceb4f70f", - "sha256:08d8b49b3a4fb8572e480e73fcddc750da9cbb8696752ee12cca4bf8c8220d52", - "sha256:0bb28ab5300cf974c7eb68ea21125c493e74b35b1129e629533468b2064ae0a2", - "sha256:0c5b8f9a7b177af6ce7c6ad5b95588b4b73e37917711aafa33b2e79ee80fe709", - "sha256:0ca799f882364e69d0872619afb19efa3652b7133c18352e4a3d86a324fb2bb1", - "sha256:0dcb95fde22f98e6d0480db8d6038c45fe2d18a338690e6f9bba9b82323f3469", - "sha256:0e2e106cc66453bb80d2ad9c0044f8287415676df5c8036d737d05d4b9cdbf8e", - "sha256:0e86e39c1c1a0816ceda836e6f7bd3743b930cbc51a43a81bb433b552f203f25", - "sha256:1179dcd3d150a67b8a678cd9c84f3baff7413ff13c9e8fe85e52a16c97e24c9b", - "sha256:11a7ec4676242c8a430509cff42ce98bca2fbe30188a63d0f60fdcbfd7e84970", - "sha256:134b7098ac109834eeea81424b6822f33c4c52bf80b81508295611e7a21be12a", - "sha256:13857f9070600ea1f940749f123b02d0b027afbaa45e72186df0f278915761d0", - "sha256:170822a1b1719f02b58e3dce194c8ad7d4c5b39be38c0fdec603bd19c6f9cf81", - "sha256:182b4e11de928fb4834e8f8b5ecd971b5b10a86fabe8636ab65d3a9b7e0e9ca7", - "sha256:1b1f74997b6d94d66375479fa55f70b1c18e4d865d7afcd13f0785bfd40a9d3c", - "sha256:1d536f8beb8dd82d6efb20fe9f82c2cfab9ffa0384b5d184327e393a4edde91d", - "sha256:2003071aa633477a01509890c895f9ef56cf3f2eaa72c7ec0b567f743c1abcba", - "sha256:2444d8155d9846f206e2079bb355b85f365d9457480b0d71677a112d0a7f7128", - "sha256:28da953eb2ef9ad527e536022da7afff6ace7126cdd6f3e21ac20f8762e76d2c", - "sha256:2a96209f046fe328be30fc43f06e3d4b91f0d5b74e9dcd627dbfd65890fa4a5e", - "sha256:2bc5559b9b94326922c096b30ae2d8e5b40b2e9c2c100c2cc396ad91bcb84d30", - "sha256:2d267d4c982ab7d177e994ab1f31b98ff3814f6791b90d35dda38307b9e7c989", - "sha256:3083512e9bf6ed2bb3d25883922974f55e21ae7f8e9f4e298634691ae1aee583", - "sha256:30f7609da871510583f87484a10820b26555a473a90ab356cdda2f3b4456256c", - "sha256:33cfabcb7fd994938a6a08e641613ce5fe46757832edc789c6a5602e7933d6fa", - "sha256:36bf35df2d6c7d5820da20a6720aee34f67c15cd2daf8cf92e8141995c640c25", - "sha256:3733aede16ea112728ffeafeb29ccc62e095ed8ec816822fa2a82e92e2c08696", - "sha256:3904d0084ab51f82e9f353031554965524f535522a48ec75c30b223eb5a0a488", - "sha256:3a16c48c6df8fb633efbbdea744361025d01d79bca988f884a620e63e782fe5b", - "sha256:3c42a238bf9dd48f4ccec4c6934ac718225b00bb3a438a008c219e7ccb3894c7", - "sha256:3f4a2468432a1db491af6f547fad8f6d55fa03e57265c2f20e5eaceb68c7907e", - "sha256:413ac49bae291d7e226a5c9be65c71b2630b3346bce39268d02cb3290232e4b7", - "sha256:4514980a5d204c076dd5b756960f6b1b7598f030009456e6109d76c4c331d03c", - "sha256:47b7c0840afa724db3b1a070bc6ed5beab73b4e659b1d395023617fc51bf68a2", - "sha256:47d97e28c42f1efb7781993b67c749223f198f6653ef177a0c8f2b1c516efcaf", - "sha256:48105991ff6e4a51c7f754df500baa070270ed3d41784ee0d097549bc9fcb16d", - "sha256:488f74126904db6b1bea545c2f3567ea882099f4c13f46012fe8f4b990c683df", - "sha256:491274080742110427f38a6085bb12dffcaff1eef12dccf9e8758398c7e3957e", - "sha256:4eea3bf72c4fe68e957526ffd6bcbb403a21baa6b3344aaae2d3252313df6199", - "sha256:544b0bf9d17170720809918e9ccd0d482d4a3a6eca35630d8e1459f737f71755", - "sha256:55e2c5076f38fc1dbaacb95fa026a3e409eee6ea5ac4016d44fb30e4cad42b20", - "sha256:5c396562d304e974b4b0d5cd3afc4f92c113ea46a36e6bc62e45333d6aa8837e", - "sha256:623883fb78e692d54ed7c43b09beec52c6685f10a45a7518128e25746667403b", - "sha256:633b9d03fc04abc585c197104b1d0af04b1f1db1abc99f674d871224cd15557a", - "sha256:65d9250a4b0bf86320097306084bc3ca479c8f5491927c170d018787793ebe95", - "sha256:68da1b70458fea5290ec9a169fcffe0c17ff7e5bb3c3257e63d7021a50601a8e", - "sha256:6993d361f28b9ef5f0fa4e79b8541c2f3507be7471b9f9cb403a255e123b31e1", - "sha256:6a7f273906b3c7cc6d63a76e088200805947aa0bc1ada42c6a0e582e19c390d7", - "sha256:6a83128d505cac76ea560bb9afcb3f6986e14e50a6f467db9a31faef4bd9b347", - "sha256:6c1ed63345d1581c39d4446b1a8c8f550709656ce2a3c88c47850b258167f3c2", - "sha256:731269812ea837e0b93d913648e404736407408e33a00b75741e8f27c590caa2", - "sha256:7988363b3a415c5194ce1a68d380629247f8713e669ad81db7548eb156c4f365", - "sha256:7c09f4e87e82a164c9db769474bc61f8c8b677f2aeb0234b8abac73d2ecf9799", - "sha256:849160dc0f128acb343af514ca827278005c1d00148d025e4035e034fc2d8c7f", - "sha256:8e5ff882d3a3d081157ceba7e0ebc7fac775f95b08cbb143accd4cece6043819", - "sha256:905b01a9b633394ff6bb5ebb1c5fd660e0e180c03fcf9d90199cc6ed74b87cf7", - "sha256:9a06a99f1335fe43464d7121bc6540de7cd9c9475ac2025babb373fe7f27846b", - "sha256:9bc0f7e6256a9c668482c41c8a3de5d0aa12e8ca346dcc427b97c7edb82cba48", - "sha256:9d6478957fb35c7844ad08f2442b62ba76c1857a56370781a707eefa4f4981e1", - "sha256:a2de844e0e971d7bd8aa41284627dbeacc90e750b90acfb016836553c7a63192", - "sha256:a365886c42177b2beab475a50ba311b59b04f233ceaebc4c341f6f91a86a78e2", - "sha256:ab872cb57ae97c54ba7c71a9e3c9552beb57cb907c789b726895576d1ea9af6f", - "sha256:ae643220584518cbff8bf2974a0494d3e250763af816b73326a512c86ae782ce", - "sha256:b11e602987bcb4ea22b44178851f27406fca59b0836298d0beb009b504dba266", - "sha256:b1256915f7e7a5cf2c151c9ac44834b37f9bd1c97e8dec6f936884f01b9dfc7d", - "sha256:b182f0fb61f6ac435e416eb7ab330d62efdbf9b63cf0c7fa12d1f57c2eaaf6f3", - "sha256:b33c6d4b3a1190bc0b6c158c3981535f9434e8ed9ffa40cf5586d66c1819fb4b", - "sha256:b9bf90b3d96925cbf8ef44e5ee3cf39ef0c422f12d40f7a497e91febec546650", - "sha256:bd375c4830fee11d502dd93ecadef63c137ae88e1aaa29cc15031fa66d1e0abb", - "sha256:bdd8c15c3a14e409507fdf0c0434ec481d85c6cbeec8bdcd342a8cd1eda03825", - "sha256:c4ef34b2ddbf448f1d644b4ec6475df8bbe5b9d0fee173ff2e87322a151663bd", - "sha256:c56d2efdfaa1c642029f3a7a5bb76085c5531f7a530777be98232d2ce142553c", - "sha256:c74f2da334ce597f31670db574766ddeaee5d9430c2c00e28d0fbb7f76172036", - "sha256:cd2e6e97daf17ebb3254285cf8dd86c60d56d6cf35c67f0f9a557ef26bd66290", - "sha256:ce897b5dafb7fb7587a95fe4d449c1ea0b6d9ac4462fbafefdbbeef6eee4cf6a", - "sha256:d20ab9abc7e19767f1951772a6ab14cb4eddd886493c2da5ee12014596ad253f", - "sha256:d5d5684f54d82d9b0cf0b2701e55a630527a9c3dd5ddcf7a2e726a475ac238f2", - "sha256:dcb523243e988c849cf81220164ec3bbed378a699e595a8914fffe80596dc49f", - "sha256:e2218d62ab63f3c5ad48eced898854d0c2c327a48f0fb02e2288d7e5332a22c8", - "sha256:e33362e98c7899b5f60dcb06ada00acd8673ce0d59aefe9a542701251fd00423", - "sha256:e3f2d1ea7cd57dfcd34821e38b4924c80a31bcf8067201b1ab07386996a9faee", - "sha256:e65b8f7921bf60cbb207c132842a6b45eefef48c4c3b510eb16087d6c08c70af", - "sha256:e721842e6b601ebbeb8cc5e12c75bbdd1d9e9561ea932f2f844c418c31256e82", - "sha256:f81fe99a69ac8ee3fd905e70c62f3af033901aeb60b69317d1d43d547b46e510", - "sha256:f83bd3d01f04061c3660742dc85143a89d49fd23eb31eccbf60ad56c4b955617", - "sha256:fb67cf43ad83cb886cbbbff4df7dcaad7aedf94d64fca31aea0da7d26684283c", - "sha256:fc02157f521af15143fae88f92ef3ddcc4e0cff05c40153a9549dc0fbdb9adb3", - "sha256:fc4e26f592b51f97acf0a3f8dfed95e4d830c6a8fbf359361035df836381ab81", - "sha256:ff08081c49b18ba253a99e6a47f492e6ee8019e19bbb6ddc3ed360cd3ecb2f62", - "sha256:ff8982fc3bd49d55a91569fc8a3feba0de4cef0b391ff9091be546e9df075b81" + "sha256:02ed579f35ddd3552c7f74bc0c10800b432d9b09a4cebb19fd7a10b3b4759cc0", + "sha256:03a0a4bc8d4bd3e6f882b4c2ac183825a9b6dabe7e5a97bb6a1075e4635c944d", + "sha256:06879b598e798a4d33a283c2b4fa0d555d7706b6531e3321b161d62e986f7f57", + "sha256:07decc6b058f935d2219423a50aac426027928cc734809f793bc250de4a3756e", + "sha256:08dcd347d408912b6da778a73a0d7a2adad7fe238a44263e5e3789f2a8d84669", + "sha256:08f85d6674d804a493c3e9ec10a807f9bd8f482781487eda064913b537f99d7f", + "sha256:0c568b89a5016e76f0b3f85e9379036da99c5e7ec26b33935453d353a1938b74", + "sha256:0ceb0d7bdec910d93793d32633ba0cb644356cf6778f9d91b727da0075beaec1", + "sha256:0e931539edeb9158ef83537cd571051f8a9608737642c20b088a37bd5d76c5c9", + "sha256:0edc950c6a04c19db10670cd04e33403b3eb0f175deb620f9668595d378b1005", + "sha256:0f906ab6220778404498e0ce255c4cc89f98ea5e656e54cc59c5813c877eb86b", + "sha256:1539e7439b68013c5d2ab7ed9d3d221480a15595207764145ae177077d28016d", + "sha256:177bddf50577db59bcb00b6f7a5c2b70f2ec5a2aba40c8add7a6f7fd8609224e", + "sha256:1e872627d5359c840f3e431b0beb263518048917c3e076f624870552d84e7dc6", + "sha256:25ea055ae40fb60f503f02b44b3ac35a39a9108be33f89e05b81bc4e3c849ec8", + "sha256:2ef42c43c94139c890aeec40bc442c4bf8d48e15b456a88ce0f4cc5cfcad1896", + "sha256:2f9044a4470343087cde10beaa36266519d5da110a9a4597b43e6aa35fa928d3", + "sha256:32718fa69306df969bf4fca1719f8900b83df315a2a8153942d5b8906f4fd1d6", + "sha256:349e9c15092d20a1f6ff1795e068f39a9ee5e84c54b3addbc66d0ac469c4ef43", + "sha256:3ab6ad7e70469aed24e24378b19a9e47fc757c847399b22c612a0fccacc795cb", + "sha256:414644a2fc8a3e5fafda95b430214ed892faa4d0a07401d33892bc9ca5c84974", + "sha256:493354f50b9855271ac846b213e394e08446e70cef5cc033e5302a2220f3ae7b", + "sha256:4a231e8f3bae82f10e7188965b37c91d8bfb80136595c860c8a08eb0dd07764d", + "sha256:50c2f7ad132dfeb6247c90b41431662af939a820f761cf930708d55912377ed8", + "sha256:53477e1e6d85d603c9a319cfd00ab9f0a57b6d68bcdb268d6b15a79e64d693d0", + "sha256:5713c56b30ed75ada3a8f008cf8e8e6323386ce48fac2bf2d07285fe6c91f5a4", + "sha256:5d8eb7fe39e81dc1530a3ec81a35e69770839c76607c461eb9d0902427fab3e1", + "sha256:5dbcc4add07bd60ea73b94392fed28f83dba0fe796097da47627fd539bd6daca", + "sha256:5f897a9bff517d5c6af6a90131796b4298b547b9a9a4df3cf285006be33aae5b", + "sha256:61b343c581f4926260248069d8fdbbbf293c19c12ef440ad5ced15bcff277a84", + "sha256:64058f4a3698c6c8464df47a3b7da303db2477b2447142da3e67fc091f4c366a", + "sha256:678fcaa5117ddb6263160a7c5f33cc9ea3df335465f5d53715707fad103e1d09", + "sha256:7149afaf0294882b6b15bb6fa9fc38ff1d761e50117460ee3561181c1c4e2230", + "sha256:76a55bcc3abc9f8e38a1218cb5a09719126cfc4cba23ebd8caa27dfdc69cedd8", + "sha256:77767b119ac05662d216a8cc4092ac28dbc015d9caabebdbefe371b0dd82a38e", + "sha256:7f006c3af82c478df09a790fb4846b5acd00a187d75715674d71f5dc0ac982ce", + "sha256:829fbad93266fffa0f9d722a94cbb1b95b53e3c04be4e872193496a0cfbd66f0", + "sha256:83c570ce23b447625929c0e7c4f2eab6d90f5a576db2b26a5aa0594a53d560ea", + "sha256:874317057a58a9c6ddf59fe1491e478217daa9fdb043a00358a15de4f62f9a2d", + "sha256:8781e45c56f7f3a64940f4d594a4ffd69360147925a706569b2b0c57347b2225", + "sha256:8e11405d81e8baea4999a5757a982009566cff8f6a121d5ccf042aab81ae0230", + "sha256:8e70605350cb6ec5091e06de62d3dcb058f694b059b4e1a9d85bfbf892f70030", + "sha256:97ab8f153984a5d827ebb5a5b80ee59563efcf2fa3e569dcd46ea7e7c9845e93", + "sha256:998977df2ae01ff8b7bc3b29a860b4a863005e0533e323df3fd555a31ef33f0e", + "sha256:9bfa8c0a8ce09b4bcd36322f8f375750dca160fbdbeb2e763a695cef3ae9133e", + "sha256:9f66f9d5f14141b4b017e76118ec4bda29266f6b281989026e3a9ba1a2aaf032", + "sha256:9f74d93148081049ccc86f276d54cd7c8c0692250245660b4fcd904ed1db1e01", + "sha256:9f8615a2a67a1f80b3aa7a3d7fbe6a2ed062a54c98988e3f9b664b49a3bc115e", + "sha256:9f9dfdcd75e16e5874efee233b28aec1322623b0f1f20641452d06ea2d8ba5ef", + "sha256:a079164675d24eb715230bf9dd252683ae3c9c0c0a236f0b8098630268b899e9", + "sha256:a3a48fc6dc274b803a366a4baec99e212792ae1b1e73d42235b2042cd3ade7c1", + "sha256:a42eb645241f39a59c45a7fc15e3faf61886bff3a4a22263fd0f7cfb90e91b7f", + "sha256:a47550eabf235e5d50e7d448c18f77f6e8082aa3571e9df511c8388525ea9372", + "sha256:a645f362dafc103dbe7f43a2ad34f76284773cd7d1b00514d1c591848a1c817f", + "sha256:a89b219c1a7933a0673b2dbb1ffe701057d82e5cb843552be4f55b61b557031e", + "sha256:aa44aef769e5834fef4fde091fd646cc1c52a2813b3aa241ae54b3028960abaa", + "sha256:aaba665f92c011c6f284e933ab02b5dc129a6d3f48fce913ec4a214bd530135e", + "sha256:b26cc9459e096959fab3a4a8a17b96a6c7c961f9db5c37c1c3c7a06789316cf7", + "sha256:b71e7f99ed048a338e4a1ac34f56b3b3933a3ba2dfbb04450c786a8ddd97f4db", + "sha256:b8a6d5a8edc452920efdf1b499a2a47bb8a28440f7ab3fe28bb7d6636ccf71c3", + "sha256:bc4503841cd3cbe22b5ac44f15bc834ec97d811a3c3943f73f5643266c8674e1", + "sha256:bc68fb8f2a8b5b3a4526b7a65e7d5c7f821882f56d9dcbcce4c6859a9e5bdcd7", + "sha256:bca2b93c75f87cd85832cdd5bb06b4b5642e2a05c8e3550841ddf5d564ce4abb", + "sha256:bcc0ffcaeb1e499e708f32ec30177ed690b3f25455c91ad8c2240986c69f9ebe", + "sha256:bf5184b17e26a82b00c7ee05d9ec5d826113df55830bbc447bf6d6e7469c70fb", + "sha256:c0899de4fc1a7a36f14be556a0dacf40ea5c0fe22c6b45b2ea2674e1ac47e269", + "sha256:c125095d1828fa10ac79077594dd2d8829167d9e184e20baa97620fc52ebdcc9", + "sha256:c6437cba4b9460d5ee0bafd796e13ef9307091b81685bbe745b0f1619fb887ca", + "sha256:c6b11a38b61cc2462a113b123f5e932cda0e525f816d6fe4b68516f97d7f9d49", + "sha256:c883d2d2e31c759af1f3fdeb67ec151cf94e307f745b3d02ab3a2ef6595485f2", + "sha256:c8b0e6640421e55d69e186ce7fb9e6c723cfd3b6f91beaeb28705c2a46c8a194", + "sha256:c99d001c45c31c2cd2f7361bc2036d3062b21db5f43beea8bc5109d43fe9f283", + "sha256:ce3335324198e1388a1c4e50d40f45107367010afe9fa09fd46278160f0ab591", + "sha256:d2ff268a8bf57a76512804d5ca2097afaf98e64e8947d514cde7e2e8446aa5f7", + "sha256:d3397630f22e6c60dda8be3e9dbcf6a341695d487df8a6c92f4a2f7ebcdaecf7", + "sha256:d3da444890c9559fd15717d97f8373b1cd14007f68c9b037aa93ef7ca969b559", + "sha256:da3f495cf4f7a443b34a6d3c6805265595fcd13641b3253a8e2034289d828dd9", + "sha256:dc4b5de5d6f9347d836d849b56bca630169353cbe5c10fa7fe93bb1677b49770", + "sha256:dec2792f864be731c8339cad99001caa6540aa909e6fd8bc688bb0419c501f44", + "sha256:df7bba8d4a8fb8e7559a9e83dfc5385dc6fe89efd73e32d253667242faf1883c", + "sha256:e18f0e9351f7e5d5387774ff4d5cabd824341e16b866eb1c8d3f557111b447ef", + "sha256:e4c6b6455ee8404a663e15477a8bfe98b1afb329ff224bcf6d15f623a3761b95", + "sha256:e58489934d0147f1edda693cb983bea40f2b45ae6756fd47c1005b538f817a2f", + "sha256:e5d7b3154f6df9e05c2016de5e95f8cba4fe636a4e5520ebcd89bc6c54b8e4ed", + "sha256:e9f075366cee63a6b06bd7f9285eb9f1785382a6493afcb7054202e20508bf94", + "sha256:ea62c82eb2c65bd49651e95f4f46874483ae4da1c3b57997e58f1b4fb2de6c05", + "sha256:eadf8c4b24b63aef8810ed585c24ac1fc022ee771211772a6e9f78c63aa949ff", + "sha256:eb023adfefa62410fff877f7cc70cd4758cbfbad963e87d146cf71b022dce197", + "sha256:eb3f1af099cd1d98001691fbdadd422f088f21eadcacf5698b393b7569e24dc4", + "sha256:f6f4e8235d0acf1972f5eb4091c4a0473e5670a754f166c0c718ce21e945f879", + "sha256:f8869dcf072227a40a6f9e87b3fc4eb020055a08ad12b63d751c354e3a973ccb", + "sha256:fb592bad9d58b47c6681f0c180767d2c98775a35f7267131d33723139c3d6c2e", + "sha256:fbce66cb2e331b0888c79b594eab76e2c609c2637050085daadff5325d471dc2" ], "markers": "python_version >= '3.8'", - "version": "==3.9.0" + "version": "==3.9.1" }, "realtime": { "hashes": [ @@ -4013,18 +4015,18 @@ }, "requests": { "hashes": [ - "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", - "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" + "sha256:dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289", + "sha256:fc06670dd0ed212426dfeb94fc1b983d917c4f9847c863f313c9dfaaffb7c23c" ], - "markers": "python_version >= '3.7'", - "version": "==2.31.0" + "markers": "python_version >= '3.8'", + "version": "==2.32.2" }, "requests-file": { "hashes": [ - "sha256:20c5931629c558fda566cacc10cfe2cd502433e628f568c34c80d96a0cc95972", - "sha256:3e493d390adb44aa102ebea827a48717336d5268968c370eaf19abaf5cae13bf" + "sha256:0f549a3f3b0699415ac04d167e9cb39bccfb730cb832b4d20be3d9867356e658", + "sha256:cf270de5a4c5874e84599fc5778303d496c10ae5e870bfa378818f35d21bda5c" ], - "version": "==2.0.0" + "version": "==2.1.0" }, "requests-oauthlib": { "hashes": [ @@ -4036,12 +4038,12 @@ }, "resend": { "hashes": [ - "sha256:4ade3dfe972175e32504a2b347274cb665b428f63e9b4c247c71b683ee8ba2ff", - "sha256:f68c7066343167e25714560dba773ef5529ed4b875056c06d6e97e1a2935f04b" + "sha256:66851ca61ea8501b0f4b19d55d753ee1800783c096c059ca065b4692361473b1", + "sha256:eaeaf5ba0f25df98220fc4f8346182f214078c26705ca3d24b183b7627d1abd2" ], "index": "pypi", "markers": "python_version >= '3.7'", - "version": "==1.0.2" + "version": "==1.2.0" }, "retry": { "hashes": [ @@ -4182,53 +4184,53 @@ }, "scipy": { "hashes": [ - "sha256:05f1432ba070e90d42d7fd836462c50bf98bd08bed0aa616c359eed8a04e3922", - "sha256:09c74543c4fbeb67af6ce457f6a6a28e5d3739a87f62412e4a16e46f164f0ae5", - "sha256:0fbcf8abaf5aa2dc8d6400566c1a727aed338b5fe880cde64907596a89d576fa", - "sha256:109d391d720fcebf2fbe008621952b08e52907cf4c8c7efc7376822151820820", - "sha256:1d2f7bb14c178f8b13ebae93f67e42b0a6b0fc50eba1cd8021c9b6e08e8fb1cd", - "sha256:1e7626dfd91cdea5714f343ce1176b6c4745155d234f1033584154f60ef1ff42", - "sha256:22789b56a999265431c417d462e5b7f2b487e831ca7bef5edeb56efe4c93f86e", - "sha256:28e286bf9ac422d6beb559bc61312c348ca9b0f0dae0d7c5afde7f722d6ea13d", - "sha256:33fde20efc380bd23a78a4d26d59fc8704e9b5fd9b08841693eb46716ba13d86", - "sha256:45c08bec71d3546d606989ba6e7daa6f0992918171e2a6f7fbedfa7361c2de1e", - "sha256:4dca18c3ffee287ddd3bc8f1dabaf45f5305c5afc9f8ab9cbfab855e70b2df5c", - "sha256:5407708195cb38d70fd2d6bb04b1b9dd5c92297d86e9f9daae1576bd9e06f602", - "sha256:58569af537ea29d3f78e5abd18398459f195546bb3be23d16677fb26616cc11e", - "sha256:5e4a756355522eb60fcd61f8372ac2549073c8788f6114449b37e9e8104f15a5", - "sha256:6bf9fe63e7a4bf01d3645b13ff2aa6dea023d38993f42aaac81a18b1bda7a82a", - "sha256:8930ae3ea371d6b91c203b1032b9600d69c568e537b7988a3073dfe4d4774f21", - "sha256:9ff7dad5d24a8045d836671e082a490848e8639cabb3dbdacb29f943a678683d", - "sha256:a2f471de4d01200718b2b8927f7d76b5d9bde18047ea0fa8bd15c5ba3f26a1d6", - "sha256:ac38c4c92951ac0f729c4c48c9e13eb3675d9986cc0c83943784d7390d540c78", - "sha256:b2a3ff461ec4756b7e8e42e1c681077349a038f0686132d623fa404c0bee2551", - "sha256:b5acd8e1dbd8dbe38d0004b1497019b2dbbc3d70691e65d69615f8a7292865d7", - "sha256:b8434f6f3fa49f631fae84afee424e2483289dfc30a47755b4b4e6b07b2633a4", - "sha256:ba419578ab343a4e0a77c0ef82f088238a93eef141b2b8017e46149776dfad4d", - "sha256:d0de696f589681c2802f9090fff730c218f7c51ff49bf252b6a97ec4a5d19e8b", - "sha256:dcbb9ea49b0167de4167c40eeee6e167caeef11effb0670b554d10b1e693a8b9" + "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d", + "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c", + "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca", + "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9", + "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54", + "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16", + "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2", + "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5", + "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59", + "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326", + "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b", + "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1", + "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d", + "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24", + "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627", + "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c", + "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa", + "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949", + "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989", + "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004", + "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f", + "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884", + "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299", + "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94", + "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f" ], "markers": "python_version >= '3.9'", - "version": "==1.13.0" + "version": "==1.13.1" }, "sentry-sdk": { "extras": [ "fastapi" ], "hashes": [ - "sha256:674f58da37835ea7447fe0e34c57b4a4277fad558b0a7cb4a6c83bcb263086be", - "sha256:70eca103cf4c6302365a9d7cf522e7ed7720828910eb23d43ada8e50d1ecda9d" + "sha256:139a71a19f5e9eb5d3623942491ce03cf8ebc14ea2e39ba3e6fe79560d8a5b1f", + "sha256:c5aeb095ba226391d337dd42a6f9470d86c9fc236ecc71cfc7cd1942b45010c6" ], "markers": "python_version >= '3.6'", - "version": "==2.2.0" + "version": "==2.3.1" }, "setuptools": { "hashes": [ - "sha256:6c1fccdac05a97e598fb0ae3bbed5904ccb317337a51139dcd51453611bbb987", - "sha256:c636ac361bc47580504644275c9ad802c50415c7522212252c033bd15f301f32" + "sha256:54faa7f2e8d2d11bcd2c07bed282eef1046b5c080d1c32add737d7b5817b1ad4", + "sha256:f211a66637b8fa059bb28183da127d4e86396c991a942b028c6650d4319c3fd0" ], "markers": "python_version >= '3.8'", - "version": "==69.5.1" + "version": "==70.0.0" }, "sgmllib3k": { "hashes": [ @@ -4366,12 +4368,12 @@ }, "supabase": { "hashes": [ - "sha256:100441c36bf3390b040818c636c372a91645d18b6a9e0c12cea061fb00db664c", - "sha256:8520b5a194c6d8fdbdd71b45aefc8b5a42d1a6711a2c693b6d299aeb785e8532" + "sha256:0bfd6bb33c0e6d6891b55caaf689140f47588b01436fecc336d1d75090c70e8b", + "sha256:442be0729f5fd9258326ba89859f60bfd8d9218283ed7fd8a62ae81e2f310474" ], "index": "pypi", "markers": "python_version >= '3.8' and python_version < '4.0'", - "version": "==2.4.5" + "version": "==2.4.6" }, "supafunc": { "hashes": [ @@ -4608,6 +4610,7 @@ "sha256:e65ba85ae292909cde0dde6369826d51165a3fc8823dc1854cd9432d7f79b932", "sha256:f9b98bf1a3c8af2d4c41f0bf1433920900896c446d1ddc128290ff146d1eb4bd" ], + "markers": "python_full_version >= '3.8.0'", "version": "==2.3.0" }, "torchvision": { @@ -4633,6 +4636,7 @@ "sha256:e5a24d620cea14a4bb89f24aa2b506230c0a16a3ada57fc53ad80cfd256a2128", "sha256:eb9d83c0e1dbb54ecb0fb04c87f786333e3a6fb8b9c400aca7c31081f9aa5707" ], + "markers": "python_version >= '3.8'", "version": "==0.18.0" }, "tornado": { @@ -4662,11 +4666,11 @@ }, "transformers": { "hashes": [ - "sha256:657b6054a2097671398d976ad46e60836e7e15f9ea9551631a96e33cb9240649", - "sha256:71cb94301ec211a2e1d4b8c8d18dcfaa902dfa00a089dceca167a8aa265d6f2d" + "sha256:f0680e0b1a01067eccd11f62f0522409422c7d6f91d532fe0f50b136a406129d", + "sha256:fa859e4c66f0896633a3bf534e0d9a29a9a88478a49f94c5d8270537dc61cc42" ], "markers": "python_full_version >= '3.8.0'", - "version": "==4.40.2" + "version": "==4.41.1" }, "typer": { "hashes": [ @@ -4678,19 +4682,19 @@ }, "types-requests": { "hashes": [ - "sha256:4428df33c5503945c74b3f42e82b181e86ec7b724620419a2966e2de604ce1a1", - "sha256:6216cdac377c6b9a040ac1c0404f7284bd13199c0e1bb235f4324627e8898cf5" + "sha256:26b8a6de32d9f561192b9942b41c0ab2d8010df5677ca8aa146289d11d505f57", + "sha256:f19ed0e2daa74302069bbbbf9e82902854ffa780bc790742a810a9aaa52f65ec" ], "markers": "python_version >= '3.8'", - "version": "==2.31.0.20240406" + "version": "==2.32.0.20240523" }, "typing-extensions": { "hashes": [ - "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0", - "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a" + "sha256:8cbcdc8606ebcb0d95453ad7dc5065e6237b6aa230a31e81d0f440c30fed5fd8", + "sha256:b349c66bea9016ac22978d800cfff206d5f9816951f12a7d0ec5578b0a819594" ], "markers": "python_version >= '3.8'", - "version": "==4.11.0" + "version": "==4.12.0" }, "typing-inspect": { "hashes": [ @@ -4805,12 +4809,11 @@ "all-docs" ], "hashes": [ - "sha256:5d59161d353b7006d8c6ee6f1a39154a5a11a5aaa258aac3fe90a8d44016aa6c", - "sha256:a3d8f3037cb3063661531c6ecc04aca6df93c293ba06e36d67ffc70857a6f208" + "sha256:2d00463d6406c2a07d54c049e4d7323d2f5c112752f060d6f83bfbb335e676f1", + "sha256:fd1889ea6630b0172c769efc2afc607562707f41f94eb6d734df1a987a1a4be0" ], - "index": "pypi", - "markers": "python_version < '3.12' and python_full_version >= '3.9.0'", - "version": "==0.13.7" + "markers": "python_version < '3.13' and python_full_version >= '3.9.0'", + "version": "==0.14.2" }, "unstructured-client": { "hashes": [ @@ -4822,10 +4825,10 @@ }, "unstructured-inference": { "hashes": [ - "sha256:0f04ee2875299b3bf3f879b387a968cf157969ba2edf4e0c77fe6f1b2f1d3054", - "sha256:c79187b3621cf726556a5edeca814f6e9195498dbabf89623c19d0d77c811afe" + "sha256:828013a0775b6bde401bd22914427c3f84f80014dedc3b9b8c08e8066642b20e", + "sha256:d2638c0f41cbe03685565e421332240cedba65073410342c76862e727ad74ee3" ], - "version": "==0.7.31" + "version": "==0.7.33" }, "unstructured.pytesseract": { "hashes": [ @@ -4850,6 +4853,14 @@ "markers": "python_version >= '3.8'", "version": "==2.2.1" }, + "uuid6": { + "hashes": [ + "sha256:8150093c8d05a331bc0535bc5ef6cf57ac6eceb2404fd319bc10caee2e02c065", + "sha256:ed0afb3a973057575f9883201baefe402787ca5e11e1d24e377190f0c43f1993" + ], + "markers": "python_version >= '3.8'", + "version": "==2024.1.12" + }, "uvicorn": { "extras": [ "standard" @@ -4908,39 +4919,42 @@ }, "watchdog": { "hashes": [ - "sha256:11e12fafb13372e18ca1bbf12d50f593e7280646687463dd47730fd4f4d5d257", - "sha256:2895bf0518361a9728773083908801a376743bcc37dfa252b801af8fd281b1ca", - "sha256:39cb34b1f1afbf23e9562501673e7146777efe95da24fab5707b88f7fb11649b", - "sha256:45cc09cc4c3b43fb10b59ef4d07318d9a3ecdbff03abd2e36e77b6dd9f9a5c85", - "sha256:4986db5e8880b0e6b7cd52ba36255d4793bf5cdc95bd6264806c233173b1ec0b", - "sha256:5369136a6474678e02426bd984466343924d1df8e2fd94a9b443cb7e3aa20d19", - "sha256:557ba04c816d23ce98a06e70af6abaa0485f6d94994ec78a42b05d1c03dcbd50", - "sha256:6a4db54edea37d1058b08947c789a2354ee02972ed5d1e0dca9b0b820f4c7f92", - "sha256:6a80d5cae8c265842c7419c560b9961561556c4361b297b4c431903f8c33b269", - "sha256:6a9c71a0b02985b4b0b6d14b875a6c86ddea2fdbebd0c9a720a806a8bbffc69f", - "sha256:6c47bdd680009b11c9ac382163e05ca43baf4127954c5f6d0250e7d772d2b80c", - "sha256:6e949a8a94186bced05b6508faa61b7adacc911115664ccb1923b9ad1f1ccf7b", - "sha256:73c7a935e62033bd5e8f0da33a4dcb763da2361921a69a5a95aaf6c93aa03a87", - "sha256:76ad8484379695f3fe46228962017a7e1337e9acadafed67eb20aabb175df98b", - "sha256:8350d4055505412a426b6ad8c521bc7d367d1637a762c70fdd93a3a0d595990b", - "sha256:87e9df830022488e235dd601478c15ad73a0389628588ba0b028cb74eb72fed8", - "sha256:8f9a542c979df62098ae9c58b19e03ad3df1c9d8c6895d96c0d51da17b243b1c", - "sha256:8fec441f5adcf81dd240a5fe78e3d83767999771630b5ddfc5867827a34fa3d3", - "sha256:9a03e16e55465177d416699331b0f3564138f1807ecc5f2de9d55d8f188d08c7", - "sha256:ba30a896166f0fee83183cec913298151b73164160d965af2e93a20bbd2ab605", - "sha256:c17d98799f32e3f55f181f19dd2021d762eb38fdd381b4a748b9f5a36738e935", - "sha256:c522392acc5e962bcac3b22b9592493ffd06d1fc5d755954e6be9f4990de932b", - "sha256:d0f9bd1fd919134d459d8abf954f63886745f4660ef66480b9d753a7c9d40927", - "sha256:d18d7f18a47de6863cd480734613502904611730f8def45fc52a5d97503e5101", - "sha256:d31481ccf4694a8416b681544c23bd271f5a123162ab603c7d7d2dd7dd901a07", - "sha256:e3e7065cbdabe6183ab82199d7a4f6b3ba0a438c5a512a68559846ccb76a78ec", - "sha256:eed82cdf79cd7f0232e2fdc1ad05b06a5e102a43e331f7d041e5f0e0a34a51c4", - "sha256:f970663fa4f7e80401a7b0cbeec00fa801bf0287d93d48368fc3e6fa32716245", - "sha256:f9b2fdca47dc855516b2d66eef3c39f2672cbf7e7a42e7e67ad2cbfcd6ba107d" + "sha256:0144c0ea9997b92615af1d94afc0c217e07ce2c14912c7b1a5731776329fcfc7", + "sha256:03e70d2df2258fb6cb0e95bbdbe06c16e608af94a3ffbd2b90c3f1e83eb10767", + "sha256:093b23e6906a8b97051191a4a0c73a77ecc958121d42346274c6af6520dec175", + "sha256:123587af84260c991dc5f62a6e7ef3d1c57dfddc99faacee508c71d287248459", + "sha256:17e32f147d8bf9657e0922c0940bcde863b894cd871dbb694beb6704cfbd2fb5", + "sha256:206afc3d964f9a233e6ad34618ec60b9837d0582b500b63687e34011e15bb429", + "sha256:4107ac5ab936a63952dea2a46a734a23230aa2f6f9db1291bf171dac3ebd53c6", + "sha256:4513ec234c68b14d4161440e07f995f231be21a09329051e67a2118a7a612d2d", + "sha256:611be3904f9843f0529c35a3ff3fd617449463cb4b73b1633950b3d97fa4bfb7", + "sha256:62c613ad689ddcb11707f030e722fa929f322ef7e4f18f5335d2b73c61a85c28", + "sha256:667f3c579e813fcbad1b784db7a1aaa96524bed53437e119f6a2f5de4db04235", + "sha256:6e8c70d2cd745daec2a08734d9f63092b793ad97612470a0ee4cbb8f5f705c57", + "sha256:7577b3c43e5909623149f76b099ac49a1a01ca4e167d1785c76eb52fa585745a", + "sha256:998d2be6976a0ee3a81fb8e2777900c28641fb5bfbd0c84717d89bca0addcdc5", + "sha256:a3c2c317a8fb53e5b3d25790553796105501a235343f5d2bf23bb8649c2c8709", + "sha256:ab998f567ebdf6b1da7dc1e5accfaa7c6992244629c0fdaef062f43249bd8dee", + "sha256:ac7041b385f04c047fcc2951dc001671dee1b7e0615cde772e84b01fbf68ee84", + "sha256:bca36be5707e81b9e6ce3208d92d95540d4ca244c006b61511753583c81c70dd", + "sha256:c9904904b6564d4ee8a1ed820db76185a3c96e05560c776c79a6ce5ab71888ba", + "sha256:cad0bbd66cd59fc474b4a4376bc5ac3fc698723510cbb64091c2a793b18654db", + "sha256:d10a681c9a1d5a77e75c48a3b8e1a9f2ae2928eda463e8d33660437705659682", + "sha256:d4925e4bf7b9bddd1c3de13c9b8a2cdb89a468f640e66fbfabaf735bd85b3e35", + "sha256:d7b9f5f3299e8dd230880b6c55504a1f69cf1e4316275d1b215ebdd8187ec88d", + "sha256:da2dfdaa8006eb6a71051795856bedd97e5b03e57da96f98e375682c48850645", + "sha256:dddba7ca1c807045323b6af4ff80f5ddc4d654c8bce8317dde1bd96b128ed253", + "sha256:e7921319fe4430b11278d924ef66d4daa469fafb1da679a2e48c935fa27af193", + "sha256:e93f451f2dfa433d97765ca2634628b789b49ba8b504fdde5837cdcf25fdb53b", + "sha256:eebaacf674fa25511e8867028d281e602ee6500045b57f43b08778082f7f8b44", + "sha256:ef0107bbb6a55f5be727cfc2ef945d5676b97bffb8425650dadbb184be9f9a2b", + "sha256:f0de0f284248ab40188f23380b03b59126d1479cd59940f2a34f8852db710625", + "sha256:f27279d060e2ab24c0aa98363ff906d2386aa6c4dc2f1a374655d4e02a6c5e5e", + "sha256:f8affdf3c0f0466e69f5b3917cdd042f89c8c63aebdb9f7c078996f607cdb0f5" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==4.0.0" + "version": "==4.0.1" }, "watchfiles": { "hashes": [ @@ -5419,11 +5433,11 @@ }, "zipp": { "hashes": [ - "sha256:6278d9ddbcfb1f1089a88fde84481528b07b0e10474e09dcfe53dad4069fa059", - "sha256:dce197b859eb796242b0622af1b8beb0a722d52aa2f57133ead08edd5bf5374e" + "sha256:952df858fb3164426c976d9338d3961e8e8b3758e2e059e0f754b8c4262625ee", + "sha256:96dc6ad62f1441bcaccef23b274ec471518daf4fbbc580341204936a5a3dddec" ], "markers": "python_version >= '3.8'", - "version": "==3.18.2" + "version": "==3.19.0" } }, "develop": { @@ -5557,11 +5571,11 @@ }, "jupyter-client": { "hashes": [ - "sha256:3b7bd22f058434e3b9a7ea4b1500ed47de2713872288c0d511d19926f99b459f", - "sha256:e842515e2bab8e19186d89fdfea7abd15e39dd581f94e399f00e2af5a1652d3f" + "sha256:2bda14d55ee5ba58552a8c53ae43d215ad9868853489213f37da060ced54d8df", + "sha256:50cbc5c66fd1b8f65ecb66bc490ab73217993632809b6e505687de18e9dea39f" ], "markers": "python_version >= '3.8'", - "version": "==8.6.1" + "version": "==8.6.2" }, "jupyter-core": { "hashes": [ @@ -5832,11 +5846,11 @@ }, "typing-extensions": { "hashes": [ - "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0", - "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a" + "sha256:8cbcdc8606ebcb0d95453ad7dc5065e6237b6aa230a31e81d0f440c30fed5fd8", + "sha256:b349c66bea9016ac22978d800cfff206d5f9816951f12a7d0ec5578b0a819594" ], "markers": "python_version >= '3.8'", - "version": "==4.11.0" + "version": "==4.12.0" }, "wcwidth": { "hashes": [ diff --git a/backend/modules/brain/integrations/Multi_Contract/Brain.py b/backend/modules/brain/integrations/Multi_Contract/Brain.py new file mode 100644 index 000000000..c0249745d --- /dev/null +++ b/backend/modules/brain/integrations/Multi_Contract/Brain.py @@ -0,0 +1,206 @@ +import datetime +from operator import itemgetter +from typing import List + +from langchain.prompts import HumanMessagePromptTemplate, SystemMessagePromptTemplate +from langchain_community.chat_models import ChatLiteLLM +from langchain_core.output_parsers import StrOutputParser +from langchain_core.prompts import ChatPromptTemplate, PromptTemplate +from langchain_core.pydantic_v1 import BaseModel as BaseModelV1 +from langchain_core.pydantic_v1 import Field as FieldV1 +from langchain_core.runnables import RunnableLambda, RunnablePassthrough +from langchain_openai import ChatOpenAI +from logger import get_logger +from modules.brain.knowledge_brain_qa import KnowledgeBrainQA + +logger = get_logger(__name__) + + +class cited_answer(BaseModelV1): + """Answer the user question based only on the given sources, and cite the sources used.""" + + thoughts: str = FieldV1( + ..., + description="""Description of the thought process, based only on the given sources. + Cite the text as much as possible and give the document name it appears in. In the format : 'Doc_name states : cited_text'. Be the most + procedural as possible.""", + ) + answer: str = FieldV1( + ..., + description="The answer to the user question, which is based only on the given sources.", + ) + citations: List[int] = FieldV1( + ..., + description="The integer IDs of the SPECIFIC sources which justify the answer.", + ) + + thoughts: str = FieldV1( + ..., + description="Explain shortly what you did to find the answer and what you used by citing the sources by their name.", + ) + followup_questions: List[str] = FieldV1( + ..., + description="Generate up to 3 follow-up questions that could be asked based on the answer given or context provided.", + ) + + +# First step is to create the Rephrasing Prompt +_template = """Given the following conversation and a follow up question, rephrase the follow up question to be a standalone question, in its original language. Keep as much details as possible from previous messages. Keep entity names and all. + +Chat History: +{chat_history} +Follow Up Input: {question} +Standalone question:""" +CONDENSE_QUESTION_PROMPT = PromptTemplate.from_template(_template) + +# Next is the answering prompt + +template_answer = """ +Context: +{context} + +User Question: {question} +Answer: +""" + +today_date = datetime.datetime.now().strftime("%B %d, %Y") + +system_message_template = ( + f"Your name is Quivr. You're a helpful assistant. Today's date is {today_date}." +) + +system_message_template += """ +When answering use markdown neat. +Answer in a concise and clear manner. +Use the following pieces of context from files provided by the user to answer the users. +Answer in the same language as the user question. +If you don't know the answer with the context provided from the files, just say that you don't know, don't try to make up an answer. +Don't cite the source id in the answer objects, but you can use the source to answer the question. +You have access to the files to answer the user question (limited to first 20 files): +{files} + +If not None, User instruction to follow to answer: {custom_instructions} +Don't cite the source id in the answer objects, but you can use the source to answer the question. +""" + + +ANSWER_PROMPT = ChatPromptTemplate.from_messages( + [ + SystemMessagePromptTemplate.from_template(system_message_template), + HumanMessagePromptTemplate.from_template(template_answer), + ] +) + + +# How we format documents + +DEFAULT_DOCUMENT_PROMPT = PromptTemplate.from_template( + template="Source: {index} \n {page_content}" +) + + +class MultiContractBrain(KnowledgeBrainQA): + """ + The MultiContract class integrates advanced conversational retrieval and language model chains + to provide comprehensive and context-aware responses to user queries. + + It leverages a combination of document retrieval, question condensation, and document-based + question answering to generate responses that are informed by a wide range of knowledge sources. + """ + + def __init__( + self, + **kwargs, + ): + """ + Initializes the MultiContract class with specific configurations. + + Args: + **kwargs: Arbitrary keyword arguments. + """ + super().__init__( + **kwargs, + ) + + def get_chain(self): + + list_files_array = ( + self.knowledge_qa.knowledge_service.get_all_knowledge_in_brain( + self.brain_id + ) + ) # pyright: ignore reportPrivateUsage=none + + list_files_array = [file.file_name for file in list_files_array] + # Max first 10 files + if len(list_files_array) > 20: + list_files_array = list_files_array[:20] + + list_files = "\n".join(list_files_array) if list_files_array else "None" + + retriever_doc = self.knowledge_qa.get_retriever() + + loaded_memory = RunnablePassthrough.assign( + chat_history=RunnableLambda( + lambda x: self.filter_history(x["chat_history"]), + ), + question=lambda x: x["question"], + ) + + api_base = None + if self.brain_settings.ollama_api_base_url and self.model.startswith("ollama"): + api_base = self.brain_settings.ollama_api_base_url + + standalone_question = { + "standalone_question": { + "question": lambda x: x["question"], + "chat_history": itemgetter("chat_history"), + } + | CONDENSE_QUESTION_PROMPT + | ChatLiteLLM(temperature=0, model=self.model, api_base=api_base) + | StrOutputParser(), + } + + knowledge_qa = self.knowledge_qa + prompt_custom_user = knowledge_qa.prompt_to_use() + prompt_to_use = "None" + if prompt_custom_user: + prompt_to_use = prompt_custom_user.content + + # Now we retrieve the documents + retrieved_documents = { + "docs": itemgetter("standalone_question") | retriever_doc, + "question": lambda x: x["standalone_question"], + "custom_instructions": lambda x: prompt_to_use, + } + + final_inputs = { + "context": lambda x: self.knowledge_qa._combine_documents(x["docs"]), + "question": itemgetter("question"), + "custom_instructions": itemgetter("custom_instructions"), + "files": lambda x: list_files, + } + llm = ChatLiteLLM( + max_tokens=self.max_tokens, + model=self.model, + temperature=self.temperature, + api_base=api_base, + ) # pyright: ignore reportPrivateUsage=none + if self.model_compatible_with_function_calling(self.model): + + # And finally, we do the part that returns the answers + llm_function = ChatOpenAI( + max_tokens=self.max_tokens, + model=self.model, + temperature=self.temperature, + ) + llm = llm_function.bind_tools( + [cited_answer], + tool_choice="cited_answer", + ) + + answer = { + "answer": final_inputs | ANSWER_PROMPT | llm, + "docs": itemgetter("docs"), + } + + return loaded_memory | standalone_question | retrieved_documents | answer diff --git a/backend/modules/brain/integrations/Multi_Contract/__init__.py b/backend/modules/brain/integrations/Multi_Contract/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/backend/modules/brain/knowledge_brain_qa.py b/backend/modules/brain/knowledge_brain_qa.py index 1ff26fa04..72fabd30f 100644 --- a/backend/modules/brain/knowledge_brain_qa.py +++ b/backend/modules/brain/knowledge_brain_qa.py @@ -331,7 +331,9 @@ class KnowledgeBrainQA(BaseModel, QAInterface): async def generate_stream( self, chat_id: UUID, question: ChatQuestion, save_answer: bool = True ) -> AsyncIterable: - conversational_qa_chain = self.knowledge_qa.get_chain() + conversational_qa_chain = ( + self.get_chain() if self.get_chain() else self.knowledge_qa.get_chain() + ) transformed_history, streamed_chat_history = ( self.initialize_streamed_chat_history(chat_id, question) ) diff --git a/backend/modules/brain/rags/quivr_rag.py b/backend/modules/brain/rags/quivr_rag.py index 29005412e..a76d855fc 100644 --- a/backend/modules/brain/rags/quivr_rag.py +++ b/backend/modules/brain/rags/quivr_rag.py @@ -24,6 +24,7 @@ from models import BrainSettings # Importing settings related to the 'brain' from models.settings import get_supabase_client from modules.brain.service.brain_service import BrainService from modules.chat.service.chat_service import ChatService +from modules.knowledge.repository.knowledges import Knowledges from modules.prompt.service.get_prompt_to_use import get_prompt_to_use from pydantic import BaseModel, ConfigDict from pydantic_settings import BaseSettings @@ -36,6 +37,12 @@ logger = get_logger(__name__) class cited_answer(BaseModelV1): """Answer the user question based only on the given sources, and cite the sources used.""" + thoughts: str = FieldV1( + ..., + description="""Description of the thought process, based only on the given sources. + Cite the text as much as possible and give the document name it appears in. In the format : 'Doc_name states : cited_text'. Be the most + procedural as possible.""", + ) answer: str = FieldV1( ..., description="The answer to the user question, which is based only on the given sources.", @@ -47,7 +54,7 @@ class cited_answer(BaseModelV1): thoughts: str = FieldV1( ..., - description="Explain shortly what you did to generate the answer. Explain any assumptions you made, and why you made them.", + description="Explain shortly what you did to find the answer and what you used by citing the sources by their name.", ) followup_questions: List[str] = FieldV1( ..., @@ -86,6 +93,10 @@ Answer in a concise and clear manner. Use the following pieces of context from files provided by the user to answer the users. Answer in the same language as the user question. If you don't know the answer with the context provided from the files, just say that you don't know, don't try to make up an answer. +Don't cite the source id in the answer objects, but you can use the source to answer the question. +You have access to the files to answer the user question (limited to first 20 files): +{files} + If not None, User instruction to follow to answer: {custom_instructions} Don't cite the source id in the answer objects, but you can use the source to answer the question. """ @@ -128,7 +139,6 @@ class QuivrRAG(BaseModel): # Instantiate settings brain_settings: BaseSettings = BrainSettings() - # Default class attributes model: str = None # pyright: ignore reportPrivateUsage=none temperature: float = 0.1 @@ -137,6 +147,7 @@ class QuivrRAG(BaseModel): max_tokens: int = 2000 # Output length max_input: int = 2000 streaming: bool = False + knowledge_service: Knowledges = None @property def embeddings(self): @@ -205,6 +216,7 @@ class QuivrRAG(BaseModel): self.brain_id = brain_id self.chat_id = chat_id self.streaming = streaming + self.knowledge_service = Knowledges() def _create_supabase_client(self) -> Client: return get_supabase_client() @@ -235,7 +247,9 @@ class QuivrRAG(BaseModel): api_base = None if self.brain_settings.ollama_api_base_url and model.startswith("ollama"): - api_base = self.brain_settings.ollama_api_base_url + api_base = ( + self.brain_settings.ollama_api_base_url # pyright: ignore reportPrivateUsage=none + ) return ChatLiteLLM( temperature=temperature, @@ -245,7 +259,7 @@ class QuivrRAG(BaseModel): verbose=False, callbacks=callbacks, api_base=api_base, - ) + ) # pyright: ignore reportPrivateUsage=none def _combine_documents( self, docs, document_prompt=DEFAULT_DOCUMENT_PROMPT, document_separator="\n\n" @@ -294,11 +308,23 @@ class QuivrRAG(BaseModel): return chat_history def get_chain(self): + + list_files_array = self.knowledge_service.get_all_knowledge_in_brain( + self.brain_id + ) # pyright: ignore reportPrivateUsage=none + + list_files_array = [file.file_name for file in list_files_array] + # Max first 10 files + if len(list_files_array) > 20: + list_files_array = list_files_array[:20] + + list_files = "\n".join(list_files_array) if list_files_array else "None" + compressor = None if os.getenv("COHERE_API_KEY"): - compressor = CohereRerank(top_n=10) + compressor = CohereRerank(top_n=20) else: - compressor = FlashrankRerank(model="ms-marco-TinyBERT-L-2-v2", top_n=10) + compressor = FlashrankRerank(model="ms-marco-TinyBERT-L-2-v2", top_n=20) retriever_doc = self.get_retriever() compression_retriever = ContextualCompressionRetriever( @@ -342,6 +368,7 @@ class QuivrRAG(BaseModel): "context": lambda x: self._combine_documents(x["docs"]), "question": itemgetter("question"), "custom_instructions": itemgetter("custom_instructions"), + "files": lambda x: list_files, } llm = ChatLiteLLM( max_tokens=self.max_tokens, diff --git a/backend/modules/chat/controller/chat/brainful_chat.py b/backend/modules/chat/controller/chat/brainful_chat.py index ce115c584..582e89924 100644 --- a/backend/modules/chat/controller/chat/brainful_chat.py +++ b/backend/modules/chat/controller/chat/brainful_chat.py @@ -1,8 +1,8 @@ from logger import get_logger -from modules.brain.api_brain_qa import APIBrainQA from modules.brain.entity.brain_entity import BrainType, RoleEnum from modules.brain.integrations.Big.Brain import BigBrain from modules.brain.integrations.GPT4.Brain import GPT4Brain +from modules.brain.integrations.Multi_Contract.Brain import MultiContractBrain from modules.brain.integrations.Notion.Brain import NotionBrain from modules.brain.integrations.Proxy.Brain import ProxyBrain from modules.brain.integrations.Self.Brain import SelfBrain @@ -47,6 +47,7 @@ integration_list = { "doc": KnowledgeBrainQA, "proxy": ProxyBrain, "self": SelfBrain, + "multi-contract": MultiContractBrain, } brain_service = BrainService() @@ -82,23 +83,6 @@ class BrainfulChat(ChatInterface): user_email=user_email, ) - if brain.brain_type == BrainType.API: - brain_definition = api_brain_definition_service.get_api_brain_definition( - brain.brain_id - ) - return APIBrainQA( - chat_id=chat_id, - temperature=temperature, - brain_id=str(brain.brain_id), - streaming=streaming, - prompt_id=prompt_id, - user_id=user_id, - raw=(brain_definition.raw if brain_definition else None), - jq_instructions=( - brain_definition.jq_instructions if brain_definition else None - ), - user_email=user_email, - ) if brain.brain_type == BrainType.INTEGRATION: integration_brain = integration_brain_description_service.get_integration_description_by_user_brain_id( brain.brain_id, user_id diff --git a/backend/packages/files/parsers/common.py b/backend/packages/files/parsers/common.py index 747ba09cc..9f8f1e19a 100644 --- a/backend/packages/files/parsers/common.py +++ b/backend/packages/files/parsers/common.py @@ -45,7 +45,9 @@ async def process_file( parser = LlamaParse( result_type="markdown", # "markdown" and "text" are available - parsing_instruction="Try to extract the tables and checkboxes. Transform tables to key = value. You can duplicates Keys if needed. For example: Productions Fonts = 300 productions Fonts Company Desktop License = Yes for Maximum of 60 Licensed Desktop users For example checkboxes should be: Premium Activated = Yes License Premier = No If a checkbox is present for a table with multiple options. Say Yes for the one activated and no for the one not activated", + parsing_instruction="Extract the tables and checkboxes. Transform tables to key = value. You can duplicates Keys if needed. For example: Productions Fonts = 300 productions Fonts Company Desktop License = Yes for Maximum of 60 Licensed Desktop users For example checkboxes should be: Premium Activated = Yes License Premier = No If a checkbox is present for a table with multiple options. Say Yes for the one activated and no for the one not activated.Format using headers.", + gpt4o_mode=True, + gpt4o_api_key=os.getenv("OPENAI_API_KEY"), ) document_llama_parsed = parser.load_data(document_tmp.name) @@ -79,7 +81,9 @@ async def process_file( if file.documents is not None: logger.info("Coming here?") - for doc in file.documents: # pyright: ignore reportPrivateUsage=none + for index, doc in enumerate( + file.documents, start=1 + ): # pyright: ignore reportPrivateUsage=none new_metadata = metadata.copy() logger.info(f"Processing document {doc}") # Add filename at beginning of page content @@ -95,6 +99,7 @@ async def process_file( ) new_metadata["chunk_size"] = len_chunk + new_metadata["index"] = index doc_with_metadata = DocumentSerializable( page_content=doc.page_content, metadata=new_metadata ) diff --git a/backend/requirements.txt b/backend/requirements.txt index 6e657c063..0262c1776 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -4,9 +4,9 @@ aiohttp==3.9.5; python_version >= '3.8' aiosignal==1.3.1; python_version >= '3.7' amqp==5.2.0; python_version >= '3.6' -annotated-types==0.6.0; python_version >= '3.8' +annotated-types==0.7.0; python_version >= '3.8' antlr4-python3-runtime==4.9.3 -anyio==4.3.0; python_version >= '3.8' +anyio==4.4.0; python_version >= '3.8' appdirs==1.4.4 astor==0.8.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' async-generator==1.10; python_version >= '3.5' @@ -17,8 +17,8 @@ backoff==2.2.1; python_version >= '3.7' and python_version < '4.0' beautifulsoup4==4.12.3; python_full_version >= '3.6.0' billiard==4.2.0; python_version >= '3.7' black==24.4.2; python_version >= '3.8' -boto3==1.34.107; python_version >= '3.8' -botocore==1.34.107; python_version >= '3.8' +boto3==1.34.113; python_version >= '3.8' +botocore==1.34.113; python_version >= '3.8' cachetools==5.3.3; python_version >= '3.7' celery[redis,sqs]==5.4.0; python_version >= '3.8' certifi==2024.2.2; python_version >= '3.6' @@ -29,7 +29,7 @@ click==8.1.7; python_version >= '3.7' click-didyoumean==0.3.1; python_full_version >= '3.6.2' click-plugins==1.1.1 click-repl==0.3.0; python_version >= '3.6' -cohere==5.5.0; python_version >= '3.8' and python_version < '4.0' +cohere==5.5.3; python_version >= '3.8' and python_version < '4.0' coloredlogs==15.0.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' colorlog==6.8.2; python_version >= '3.6' contourpy==1.2.1; python_version >= '3.9' @@ -49,18 +49,18 @@ dirtyjson==1.0.8 diskcache==5.6.3; python_version >= '3' distro==1.9.0; python_version >= '3.6' dnspython==2.6.1; python_version >= '3.8' -docker==7.0.0; python_version >= '3.8' +docker==7.1.0; python_version >= '3.8' docx2txt==0.8 -duckdb==0.10.2; python_full_version >= '3.7.0' -duckduckgo-search==6.1.0; python_version >= '3.8' +duckdb==0.10.3; python_full_version >= '3.7.0' +duckduckgo-search==6.1.1; python_version >= '3.8' ecdsa==0.19.0; python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' effdet==0.4.1 email-validator==2.1.1; python_version >= '3.8' -emoji==2.11.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' +emoji==2.12.1; python_version >= '3.7' et-xmlfile==1.1.0; python_version >= '3.6' faker==19.13.0; python_version >= '3.8' fastapi==0.111.0; python_version >= '3.8' -fastapi-cli==0.0.3; python_version >= '3.8' +fastapi-cli==0.0.4; python_version >= '3.8' fastavro==1.9.4; python_version >= '3.8' feedfinder2==0.0.4 feedparser==6.0.11; python_version >= '3.6' @@ -71,14 +71,14 @@ flake8-black==0.3.6; python_version >= '3.7' flashrank==0.2.5; python_version >= '3.6' flatbuffers==24.3.25 flower==2.0.1; python_version >= '3.7' -fonttools==4.51.0; python_version >= '3.8' -fpdf2==2.7.8; python_version >= '3.7' +fonttools==4.52.1; python_version >= '3.8' +fpdf2==2.7.9; python_version >= '3.7' frozenlist==1.4.1; python_version >= '3.8' fsspec[http]==2024.3.1; python_version >= '3.8' gitdb==4.0.11; python_version >= '3.7' gitpython==3.1.43; python_version >= '3.7' google-api-core[grpc]==2.19.0; python_version >= '3.7' -google-api-python-client==2.129.0; python_version >= '3.7' +google-api-python-client==2.130.0; python_version >= '3.7' google-auth==2.29.0; python_version >= '3.7' google-auth-httplib2==0.2.0 google-auth-oauthlib==1.2.0; python_version >= '3.6' @@ -86,7 +86,7 @@ google-cloud-vision==3.7.2 googleapis-common-protos==1.63.0; python_version >= '3.7' gotrue==2.4.2; python_version >= '3.8' and python_version < '4.0' greenlet==3.0.3; python_version >= '3.7' -grpcio==1.63.0 +grpcio==1.64.0 grpcio-status==1.62.2 h11==0.14.0; python_version >= '3.7' html5lib==1.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' @@ -95,7 +95,7 @@ httplib2==0.22.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3 httptools==0.6.1 httpx==0.27.0; python_version >= '3.8' httpx-sse==0.4.0; python_version >= '3.8' -huggingface-hub==0.23.0; python_full_version >= '3.8.0' +huggingface-hub==0.23.2; python_full_version >= '3.8.0' humanfriendly==10.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' humanize==4.9.0; python_version >= '3.8' idna==3.7; python_version >= '3.5' @@ -112,31 +112,31 @@ jsonpath-python==1.0.6; python_version >= '3.6' jsonpointer==2.4; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6' kiwisolver==1.4.5; python_version >= '3.7' kombu[sqs]==5.3.7; python_version >= '3.8' -langchain==0.1.20; python_version < '4.0' and python_full_version >= '3.8.1' +langchain==0.2.1; python_version < '4.0' and python_full_version >= '3.8.1' langchain-cohere==0.1.5; python_version < '4.0' and python_full_version >= '3.8.1' -langchain-community==0.0.38; python_version < '4.0' and python_full_version >= '3.8.1' -langchain-core==0.1.52; python_version < '4.0' and python_full_version >= '3.8.1' +langchain-community==0.2.1; python_version < '4.0' and python_full_version >= '3.8.1' +langchain-core==0.2.1; python_version < '4.0' and python_full_version >= '3.8.1' langchain-openai==0.1.7; python_version < '4.0' and python_full_version >= '3.8.1' -langchain-text-splitters==0.0.2; python_version < '4.0' and python_full_version >= '3.8.1' +langchain-text-splitters==0.2.0; python_version < '4.0' and python_full_version >= '3.8.1' langdetect==1.0.9 -langfuse==2.32.0; python_version < '4.0' and python_full_version >= '3.8.1' -langgraph==0.0.49; python_version < '4.0' and python_full_version >= '3.9.0' -langsmith==0.1.59; python_version < '4.0' and python_full_version >= '3.8.1' +langfuse==2.33.0; python_version < '4.0' and python_full_version >= '3.8.1' +langgraph==0.0.55; python_version < '4.0' and python_full_version >= '3.9.0' +langsmith==0.1.63; python_version < '4.0' and python_full_version >= '3.8.1' layoutparser[layoutmodels,tesseract]==0.3.4; python_version >= '3.6' -litellm==1.37.13; python_version not in '2.7, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7' and python_version >= '3.8' +litellm==1.38.10; python_version not in '2.7, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7' and python_version >= '3.8' llama-cpp-python==0.2.67; python_version >= '3.8' -llama-index==0.10.37; python_version < '4.0' and python_full_version >= '3.8.1' +llama-index==0.10.39; python_version < '4.0' and python_full_version >= '3.8.1' llama-index-agent-openai==0.2.5; python_version < '4.0' and python_full_version >= '3.8.1' llama-index-cli==0.1.12; python_version < '4.0' and python_full_version >= '3.8.1' -llama-index-core==0.10.36; python_version < '4.0' and python_full_version >= '3.8.1' -llama-index-embeddings-openai==0.1.9; python_version < '4.0' and python_full_version >= '3.8.1' +llama-index-core==0.10.39.post1; python_version < '4.0' and python_full_version >= '3.8.1' +llama-index-embeddings-openai==0.1.10; python_version < '4.0' and python_full_version >= '3.8.1' llama-index-indices-managed-llama-cloud==0.1.6; python_version < '4.0' and python_full_version >= '3.8.1' llama-index-legacy==0.9.48; python_version < '4.0' and python_full_version >= '3.8.1' -llama-index-llms-openai==0.1.19; python_version < '4.0' and python_full_version >= '3.8.1' +llama-index-llms-openai==0.1.21; python_version < '4.0' and python_full_version >= '3.8.1' llama-index-multi-modal-llms-openai==0.1.6; python_version < '4.0' and python_full_version >= '3.8.1' llama-index-program-openai==0.1.6; python_version < '4.0' and python_full_version >= '3.8.1' llama-index-question-gen-openai==0.1.3; python_version < '4.0' and python_full_version >= '3.8.1' -llama-index-readers-file==0.1.22; python_version < '4.0' and python_full_version >= '3.8.1' +llama-index-readers-file==0.1.23; python_version < '4.0' and python_full_version >= '3.8.1' llama-index-readers-llama-parse==0.1.4; python_version < '4.0' and python_full_version >= '3.8.1' llama-parse==0.4.3; python_version < '4.0' and python_full_version >= '3.8.1' llamaindex-py-client==0.1.19; python_version >= '3.8' and python_version < '4' @@ -161,20 +161,20 @@ networkx==3.3 newspaper3k==0.2.8 nltk==3.8.1; python_version >= '3.7' nodeenv==1.8.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6' -numpy==1.26.4; python_version >= '3.9' +numpy==1.26.4; python_version >= '3.10' oauthlib==3.2.2; python_version >= '3.6' olefile==0.47; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' omegaconf==2.3.0; python_version >= '3.6' -onnx==1.16.0 -onnxruntime==1.17.3 -openai==1.30.1; python_full_version >= '3.7.1' +onnx==1.16.1 +onnxruntime==1.18.0 +openai==1.30.3; python_full_version >= '3.7.1' opencv-python==4.9.0.80; python_version >= '3.6' openpyxl==3.1.2 ordered-set==4.1.0; python_version >= '3.7' orjson==3.10.3; python_version >= '3.8' packaging==23.2; python_version >= '3.7' pandas==1.5.3; python_version >= '3.8' -pandasai==2.0.42; python_version not in '2.7, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8' and python_version >= '3.9' +pandasai==2.0.43; python_version not in '2.7, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8' and python_version >= '3.9' pathspec==0.12.1; python_version >= '3.8' pdf2image==1.17.0 pdfminer.six==20231228 @@ -183,7 +183,7 @@ pikepdf==8.15.1 pillow==10.3.0; python_version >= '3.8' pillow-heif==0.16.0 platformdirs==4.2.2; python_version >= '3.8' -playwright==1.43.0; python_version >= '3.8' +playwright==1.44.0; python_version >= '3.8' pluggy==1.5.0; python_version >= '3.8' portalocker==2.8.2; python_version >= '3.8' postgrest==0.16.4; python_version >= '3.8' and python_version < '4.0' @@ -217,10 +217,10 @@ pyparsing==3.1.2; python_version >= '3.1' pypdf==4.2.0; python_version >= '3.6' pypdfium2==4.30.0; python_version >= '3.6' pyreqwest-impersonate==0.4.5; python_version >= '3.8' -pyright==1.1.363; python_version >= '3.7' +pyright==1.1.364; python_version >= '3.7' pysbd==0.3.4; python_version >= '3' pytesseract==0.3.10; python_version >= '3.7' -pytest==8.2.0; python_version >= '3.8' +pytest==8.2.1; python_version >= '3.8' pytest-celery==1.0.0; python_version >= '3.8' and python_version < '4.0' pytest-docker-tools==3.1.3; python_full_version >= '3.7.0' and python_full_version < '4.0.0' pytest-dotenv==0.5.2 @@ -235,23 +235,23 @@ python-multipart==0.0.9; python_version >= '3.8' python-pptx==0.6.23 pytz==2024.1 pyyaml==6.0.1; python_version >= '3.6' -ragas==0.1.7 -rapidfuzz==3.9.0; python_version >= '3.8' +ragas==0.1.8 +rapidfuzz==3.9.1; python_version >= '3.8' realtime==1.0.4; python_version >= '3.8' and python_version < '4.0' redis==5.0.4; python_version >= '3.7' regex==2024.5.15; python_version >= '3.8' -requests==2.31.0; python_version >= '3.7' -requests-file==2.0.0 +requests==2.32.2; python_version >= '3.8' +requests-file==2.1.0 requests-oauthlib==2.0.0; python_version >= '3.4' -resend==1.0.2; python_version >= '3.7' +resend==1.2.0; python_version >= '3.7' retry==0.9.2 rich==13.7.1; python_full_version >= '3.7.0' rsa==4.9; python_version >= '3.6' and python_version < '4' s3transfer==0.10.1; python_version >= '3.8' safetensors==0.4.3; python_version >= '3.7' -scipy==1.13.0; python_version >= '3.9' -sentry-sdk[fastapi]==2.2.0; python_version >= '3.6' -setuptools==69.5.1; python_version >= '3.8' +scipy==1.13.1; python_version >= '3.9' +sentry-sdk[fastapi]==2.3.1; python_version >= '3.6' +setuptools==70.0.0; python_version >= '3.8' sgmllib3k==1.0.0 shellingham==1.5.4; python_version >= '3.7' six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3' @@ -263,7 +263,7 @@ starlette==0.37.2; python_version >= '3.8' storage3==0.7.4; python_version >= '3.8' and python_version < '4.0' strenum==0.4.15 striprtf==0.0.26 -supabase==2.4.5; python_version >= '3.8' and python_version < '4.0' +supabase==2.4.6; python_version >= '3.8' and python_version < '4.0' supafunc==0.4.5; python_version >= '3.8' and python_version < '4.0' sympy==1.12; python_version >= '3.8' tabulate==0.9.0; python_version >= '3.7' @@ -274,28 +274,29 @@ timm==1.0.3; python_version >= '3.8' tinysegmenter==0.3 tldextract==5.1.2; python_version >= '3.8' tokenizers==0.19.1; python_version >= '3.7' -torch==2.3.0 -torchvision==0.18.0 +torch==2.3.0; python_full_version >= '3.8.0' +torchvision==0.18.0; python_version >= '3.8' tornado==6.4; python_version >= '3.8' tqdm==4.66.4; python_version >= '3.7' -transformers==4.40.2; python_full_version >= '3.8.0' +transformers==4.41.1; python_full_version >= '3.8.0' typer==0.12.3; python_version >= '3.7' -types-requests==2.31.0.20240406; python_version >= '3.8' -typing-extensions==4.11.0; python_version >= '3.8' +types-requests==2.32.0.20240523; python_version >= '3.8' +typing-extensions==4.12.0; python_version >= '3.8' typing-inspect==0.9.0 tzdata==2024.1; python_version >= '2' ujson==5.10.0; python_version >= '3.8' unidecode==1.3.8; python_version >= '3.5' -unstructured[all-docs]==0.13.7; python_version < '3.12' and python_full_version >= '3.9.0' +unstructured[all-docs]==0.14.2; python_version < '3.13' and python_full_version >= '3.9.0' unstructured-client==0.22.0; python_version >= '3.8' -unstructured-inference==0.7.31 +unstructured-inference==0.7.33 unstructured.pytesseract==0.3.12 uritemplate==4.1.1; python_version >= '3.6' urllib3==2.2.1; python_version >= '3.8' +uuid6==2024.1.12; python_version >= '3.8' uvicorn[standard]==0.29.0; python_version >= '3.8' uvloop==0.19.0 vine==5.1.0; python_version >= '3.6' -watchdog==4.0.0; python_version >= '3.8' +watchdog==4.0.1; python_version >= '3.8' watchfiles==0.21.0 wcwidth==0.2.13 webencodings==0.5.1 @@ -305,4 +306,4 @@ xlrd==2.0.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3 xlsxwriter==3.2.0; python_version >= '3.6' xxhash==3.4.1; python_version >= '3.7' yarl==1.9.4; python_version >= '3.7' -zipp==3.18.2; python_version >= '3.8' +zipp==3.19.0; python_version >= '3.8' diff --git a/backend/tests/ragas_evaluation/run_evaluation.py b/backend/tests/ragas_evaluation/run_evaluation.py index b45dd0b9d..376b7de29 100644 --- a/backend/tests/ragas_evaluation/run_evaluation.py +++ b/backend/tests/ragas_evaluation/run_evaluation.py @@ -1,5 +1,4 @@ import argparse -import json import os import sys @@ -8,9 +7,10 @@ from dotenv import load_dotenv # Add the current directory to the Python path sys.path.append(os.getcwd()) # Load environment variables from .env file -load_dotenv(verbose=True, override=True) +load_dotenv(verbose=True, override=True, dotenv_path=".env.test") import glob +import json import uuid import pandas as pd @@ -62,6 +62,7 @@ def main( max_input=context_size, max_tokens=1000, ) + brain_chain = knowledge_qa.get_chain() # run langchain RAG @@ -79,7 +80,6 @@ def main( score.to_json(output_folder + "/score.json", orient="records") for metric in metrics: - print(f"{metric} scores: {score[metric]}") print(f"{metric} mean score: {score[metric].mean()}") print(f"{metric} median score: {score[metric].median()}") # Cleanup if a new brain was created @@ -142,6 +142,7 @@ def generate_replies( contexts = [] test_questions = test_data.question.tolist() test_groundtruths = test_data.ground_truth.tolist() + thoughts = [] for question in test_questions: response = brain_chain.invoke({"question": question, "chat_history": []}) @@ -149,16 +150,15 @@ def generate_replies( "function" ]["arguments"] cited_answer_obj = json.loads(cited_answer_data) - print(f"Answer: {cited_answer_obj['answer']}") answers.append(cited_answer_obj["answer"]) - print(f"Context: {cited_answer_obj}") - print(response) + thoughts.append(cited_answer_obj["thoughts"]) contexts.append([context.page_content for context in response["docs"]]) return Dataset.from_dict( { "question": test_questions, "answer": answers, + "thoughs" : thoughts, "contexts": contexts, "ground_truth": test_groundtruths, } @@ -181,9 +181,7 @@ if __name__ == "__main__": parser.add_argument( "--testset_path", type=str, required=True, help="Path to the testset JSON file" ) - parser.add_argument( - "--model", type=str, default="gpt-3.5-turbo-0125", help="Model to use" - ) + parser.add_argument("--model", type=str, default="gpt-4o", help="Model to use") parser.add_argument( "--context_size", type=int, default=10000, help="Context size for the model" ) diff --git a/backend/tests/ragas_tests/experiment.json b/backend/tests/ragas_tests/experiment.json index cecbdc1bc..e88932054 100644 --- a/backend/tests/ragas_tests/experiment.json +++ b/backend/tests/ragas_tests/experiment.json @@ -2,12 +2,12 @@ { "question": "When is the current contract with Contoso ending?", "evolution_type": "simple", - "ground_truth": "12/31/2028" + "ground_truth": "The current contract with Contoso is ending on December 31, 2028." }, { "question": "What's the maximum Production Fonts Contoso have?", "evolution_type": "simple", - "ground_truth": "Unlimited" + "ground_truth": "Contoso has an unlimited Production Fonts licensed under the Monotype Fonts License Agreement." }, { "question": "How many contracts we have with Contoso?", @@ -17,22 +17,17 @@ { "question": "Have we got any change in number of production fonts by addendum in previous contracts, before the current contract?", "evolution_type": "simple", - "ground_truth": "Yes" - }, - { - "question": "For Contoso, can you mention the following based on all the contracts available: Contract Number, contract Start Date, contract End date. The result should be in tabular format with these 3 columns.", - "evolution_type": "simple", - "ground_truth": "" + "ground_truth": "Yes, there have been changes in the number of production fonts in previous contracts. For example, in the Addendum No. 1 to the Design and Deploy License Agreement, the Permitted Usage per Term table" }, { "question": "What's the number of production fonts for previous contract before current contract with Contoso?", "evolution_type": "simple", - "ground_truth": "140" + "ground_truth": "The number of production fonts for the contract with Contoso that preceded the current contract was 140." }, { "question": "What will be the next renewal date for Contoso?", "evolution_type": "simple", - "ground_truth": "12/31/2028" + "ground_truth": "The next renewal date for Contoso will be December 31, 2028," }, { "question": "How many Software License Order Form contract we ever had with Contoso?", @@ -52,7 +47,7 @@ { "question": "What's the Licensed Page Views in the latest contract with Contoso?", "evolution_type": "simple", - "ground_truth": "Unlimited" + "ground_truth": "The latest contract with Contoso specifies that the Licensed Page Views are unlimited" }, { "question": "What's the Licensed Impressions (Digital Marketing Communications) in the latest contract with Contoso?", diff --git a/backend/vectorstore/supabase.py b/backend/vectorstore/supabase.py index ea6a313e7..cf143b55e 100644 --- a/backend/vectorstore/supabase.py +++ b/backend/vectorstore/supabase.py @@ -97,4 +97,12 @@ class CustomSupabaseVectorStore(SupabaseVectorStore): if search.get("content") ] - return match_result + sorted_match_result_by_file_name_metadata = sorted( + match_result, + key=lambda x: ( + x.metadata.get("file_name", ""), + x.metadata.get("index", float("inf")), + ), + ) + + return sorted_match_result_by_file_name_metadata