nadaaaita commited on
Commit
1b8dab4
1 Parent(s): f6dd4c4

Worked on passage finder

Browse files
Pipfile CHANGED
@@ -15,6 +15,8 @@ jupyter = "*"
15
  ipykernel = "*"
16
  langgraph = "*"
17
  streamlit = "*"
 
 
18
 
19
  [dev-packages]
20
 
 
15
  ipykernel = "*"
16
  langgraph = "*"
17
  streamlit = "*"
18
+ fuzzywuzzy = "*"
19
+ python-levenshtein = "*"
20
 
21
  [dev-packages]
22
 
Pipfile.lock CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "_meta": {
3
  "hash": {
4
- "sha256": "af14c167c88c61fcd41a5c837c513b30d0d5497c6ba9836c299c2e6dc3128999"
5
  },
6
  "pipfile-spec": 6,
7
  "requires": {
@@ -26,108 +26,108 @@
26
  },
27
  "aiohappyeyeballs": {
28
  "hashes": [
29
- "sha256:55a1714f084e63d49639800f95716da97a1f173d46a16dfcfda0016abb93b6b2",
30
- "sha256:7ce92076e249169a13c2f49320d1967425eaf1f407522d707d59cac7628d62bd"
31
  ],
32
  "markers": "python_version >= '3.8'",
33
- "version": "==2.4.0"
34
  },
35
  "aiohttp": {
36
  "hashes": [
37
- "sha256:02108326574ff60267b7b35b17ac5c0bbd0008ccb942ce4c48b657bb90f0b8aa",
38
- "sha256:029a019627b37fa9eac5c75cc54a6bb722c4ebbf5a54d8c8c0fb4dd8facf2702",
39
- "sha256:03fa40d1450ee5196e843315ddf74a51afc7e83d489dbfc380eecefea74158b1",
40
- "sha256:0749c4d5a08a802dd66ecdf59b2df4d76b900004017468a7bb736c3b5a3dd902",
41
- "sha256:0754690a3a26e819173a34093798c155bafb21c3c640bff13be1afa1e9d421f9",
42
- "sha256:0a75d5c9fb4f06c41d029ae70ad943c3a844c40c0a769d12be4b99b04f473d3d",
43
- "sha256:0b82c8ebed66ce182893e7c0b6b60ba2ace45b1df104feb52380edae266a4850",
44
- "sha256:0be3115753baf8b4153e64f9aa7bf6c0c64af57979aa900c31f496301b374570",
45
- "sha256:14477c4e52e2f17437b99893fd220ffe7d7ee41df5ebf931a92b8ca82e6fd094",
46
- "sha256:164ecd32e65467d86843dbb121a6666c3deb23b460e3f8aefdcaacae79eb718a",
47
- "sha256:1cb045ec5961f51af3e2c08cd6fe523f07cc6e345033adee711c49b7b91bb954",
48
- "sha256:1e52e59ed5f4cc3a3acfe2a610f8891f216f486de54d95d6600a2c9ba1581f4d",
49
- "sha256:217791c6a399cc4f2e6577bb44344cba1f5714a2aebf6a0bea04cfa956658284",
50
- "sha256:25d92f794f1332f656e3765841fc2b7ad5c26c3f3d01e8949eeb3495691cf9f4",
51
- "sha256:2708baccdc62f4b1251e59c2aac725936a900081f079b88843dabcab0feeeb27",
52
- "sha256:27cf19a38506e2e9f12fc17e55f118f04897b0a78537055d93a9de4bf3022e3d",
53
- "sha256:289fa8a20018d0d5aa9e4b35d899bd51bcb80f0d5f365d9a23e30dac3b79159b",
54
- "sha256:2cd5290ab66cfca2f90045db2cc6434c1f4f9fbf97c9f1c316e785033782e7d2",
55
- "sha256:2dd56e3c43660ed3bea67fd4c5025f1ac1f9ecf6f0b991a6e5efe2e678c490c5",
56
- "sha256:3427031064b0d5c95647e6369c4aa3c556402f324a3e18107cb09517abe5f962",
57
- "sha256:3468b39f977a11271517c6925b226720e148311039a380cc9117b1e2258a721f",
58
- "sha256:370e2d47575c53c817ee42a18acc34aad8da4dbdaac0a6c836d58878955f1477",
59
- "sha256:3d2665c5df629eb2f981dab244c01bfa6cdc185f4ffa026639286c4d56fafb54",
60
- "sha256:3e15e33bfc73fa97c228f72e05e8795e163a693fd5323549f49367c76a6e5883",
61
- "sha256:3fb4216e3ec0dbc01db5ba802f02ed78ad8f07121be54eb9e918448cc3f61b7c",
62
- "sha256:40271a2a375812967401c9ca8077de9368e09a43a964f4dce0ff603301ec9358",
63
- "sha256:438c5863feb761f7ca3270d48c292c334814459f61cc12bab5ba5b702d7c9e56",
64
- "sha256:4407a80bca3e694f2d2a523058e20e1f9f98a416619e04f6dc09dc910352ac8b",
65
- "sha256:444d1704e2af6b30766debed9be8a795958029e552fe77551355badb1944012c",
66
- "sha256:4611db8c907f90fe86be112efdc2398cd7b4c8eeded5a4f0314b70fdea8feab0",
67
- "sha256:473961b3252f3b949bb84873d6e268fb6d8aa0ccc6eb7404fa58c76a326bb8e1",
68
- "sha256:4752df44df48fd42b80f51d6a97553b482cda1274d9dc5df214a3a1aa5d8f018",
69
- "sha256:47647c8af04a70e07a2462931b0eba63146a13affa697afb4ecbab9d03a480ce",
70
- "sha256:482f74057ea13d387a7549d7a7ecb60e45146d15f3e58a2d93a0ad2d5a8457cd",
71
- "sha256:4bef1480ee50f75abcfcb4b11c12de1005968ca9d0172aec4a5057ba9f2b644f",
72
- "sha256:4fabdcdc781a36b8fd7b2ca9dea8172f29a99e11d00ca0f83ffeb50958da84a1",
73
- "sha256:5582de171f0898139cf51dd9fcdc79b848e28d9abd68e837f0803fc9f30807b1",
74
- "sha256:58c5d7318a136a3874c78717dd6de57519bc64f6363c5827c2b1cb775bea71dd",
75
- "sha256:5db26bbca8e7968c4c977a0c640e0b9ce7224e1f4dcafa57870dc6ee28e27de6",
76
- "sha256:614fc21e86adc28e4165a6391f851a6da6e9cbd7bb232d0df7718b453a89ee98",
77
- "sha256:6419728b08fb6380c66a470d2319cafcec554c81780e2114b7e150329b9a9a7f",
78
- "sha256:669c0efe7e99f6d94d63274c06344bd0e9c8daf184ce5602a29bc39e00a18720",
79
- "sha256:66bc81361131763660b969132a22edce2c4d184978ba39614e8f8f95db5c95f8",
80
- "sha256:671745ea7db19693ce867359d503772177f0b20fa8f6ee1e74e00449f4c4151d",
81
- "sha256:682836fc672972cc3101cc9e30d49c5f7e8f1d010478d46119fe725a4545acfd",
82
- "sha256:6a504d7cdb431a777d05a124fd0b21efb94498efa743103ea01b1e3136d2e4fb",
83
- "sha256:6a86610174de8a85a920e956e2d4f9945e7da89f29a00e95ac62a4a414c4ef4e",
84
- "sha256:6b50b367308ca8c12e0b50cba5773bc9abe64c428d3fd2bbf5cd25aab37c77bf",
85
- "sha256:7475da7a5e2ccf1a1c86c8fee241e277f4874c96564d06f726d8df8e77683ef7",
86
- "sha256:7641920bdcc7cd2d3ddfb8bb9133a6c9536b09dbd49490b79e125180b2d25b93",
87
- "sha256:79a9f42efcc2681790595ab3d03c0e52d01edc23a0973ea09f0dc8d295e12b8e",
88
- "sha256:7ea35d849cdd4a9268f910bff4497baebbc1aa3f2f625fd8ccd9ac99c860c621",
89
- "sha256:8198b7c002aae2b40b2d16bfe724b9a90bcbc9b78b2566fc96131ef4e382574d",
90
- "sha256:81b292f37969f9cc54f4643f0be7dacabf3612b3b4a65413661cf6c350226787",
91
- "sha256:844d48ff9173d0b941abed8b2ea6a412f82b56d9ab1edb918c74000c15839362",
92
- "sha256:8617c96a20dd57e7e9d398ff9d04f3d11c4d28b1767273a5b1a018ada5a654d3",
93
- "sha256:8a637d387db6fdad95e293fab5433b775fd104ae6348d2388beaaa60d08b38c4",
94
- "sha256:92351aa5363fc3c1f872ca763f86730ced32b01607f0c9662b1fa711087968d0",
95
- "sha256:9843d683b8756971797be171ead21511d2215a2d6e3c899c6e3107fbbe826791",
96
- "sha256:995ab1a238fd0d19dc65f2d222e5eb064e409665c6426a3e51d5101c1979ee84",
97
- "sha256:9bd6b2033993d5ae80883bb29b83fb2b432270bbe067c2f53cc73bb57c46065f",
98
- "sha256:9d26da22a793dfd424be1050712a70c0afd96345245c29aced1e35dbace03413",
99
- "sha256:a976ef488f26e224079deb3d424f29144c6d5ba4ded313198169a8af8f47fb82",
100
- "sha256:a9f196c970db2dcde4f24317e06615363349dc357cf4d7a3b0716c20ac6d7bcd",
101
- "sha256:b169f8e755e541b72e714b89a831b315bbe70db44e33fead28516c9e13d5f931",
102
- "sha256:b504c08c45623bf5c7ca41be380156d925f00199b3970efd758aef4a77645feb",
103
- "sha256:ba18573bb1de1063d222f41de64a0d3741223982dcea863b3f74646faf618ec7",
104
- "sha256:ba3662d41abe2eab0eeec7ee56f33ef4e0b34858f38abf24377687f9e1fb00a5",
105
- "sha256:bd294dcdc1afdc510bb51d35444003f14e327572877d016d576ac3b9a5888a27",
106
- "sha256:bdbeff1b062751c2a2a55b171f7050fb7073633c699299d042e962aacdbe1a07",
107
- "sha256:bf861da9a43d282d6dd9dcd64c23a0fccf2c5aa5cd7c32024513c8c79fb69de3",
108
- "sha256:c82a94ddec996413a905f622f3da02c4359952aab8d817c01cf9915419525e95",
109
- "sha256:c91781d969fbced1993537f45efe1213bd6fccb4b37bfae2a026e20d6fbed206",
110
- "sha256:c9721cdd83a994225352ca84cd537760d41a9da3c0eacb3ff534747ab8fba6d0",
111
- "sha256:cca776a440795db437d82c07455761c85bbcf3956221c3c23b8c93176c278ce7",
112
- "sha256:cf8b8560aa965f87bf9c13bf9fed7025993a155ca0ce8422da74bf46d18c2f5f",
113
- "sha256:d2578ef941be0c2ba58f6f421a703527d08427237ed45ecb091fed6f83305336",
114
- "sha256:d2b3935a22c9e41a8000d90588bed96cf395ef572dbb409be44c6219c61d900d",
115
- "sha256:d4dfa5ad4bce9ca30a76117fbaa1c1decf41ebb6c18a4e098df44298941566f9",
116
- "sha256:d7f408c43f5e75ea1edc152fb375e8f46ef916f545fb66d4aebcbcfad05e2796",
117
- "sha256:dc1a16f3fc1944c61290d33c88dc3f09ba62d159b284c38c5331868425aca426",
118
- "sha256:e0009258e97502936d3bd5bf2ced15769629097d0abb81e6495fba1047824fe0",
119
- "sha256:e05b39158f2af0e2438cc2075cfc271f4ace0c3cc4a81ec95b27a0432e161951",
120
- "sha256:e1f80cd17d81a404b6e70ef22bfe1870bafc511728397634ad5f5efc8698df56",
121
- "sha256:e2e7d5591ea868d5ec82b90bbeb366a198715672841d46281b623e23079593db",
122
- "sha256:f3af26f86863fad12e25395805bb0babbd49d512806af91ec9708a272b696248",
123
- "sha256:f52e54fd776ad0da1006708762213b079b154644db54bcfc62f06eaa5b896402",
124
- "sha256:f8b8e49fe02f744d38352daca1dbef462c3874900bd8166516f6ea8e82b5aacf",
125
- "sha256:fb138fbf9f53928e779650f5ed26d0ea1ed8b2cab67f0ea5d63afa09fdc07593",
126
- "sha256:fe517113fe4d35d9072b826c3e147d63c5f808ca8167d450b4f96c520c8a1d8d",
127
- "sha256:ff99ae06eef85c7a565854826114ced72765832ee16c7e3e766c5e4c5b98d20e"
128
- ],
129
- "markers": "python_version >= '3.8'",
130
- "version": "==3.10.6"
131
  },
132
  "aiosignal": {
133
  "hashes": [
@@ -790,6 +790,14 @@
790
  "markers": "python_version >= '3.8'",
791
  "version": "==2024.9.0"
792
  },
 
 
 
 
 
 
 
 
793
  "gitdb": {
794
  "hashes": [
795
  "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4",
@@ -808,12 +816,12 @@
808
  },
809
  "gradio": {
810
  "hashes": [
811
- "sha256:1d358f2671fbc37b51fd0758ed9910b7047e978c961031d4b4ded068a07ef5ab",
812
- "sha256:a2f8d1279da088f6715423aff13b83de471b8076c34c1a9a48136bad33753241"
813
  ],
814
  "index": "pypi",
815
  "markers": "python_version >= '3.8'",
816
- "version": "==4.44.0"
817
  },
818
  "gradio-client": {
819
  "hashes": [
@@ -904,107 +912,125 @@
904
  },
905
  "grpcio": {
906
  "hashes": [
907
- "sha256:0e6c9b42ded5d02b6b1fea3a25f036a2236eeb75d0579bfd43c0018c88bf0a3e",
908
- "sha256:161d5c535c2bdf61b95080e7f0f017a1dfcb812bf54093e71e5562b16225b4ce",
909
- "sha256:17663598aadbedc3cacd7bbde432f541c8e07d2496564e22b214b22c7523dac8",
910
- "sha256:1c17ebcec157cfb8dd445890a03e20caf6209a5bd4ac5b040ae9dbc59eef091d",
911
- "sha256:292a846b92cdcd40ecca46e694997dd6b9be6c4c01a94a0dfb3fcb75d20da858",
912
- "sha256:2ca2559692d8e7e245d456877a85ee41525f3ed425aa97eb7a70fc9a79df91a0",
913
- "sha256:307b1d538140f19ccbd3aed7a93d8f71103c5d525f3c96f8616111614b14bf2a",
914
- "sha256:30a1c2cf9390c894c90bbc70147f2372130ad189cffef161f0432d0157973f45",
915
- "sha256:31a049daa428f928f21090403e5d18ea02670e3d5d172581670be006100db9ef",
916
- "sha256:35334f9c9745add3e357e3372756fd32d925bd52c41da97f4dfdafbde0bf0ee2",
917
- "sha256:3750c5a00bd644c75f4507f77a804d0189d97a107eb1481945a0cf3af3e7a5ac",
918
- "sha256:3885f037eb11f1cacc41f207b705f38a44b69478086f40608959bf5ad85826dd",
919
- "sha256:4573608e23f7e091acfbe3e84ac2045680b69751d8d67685ffa193a4429fedb1",
920
- "sha256:4825a3aa5648010842e1c9d35a082187746aa0cdbf1b7a2a930595a94fb10fce",
921
- "sha256:4877ba180591acdf127afe21ec1c7ff8a5ecf0fe2600f0d3c50e8c4a1cbc6492",
922
- "sha256:48b0d92d45ce3be2084b92fb5bae2f64c208fea8ceed7fccf6a7b524d3c4942e",
923
- "sha256:4d813316d1a752be6f5c4360c49f55b06d4fe212d7df03253dfdae90c8a402bb",
924
- "sha256:5dd67ed9da78e5121efc5c510f0122a972216808d6de70953a740560c572eb44",
925
- "sha256:6f914386e52cbdeb5d2a7ce3bf1fdfacbe9d818dd81b6099a05b741aaf3848bb",
926
- "sha256:7101db1bd4cd9b880294dec41a93fcdce465bdbb602cd8dc5bd2d6362b618759",
927
- "sha256:7e06aa1f764ec8265b19d8f00140b8c4b6ca179a6dc67aa9413867c47e1fb04e",
928
- "sha256:84ca1be089fb4446490dd1135828bd42a7c7f8421e74fa581611f7afdf7ab761",
929
- "sha256:8a1e224ce6f740dbb6b24c58f885422deebd7eb724aff0671a847f8951857c26",
930
- "sha256:97ae7edd3f3f91480e48ede5d3e7d431ad6005bfdbd65c1b56913799ec79e791",
931
- "sha256:9c9bebc6627873ec27a70fc800f6083a13c70b23a5564788754b9ee52c5aef6c",
932
- "sha256:a013c5fbb12bfb5f927444b477a26f1080755a931d5d362e6a9a720ca7dbae60",
933
- "sha256:a66fe4dc35d2330c185cfbb42959f57ad36f257e0cc4557d11d9f0a3f14311df",
934
- "sha256:a92c4f58c01c77205df6ff999faa008540475c39b835277fb8883b11cada127a",
935
- "sha256:aa8ba945c96e73de29d25331b26f3e416e0c0f621e984a3ebdb2d0d0b596a3b3",
936
- "sha256:b0aa03d240b5539648d996cc60438f128c7f46050989e35b25f5c18286c86734",
937
- "sha256:b1b24c23d51a1e8790b25514157d43f0a4dce1ac12b3f0b8e9f66a5e2c4c132f",
938
- "sha256:b7ffb8ea674d68de4cac6f57d2498fef477cef582f1fa849e9f844863af50083",
939
- "sha256:b9feb4e5ec8dc2d15709f4d5fc367794d69277f5d680baf1910fc9915c633524",
940
- "sha256:bff2096bdba686019fb32d2dde45b95981f0d1490e054400f70fc9a8af34b49d",
941
- "sha256:c30aeceeaff11cd5ddbc348f37c58bcb96da8d5aa93fed78ab329de5f37a0d7a",
942
- "sha256:c9f80f9fad93a8cf71c7f161778ba47fd730d13a343a46258065c4deb4b550c0",
943
- "sha256:cfd349de4158d797db2bd82d2020554a121674e98fbe6b15328456b3bf2495bb",
944
- "sha256:d0cd7050397b3609ea51727b1811e663ffda8bda39c6a5bb69525ef12414b503",
945
- "sha256:d639c939ad7c440c7b2819a28d559179a4508783f7e5b991166f8d7a34b52815",
946
- "sha256:e3ba04659e4fce609de2658fe4dbf7d6ed21987a94460f5f92df7579fd5d0e22",
947
- "sha256:ecfe735e7a59e5a98208447293ff8580e9db1e890e232b8b292dc8bd15afc0d2",
948
- "sha256:ef82d361ed5849d34cf09105d00b94b6728d289d6b9235513cb2fcc79f7c432c",
949
- "sha256:f03a5884c56256e08fd9e262e11b5cfacf1af96e2ce78dc095d2c41ccae2c80d",
950
- "sha256:f1fe60d0772831d96d263b53d83fb9a3d050a94b0e94b6d004a5ad111faa5b5b",
951
- "sha256:f517fd7259fe823ef3bd21e508b653d5492e706e9f0ef82c16ce3347a8a5620c",
952
- "sha256:fdb14bad0835914f325349ed34a51940bc2ad965142eb3090081593c6e347be9"
953
- ],
954
- "markers": "python_version >= '3.8'",
955
- "version": "==1.66.1"
 
 
 
 
 
 
 
 
 
956
  },
957
  "grpcio-tools": {
958
  "hashes": [
959
- "sha256:0067e79b6001560ac6acc78cca11fd3504fa27f8af46e3cdbac2f4998505e597",
960
- "sha256:016fa273dc696c9d8045091ac50e000bce766183a6b150801f51c2946e33dbe3",
961
- "sha256:066648543f786cb74b1fef5652359952455dbba37e832642026fd9fd8a219b5f",
962
- "sha256:097a069e7c640043921ecaf3e88d7af78ccd40c25dbddc91db2a4a2adbd0393d",
963
- "sha256:0a86398a4cd0665bc7f09fa90b89bac592c959d2c895bf3cf5d47a98c0f2d24c",
964
- "sha256:1b4acb53338072ab3023e418a5c7059cb15686abd1607516fa1453406dd5f69d",
965
- "sha256:1ec9f4f964f8e8ed5e9cc13deb678c83d5597074c256805373220627833bc5ad",
966
- "sha256:2226ff8d3ecba83b7622946df19d6e8e15cb52f761b8d9e2f807b228db5f1b1e",
967
- "sha256:222d8dc218560698e1abf652fb47e4015994ec7a265ef46e012fd9c9e77a4d6b",
968
- "sha256:23cad65ff22459aa387f543d293f54834c9aac8f76fb7416a7046556df75b567",
969
- "sha256:2f4b1498cb8b422fbae32a491c9154e8d47650caf5852fbe6b3b34253e824343",
970
- "sha256:3198815814cdd12bdb69b7580d7770a4ad4c8b2093e0bd6b987bc817618e3eec",
971
- "sha256:3acce426f5e643de63019311171f4d31131da8149de518716a95c29a2c12dd38",
972
- "sha256:3d17a27c567a5e4d18f487368215cb51b43e2499059fd6113b92f7ae1fee48be",
973
- "sha256:4df167e67b083f96bc277032a526f6186e98662aaa49baea1dfb8ecfe26ce117",
974
- "sha256:5055ffe840ea8f505c30378be02afb4dbecb33480e554debe10b63d6b2f641c3",
975
- "sha256:56e17a11f34df252b4c6fb8aa8cd7b44d162dba9f3333be87ddf7c8bf496622a",
976
- "sha256:5b4fc56abeafae74140f5da29af1093e88ce64811d77f1a81c3146e9e996fb6a",
977
- "sha256:5daceb9716e31edc0e1ba0f93303785211438c43502edddad7a919fc4cb3d664",
978
- "sha256:5f1f04578b72c281e39274348a61d240c48d5321ba8d7a8838e194099ecbc322",
979
- "sha256:66f527a1e3f063065e29cf6f3e55892434d13a5a51e3b22402e09da9521e98a3",
980
- "sha256:68d9390bf9ba863ac147fc722d6548caa587235e887cac1bc2438212e89d1de7",
981
- "sha256:739c53571130b359b738ac7d6d0a1f772e15779b66df7e6764bee4071cd38689",
982
- "sha256:796620fc41d3fbb566d9614ef22bc55df67fac1f1e19c1e0fb6ec48bc9b6a44b",
983
- "sha256:7d789bfe53fce9e87aa80c3694a366258ce4c41b706258e9228ed4994832b780",
984
- "sha256:7fc3f62494f238774755ff90f0e66a93ac7972ea1eb7180c45acf4fd53b25cca",
985
- "sha256:869b6960d5daffda0dac1a474b44144f0dace0d4336394e499c4f400c5e2f8d9",
986
- "sha256:88e04b7546101bc79c868c941777efd5088063a9e4f03b4d7263dde796fbabf7",
987
- "sha256:93d2d9e14e81affdc63d67c42eb16a8da1b6fecc16442a703ca60eb0e7591691",
988
- "sha256:95c44a265ff01fd05166edae9350bc2e7d1d9a95e8f53b8cd04d2ae0a588c583",
989
- "sha256:9a07e24feb7472419cf70ebbb38dd4299aea696f91f191b62a99b3ee9ff03f89",
990
- "sha256:b8660401beca7e3af28722439e07b0bcdca80b4a68f5a5a1138ae7b7780a6abf",
991
- "sha256:b962a8767c3c0f9afe92e0dd6bb0b2305d35195a1053f84d4d31f585b87557ed",
992
- "sha256:d19d47744c30e6bafa76b3113740e71f382d75ebb2918c1efd62ebe6ba7e20f9",
993
- "sha256:d4dd2ff982c1aa328ef47ce34f07af82f1f13599912fb1618ebc5fe1e14dddb8",
994
- "sha256:d761dfd97a10e4aae73628b5120c64e56f0cded88651d0003d2d80e678c3e7c9",
995
- "sha256:d8616773126ec3cdf747b06a12e957b43ac15c34e4728def91fa67249a7c689a",
996
- "sha256:da9b0c08dbbf07535ee1b75a22d0acc5675a808a3a3df9f9b21e0e73ddfbb3a9",
997
- "sha256:df1a174a6f9d3b4c380f005f33352d2e95464f33f021fb08084735a2eb6e23b1",
998
- "sha256:e0c71405399ef59782600b1f0bdebc69ba12d7c9527cd268162a86273971d294",
999
- "sha256:e1c2ac0955f5fb87b8444316e475242d194c3f3cd0b7b6e54b889a7b6f05156f",
1000
- "sha256:e302b4e1fa856d74ff65c65888b3a37153287ce6ad5bad80b2fdf95130accec2",
1001
- "sha256:eb67b9aa9cd69468bceb933e8e0f89fd13695746c018c4d2e6b3b84e73f3ad97",
1002
- "sha256:edd52d667f2aa3c73233be0a821596937f24536647c12d96bfc54aa4cb04747d",
1003
- "sha256:f94d5193b2f2a9595795b83e7978b2bee1c0399da66f2f24d179c388f81fb99c",
1004
- "sha256:fa4f95a79a34afc3b5464895d091cd1911227fc3ab0441b9a37cd1817cf7db86"
1005
- ],
1006
- "markers": "python_version >= '3.8'",
1007
- "version": "==1.66.1"
 
 
 
 
 
 
 
 
 
1008
  },
1009
  "h11": {
1010
  "hashes": [
@@ -1456,29 +1482,29 @@
1456
  },
1457
  "langchain": {
1458
  "hashes": [
1459
- "sha256:59a75a6a1eb7bfd2a6bf0c7a5816409a8fdc9046187b07af287b23b9899617af",
1460
- "sha256:a7c23892440bd1f5b9e029ff0dd709dd881ae927c4c0a3210ac64dba9bbf3f7f"
1461
  ],
1462
  "index": "pypi",
1463
  "markers": "python_version >= '3.9' and python_version < '4.0'",
1464
- "version": "==0.3.0"
1465
  },
1466
  "langchain-core": {
1467
  "hashes": [
1468
- "sha256:2b5f86c1101beb013cb264c5722ad21931641493b4dc86e6f0575da698bf5cff",
1469
- "sha256:67e5510559454f3f7a0526e7ef91fd0f12b45c0cdc70720e44909f62b5becf5a"
1470
  ],
1471
  "markers": "python_version >= '3.9' and python_version < '4.0'",
1472
- "version": "==0.3.5"
1473
  },
1474
  "langchain-openai": {
1475
  "hashes": [
1476
- "sha256:441ec8fd254992e5fa81d375e60849993a81db5e9e42a79344ebff7a40a0b45f",
1477
- "sha256:9a1a69ba0706f23ec2941096ead0bc39202cac0e9782a5d6c8d92cb2280c2759"
1478
  ],
1479
  "index": "pypi",
1480
  "markers": "python_version >= '3.9' and python_version < '4.0'",
1481
- "version": "==0.2.0"
1482
  },
1483
  "langchain-qdrant": {
1484
  "hashes": [
@@ -1499,28 +1525,115 @@
1499
  },
1500
  "langgraph": {
1501
  "hashes": [
1502
- "sha256:2ed1a521209737f50833d433a1c0ffef3a1f0e2a94f6ffda97f5bc2d673db010",
1503
- "sha256:b9e98fe011100a0a52f0c6936ce672330fd245b81cd6fe5ae30c0eb34663b99a"
1504
  ],
1505
  "index": "pypi",
1506
  "markers": "python_version < '4.0' and python_full_version >= '3.9.0'",
1507
- "version": "==0.2.27"
1508
  },
1509
  "langgraph-checkpoint": {
1510
  "hashes": [
1511
- "sha256:156af1666272a0be3cda4a2c4ffe6b2e2f5af8ead7d450d345cbb39828ce4b05",
1512
- "sha256:9644bd61e3ab5b03fc0422aa5e625061ad14aa2012d046bf4bb306451da95371"
1513
  ],
1514
  "markers": "python_full_version >= '3.9.0' and python_full_version < '4.0.0'",
1515
- "version": "==1.0.11"
1516
  },
1517
  "langsmith": {
1518
  "hashes": [
1519
- "sha256:3299e17a659f3c47725c97c47f4445fc34113ac668becce425919866fbcb6ec2",
1520
- "sha256:c1b59d947584be7487ac53dffb4e232704626964011b714fd3d9add4b3694cbc"
1521
  ],
1522
  "markers": "python_version < '4.0' and python_full_version >= '3.8.1'",
1523
- "version": "==0.1.128"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1524
  },
1525
  "markdown-it-py": {
1526
  "hashes": [
@@ -1836,11 +1949,11 @@
1836
  },
1837
  "narwhals": {
1838
  "hashes": [
1839
- "sha256:416ddc72f98884e0bf4976a453f541fb395653bddce03c27b3fa52550f325cc0",
1840
- "sha256:818bf31a24ecf74a1c757220dee004c6b261364c9127c95ba4cc5530205709a4"
1841
  ],
1842
  "markers": "python_version >= '3.8'",
1843
- "version": "==1.8.3"
1844
  },
1845
  "nbclient": {
1846
  "hashes": [
@@ -1935,11 +2048,11 @@
1935
  },
1936
  "openai": {
1937
  "hashes": [
1938
- "sha256:1d3b69ea62c287c4885a6f3ce840768564cd5f52c60ac5f890fef80d43cc4799",
1939
- "sha256:7c4af223f0bf615ce4a12453729952c9a8b04ffe8c78aa77981b12fd970149cf"
1940
  ],
1941
  "markers": "python_full_version >= '3.7.1'",
1942
- "version": "==1.48.0"
1943
  },
1944
  "orjson": {
1945
  "hashes": [
@@ -2474,13 +2587,22 @@
2474
  "markers": "python_version >= '3.6'",
2475
  "version": "==2.0.7"
2476
  },
 
 
 
 
 
 
 
 
 
2477
  "python-multipart": {
2478
  "hashes": [
2479
- "sha256:2b06ad9e8d50c7a8db80e3b56dab590137b323410605af2be20d62a5f1ba1dc8",
2480
- "sha256:46eb3c6ce6fdda5fb1a03c7e11d490e407c6930a2703fe7aef4da71c374688fa"
2481
  ],
2482
  "markers": "python_version >= '3.8'",
2483
- "version": "==0.0.10"
2484
  },
2485
  "pytz": {
2486
  "hashes": [
@@ -2671,6 +2793,100 @@
2671
  "markers": "python_version >= '3.8'",
2672
  "version": "==1.11.3"
2673
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2674
  "referencing": {
2675
  "hashes": [
2676
  "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c",
@@ -2805,11 +3021,11 @@
2805
  },
2806
  "rich": {
2807
  "hashes": [
2808
- "sha256:1760a3c0848469b97b558fc61c85233e3dafb69c7a071b4d60c38099d3cd4c06",
2809
- "sha256:8260cda28e3db6bf04d2d1ef4dbc03ba80a824c88b0e7668a0f23126a424844a"
2810
  ],
2811
- "markers": "python_full_version >= '3.7.0'",
2812
- "version": "==13.8.1"
2813
  },
2814
  "rpds-py": {
2815
  "hashes": [
@@ -2922,27 +3138,27 @@
2922
  },
2923
  "ruff": {
2924
  "hashes": [
2925
- "sha256:02b083770e4cdb1495ed313f5694c62808e71764ec6ee5db84eedd82fd32d8f5",
2926
- "sha256:08277b217534bfdcc2e1377f7f933e1c7957453e8a79764d004e44c40db923f2",
2927
- "sha256:0c05fd37013de36dfa883a3854fae57b3113aaa8abf5dea79202675991d48624",
2928
- "sha256:17a86aac6f915932d259f7bec79173e356165518859f94649d8c50b81ff087e9",
2929
- "sha256:2f0b62056246234d59cbf2ea66e84812dc9ec4540518e37553513392c171cb18",
2930
- "sha256:44e52129d82266fa59b587e2cd74def5637b730a69c4542525dfdecfaae38bd5",
2931
- "sha256:525201b77f94d2b54868f0cbe5edc018e64c22563da6c5c2e5c107a4e85c1c0d",
2932
- "sha256:533d66b7774ef224e7cf91506a7dafcc9e8ec7c059263ec46629e54e7b1f90ab",
2933
- "sha256:590445eec5653f36248584579c06252ad2e110a5d1f32db5420de35fb0e1c977",
2934
- "sha256:6b1462fa56c832dc0cea5b4041cfc9c97813505d11cce74ebc6d1aae068de36b",
2935
- "sha256:8854450839f339e1049fdbe15d875384242b8e85d5c6947bb2faad33c651020b",
2936
- "sha256:9ba4efe5c6dbbb58be58dd83feedb83b5e95c00091bf09987b4baf510fee5c99",
2937
- "sha256:a0e1655868164e114ba43a908fd2d64a271a23660195017c17691fb6355d59bb",
2938
- "sha256:a939ca435b49f6966a7dd64b765c9df16f1faed0ca3b6f16acdf7731969deb35",
2939
- "sha256:b28f0d5e2f771c1fe3c7a45d3f53916fc74a480698c4b5731f0bea61e52137c8",
2940
- "sha256:b3f8822defd260ae2460ea3832b24d37d203c3577f48b055590a426a722d50ef",
2941
- "sha256:c6707a32e03b791f4448dc0dce24b636cbcdee4dd5607adc24e5ee73fd86c00a",
2942
- "sha256:f49c9caa28d9bbfac4a637ae10327b3db00f47d038f3fbb2195c4d682e925b14"
2943
  ],
2944
  "markers": "sys_platform != 'emscripten'",
2945
- "version": "==0.6.7"
2946
  },
2947
  "semantic-version": {
2948
  "hashes": [
@@ -3251,11 +3467,11 @@
3251
  },
3252
  "uvicorn": {
3253
  "hashes": [
3254
- "sha256:4b15decdda1e72be08209e860a1e10e92439ad5b97cf44cc945fcbee66fc5788",
3255
- "sha256:65fd46fe3fda5bdc1b03b94eb634923ff18cd35b2f084813ea79d1f103f711b5"
3256
  ],
3257
  "markers": "sys_platform != 'emscripten'",
3258
- "version": "==0.30.6"
3259
  },
3260
  "wcwidth": {
3261
  "hashes": [
@@ -3374,101 +3590,101 @@
3374
  },
3375
  "yarl": {
3376
  "hashes": [
3377
- "sha256:0103c52f8dfe5d573c856322149ddcd6d28f51b4d4a3ee5c4b3c1b0a05c3d034",
3378
- "sha256:01549468858b87d36f967c97d02e6e54106f444aeb947ed76f8f71f85ed07cec",
3379
- "sha256:0274b1b7a9c9c32b7bf250583e673ff99fb9fccb389215841e2652d9982de740",
3380
- "sha256:0ac33d22b2604b020569a82d5f8a03ba637ba42cc1adf31f616af70baf81710b",
3381
- "sha256:0d0a5e87bc48d76dfcfc16295201e9812d5f33d55b4a0b7cad1025b92bf8b91b",
3382
- "sha256:10b690cd78cbaca2f96a7462f303fdd2b596d3978b49892e4b05a7567c591572",
3383
- "sha256:126309c0f52a2219b3d1048aca00766429a1346596b186d51d9fa5d2070b7b13",
3384
- "sha256:15871130439ad10abb25a4631120d60391aa762b85fcab971411e556247210a0",
3385
- "sha256:17d4dc4ff47893a06737b8788ed2ba2f5ac4e8bb40281c8603920f7d011d5bdd",
3386
- "sha256:18c2a7757561f05439c243f517dbbb174cadfae3a72dee4ae7c693f5b336570f",
3387
- "sha256:1d4017e78fb22bc797c089b746230ad78ecd3cdb215bc0bd61cb72b5867da57e",
3388
- "sha256:1f50a37aeeb5179d293465e522fd686080928c4d89e0ff215e1f963405ec4def",
3389
- "sha256:20d817c0893191b2ab0ba30b45b77761e8dfec30a029b7c7063055ca71157f84",
3390
- "sha256:22839d1d1eab9e4b427828a88a22beb86f67c14d8ff81175505f1cc8493f3500",
3391
- "sha256:22dda2799c8d39041d731e02bf7690f0ef34f1691d9ac9dfcb98dd1e94c8b058",
3392
- "sha256:2376d8cf506dffd0e5f2391025ae8675b09711016656590cb03b55894161fcfa",
3393
- "sha256:24197ba3114cc85ddd4091e19b2ddc62650f2e4a899e51b074dfd52d56cf8c72",
3394
- "sha256:24416bb5e221e29ddf8aac5b97e94e635ca2c5be44a1617ad6fe32556df44294",
3395
- "sha256:2631c9d7386bd2d4ce24ecc6ebf9ae90b3efd713d588d90504eaa77fec4dba01",
3396
- "sha256:28389a68981676bf74e2e199fe42f35d1aa27a9c98e3a03e6f58d2d3d054afe1",
3397
- "sha256:2aee7594d2c2221c717a8e394bbed4740029df4c0211ceb0f04815686e99c795",
3398
- "sha256:2e430ac432f969ef21770645743611c1618362309e3ad7cab45acd1ad1a540ff",
3399
- "sha256:2e912b282466444023610e4498e3795c10e7cfd641744524876239fcf01d538d",
3400
- "sha256:30ffc046ebddccb3c4cac72c1a3e1bc343492336f3ca86d24672e90ccc5e788a",
3401
- "sha256:319c206e83e46ec2421b25b300c8482b6fe8a018baca246be308c736d9dab267",
3402
- "sha256:326b8a079a9afcac0575971e56dabdf7abb2ea89a893e6949b77adfeb058b50e",
3403
- "sha256:36ee0115b9edca904153a66bb74a9ff1ce38caff015de94eadfb9ba8e6ecd317",
3404
- "sha256:3e26e64f42bce5ddf9002092b2c37b13071c2e6413d5c05f9fa9de58ed2f7749",
3405
- "sha256:4ea99e64b2ad2635e0f0597b63f5ea6c374791ff2fa81cdd4bad8ed9f047f56f",
3406
- "sha256:501a1576716032cc6d48c7c47bcdc42d682273415a8f2908e7e72cb4625801f3",
3407
- "sha256:54c8cee662b5f8c30ad7eedfc26123f845f007798e4ff1001d9528fe959fd23c",
3408
- "sha256:595bbcdbfc4a9c6989d7489dca8510cba053ff46b16c84ffd95ac8e90711d419",
3409
- "sha256:5b860055199aec8d6fe4dcee3c5196ce506ca198a50aab0059ffd26e8e815828",
3410
- "sha256:5c667b383529520b8dd6bd496fc318678320cb2a6062fdfe6d3618da6b8790f6",
3411
- "sha256:5fb475a4cdde582c9528bb412b98f899680492daaba318231e96f1a0a1bb0d53",
3412
- "sha256:607d12f0901f6419a8adceb139847c42c83864b85371f58270e42753f9780fa6",
3413
- "sha256:64c5b0f2b937fe40d0967516eee5504b23cb247b8b7ffeba7213a467d9646fdc",
3414
- "sha256:664380c7ed524a280b6a2d5d9126389c3e96cd6e88986cdb42ca72baa27421d6",
3415
- "sha256:6af871f70cfd5b528bd322c65793b5fd5659858cdfaa35fbe563fb99b667ed1f",
3416
- "sha256:6c89894cc6f6ddd993813e79244b36b215c14f65f9e4f1660b1f2ba9e5594b95",
3417
- "sha256:6dee0496d5f1a8f57f0f28a16f81a2033fc057a2cf9cd710742d11828f8c80e2",
3418
- "sha256:6e9a9f50892153bad5046c2a6df153224aa6f0573a5a8ab44fc54a1e886f6e21",
3419
- "sha256:712ba8722c0699daf186de089ddc4677651eb9875ed7447b2ad50697522cbdd9",
3420
- "sha256:717f185086bb9d817d4537dd18d5df5d657598cd00e6fc22e4d54d84de266c1d",
3421
- "sha256:71978ba778948760cff528235c951ea0ef7a4f9c84ac5a49975f8540f76c3f73",
3422
- "sha256:71af3766bb46738d12cc288d9b8de7ef6f79c31fd62757e2b8a505fe3680b27f",
3423
- "sha256:73a183042ae0918c82ce2df38c3db2409b0eeae88e3afdfc80fb67471a95b33b",
3424
- "sha256:7564525a4673fde53dee7d4c307a961c0951918f0b8c7f09b2c9e02067cf6504",
3425
- "sha256:76a59d1b63de859398bc7764c860a769499511463c1232155061fe0147f13e01",
3426
- "sha256:7e9905fc2dc1319e4c39837b906a024cf71b1261cc66b0cd89678f779c0c61f5",
3427
- "sha256:8112f640a4f7e7bf59f7cabf0d47a29b8977528c521d73a64d5cc9e99e48a174",
3428
- "sha256:835010cc17d0020e7931d39e487d72c8e01c98e669b6896a8b8c9aa8ca69a949",
3429
- "sha256:838dde2cb570cfbb4cab8a876a0974e8b90973ea40b3ac27a79b8a74c8a2db15",
3430
- "sha256:8d31dd0245d88cf7239e96e8f2a99f815b06e458a5854150f8e6f0e61618d41b",
3431
- "sha256:96b34830bd6825ca0220bf005ea99ac83eb9ce51301ddb882dcf613ae6cd95fb",
3432
- "sha256:96c8ff1e1dd680e38af0887927cab407a4e51d84a5f02ae3d6eb87233036c763",
3433
- "sha256:9a7ee79183f0b17dcede8b6723e7da2ded529cf159a878214be9a5d3098f5b1e",
3434
- "sha256:a3e2aff8b822ab0e0bdbed9f50494b3a35629c4b9488ae391659973a37a9f53f",
3435
- "sha256:a4f3ab9eb8ab2d585ece959c48d234f7b39ac0ca1954a34d8b8e58a52064bdb3",
3436
- "sha256:a8b54949267bd5704324397efe9fbb6aa306466dee067550964e994d309db5f1",
3437
- "sha256:a96198d5d26f40557d986c1253bfe0e02d18c9d9b93cf389daf1a3c9f7c755fa",
3438
- "sha256:aebbd47df77190ada603157f0b3670d578c110c31746ecc5875c394fdcc59a99",
3439
- "sha256:af1107299cef049ad00a93df4809517be432283a0847bcae48343ebe5ea340dc",
3440
- "sha256:b63465b53baeaf2122a337d4ab57d6bbdd09fcadceb17a974cfa8a0300ad9c67",
3441
- "sha256:ba1c779b45a399cc25f511c681016626f69e51e45b9d350d7581998722825af9",
3442
- "sha256:bce00f3b1f7f644faae89677ca68645ed5365f1c7f874fdd5ebf730a69640d38",
3443
- "sha256:bfdf419bf5d3644f94cd7052954fc233522f5a1b371fc0b00219ebd9c14d5798",
3444
- "sha256:c1caa5763d1770216596e0a71b5567f27aac28c95992110212c108ec74589a48",
3445
- "sha256:c3e4e1f7b08d1ec6b685ccd3e2d762219c550164fbf524498532e39f9413436e",
3446
- "sha256:c85ab016e96a975afbdb9d49ca90f3bca9920ef27c64300843fe91c3d59d8d20",
3447
- "sha256:c924deab8105f86980983eced740433fb7554a7f66db73991affa4eda99d5402",
3448
- "sha256:d4f818f6371970d6a5d1e42878389bbfb69dcde631e4bbac5ec1cb11158565ca",
3449
- "sha256:d920401941cb898ef089422e889759dd403309eb370d0e54f1bdf6ca07fef603",
3450
- "sha256:da045bd1147d12bd43fb032296640a7cc17a7f2eaba67495988362e99db24fd2",
3451
- "sha256:dc3192a81ecd5ff954cecd690327badd5a84d00b877e1573f7c9097ce13e5bfb",
3452
- "sha256:ddae504cfb556fe220efae65e35be63cd11e3c314b202723fc2119ce19f0ca2e",
3453
- "sha256:de4544b1fb29cf14870c4e2b8a897c0242449f5dcebd3e0366aa0aa3cf58a23a",
3454
- "sha256:dea360778e0668a7ad25d7727d03364de8a45bfd5d808f81253516b9f2217765",
3455
- "sha256:e2254fe137c4a360b0a13173a56444f756252c9283ba4d267ca8e9081cd140ea",
3456
- "sha256:e64f0421892a207d3780903085c1b04efeb53b16803b23d947de5a7261b71355",
3457
- "sha256:e97a29b37830ba1262d8dfd48ddb5b28ad4d3ebecc5d93a9c7591d98641ec737",
3458
- "sha256:eacbcf30efaca7dc5cb264228ffecdb95fdb1e715b1ec937c0ce6b734161e0c8",
3459
- "sha256:eee5ff934b0c9f4537ff9596169d56cab1890918004791a7a06b879b3ba2a7ef",
3460
- "sha256:eff6bac402719c14e17efe845d6b98593c56c843aca6def72080fbede755fd1f",
3461
- "sha256:f10954b233d4df5cc3137ffa5ced97f8894152df817e5d149bf05a0ef2ab8134",
3462
- "sha256:f23bb1a7a6e8e8b612a164fdd08e683bcc16c76f928d6dbb7bdbee2374fbfee6",
3463
- "sha256:f494c01b28645c431239863cb17af8b8d15b93b0d697a0320d5dd34cd9d7c2fa",
3464
- "sha256:f6a071d2c3d39b4104f94fc08ab349e9b19b951ad4b8e3b6d7ea92d6ef7ccaf8",
3465
- "sha256:f736f54565f8dd7e3ab664fef2bc461d7593a389a7f28d4904af8d55a91bd55f",
3466
- "sha256:f8981a94a27ac520a398302afb74ae2c0be1c3d2d215c75c582186a006c9e7b0",
3467
- "sha256:fd24996e12e1ba7c397c44be75ca299da14cde34d74bc5508cce233676cc68d0",
3468
- "sha256:ff54340fc1129e8e181827e2234af3ff659b4f17d9bbe77f43bc19e6577fadec"
3469
- ],
3470
- "markers": "python_version >= '3.8'",
3471
- "version": "==1.12.1"
3472
  }
3473
  },
3474
  "develop": {}
 
1
  {
2
  "_meta": {
3
  "hash": {
4
+ "sha256": "7e2ace76430fd0b8f93737daf0040979ad0aa7e763b75c9694e736a017af375e"
5
  },
6
  "pipfile-spec": 6,
7
  "requires": {
 
26
  },
27
  "aiohappyeyeballs": {
28
  "hashes": [
29
+ "sha256:75cf88a15106a5002a8eb1dab212525c00d1f4c0fa96e551c9fbe6f09a621586",
30
+ "sha256:8a7a83727b2756f394ab2895ea0765a0a8c475e3c71e98d43d76f22b4b435572"
31
  ],
32
  "markers": "python_version >= '3.8'",
33
+ "version": "==2.4.3"
34
  },
35
  "aiohttp": {
36
  "hashes": [
37
+ "sha256:10c7932337285a6bfa3a5fe1fd4da90b66ebfd9d0cbd1544402e1202eb9a8c3e",
38
+ "sha256:177126e971782769b34933e94fddd1089cef0fe6b82fee8a885e539f5b0f0c6a",
39
+ "sha256:1ce46dfb49cfbf9e92818be4b761d4042230b1f0e05ffec0aad15b3eb162b905",
40
+ "sha256:1e7a6af57091056a79a35104d6ec29d98ec7f1fb7270ad9c6fff871b678d1ff8",
41
+ "sha256:21a72f4a9c69a8567a0aca12042f12bba25d3139fd5dd8eeb9931f4d9e8599cd",
42
+ "sha256:21c1925541ca84f7b5e0df361c0a813a7d6a56d3b0030ebd4b220b8d232015f9",
43
+ "sha256:21f8225f7dc187018e8433c9326be01477fb2810721e048b33ac49091b19fb4a",
44
+ "sha256:22cdeb684d8552490dd2697a5138c4ecb46f844892df437aaf94f7eea99af879",
45
+ "sha256:270e653b5a4b557476a1ed40e6b6ce82f331aab669620d7c95c658ef976c9c5e",
46
+ "sha256:2df786c96c57cd6b87156ba4c5f166af7b88f3fc05f9d592252fdc83d8615a3c",
47
+ "sha256:32710d6b3b6c09c60c794d84ca887a3a2890131c0b02b3cefdcc6709a2260a7c",
48
+ "sha256:33a68011a38020ed4ff41ae0dbf4a96a202562ecf2024bdd8f65385f1d07f6ef",
49
+ "sha256:365783e1b7c40b59ed4ce2b5a7491bae48f41cd2c30d52647a5b1ee8604c68ad",
50
+ "sha256:3a95d2686bc4794d66bd8de654e41b5339fab542b2bca9238aa63ed5f4f2ce82",
51
+ "sha256:3b2036479b6b94afaaca7d07b8a68dc0e67b0caf5f6293bb6a5a1825f5923000",
52
+ "sha256:3c7f270f4ca92760f98a42c45a58674fff488e23b144ec80b1cc6fa2effed377",
53
+ "sha256:3f6d47e392c27206701565c8df4cac6ebed28fdf6dcaea5b1eea7a4631d8e6db",
54
+ "sha256:40d2d719c3c36a7a65ed26400e2b45b2d9ed7edf498f4df38b2ae130f25a0d01",
55
+ "sha256:4618f0d2bf523043866a9ff8458900d8eb0a6d4018f251dae98e5f1fb699f3a8",
56
+ "sha256:471a8c47344b9cc309558b3fcc469bd2c12b49322b4b31eb386c4a2b2d44e44a",
57
+ "sha256:4954e6b06dd0be97e1a5751fc606be1f9edbdc553c5d9b57d72406a8fbd17f9d",
58
+ "sha256:497a7d20caea8855c5429db3cdb829385467217d7feb86952a6107e033e031b9",
59
+ "sha256:4b91f4f62ad39a8a42d511d66269b46cb2fb7dea9564c21ab6c56a642d28bff5",
60
+ "sha256:4dbf252ac19860e0ab56cd480d2805498f47c5a2d04f5995d8d8a6effd04b48c",
61
+ "sha256:4e10b04542d27e21538e670156e88766543692a0a883f243ba8fad9ddea82e53",
62
+ "sha256:5284997e3d88d0dfb874c43e51ae8f4a6f4ca5b90dcf22995035187253d430db",
63
+ "sha256:57359785f27394a8bcab0da6dcd46706d087dfebf59a8d0ad2e64a4bc2f6f94f",
64
+ "sha256:597128cb7bc5f068181b49a732961f46cb89f85686206289d6ccb5e27cb5fbe2",
65
+ "sha256:5aa1a073514cf59c81ad49a4ed9b5d72b2433638cd53160fd2f3a9cfa94718db",
66
+ "sha256:680dbcff5adc7f696ccf8bf671d38366a1f620b5616a1d333d0cb33956065395",
67
+ "sha256:6984dda9d79064361ab58d03f6c1e793ea845c6cfa89ffe1a7b9bb400dfd56bd",
68
+ "sha256:69de056022e7abf69cb9fec795515973cc3eeaff51e3ea8d72a77aa933a91c52",
69
+ "sha256:6c7efa6616a95e3bd73b8a69691012d2ef1f95f9ea0189e42f338fae080c2fc6",
70
+ "sha256:6d1ad868624f6cea77341ef2877ad4e71f7116834a6cd7ec36ec5c32f94ee6ae",
71
+ "sha256:713dff3f87ceec3bde4f3f484861464e722cf7533f9fa6b824ec82bb5a9010a7",
72
+ "sha256:71462f8eeca477cbc0c9700a9464e3f75f59068aed5e9d4a521a103692da72dc",
73
+ "sha256:7c38cfd355fd86c39b2d54651bd6ed7d63d4fe3b5553f364bae3306e2445f847",
74
+ "sha256:8296edd99d0dd9d0eb8b9e25b3b3506eef55c1854e9cc230f0b3f885f680410b",
75
+ "sha256:85431c9131a9a0f65260dc7a65c800ca5eae78c4c9931618f18c8e0933a0e0c1",
76
+ "sha256:85e4d7bd05d18e4b348441e7584c681eff646e3bf38f68b2626807f3add21aa2",
77
+ "sha256:8885ca09d3a9317219c0831276bfe26984b17b2c37b7bf70dd478d17092a4772",
78
+ "sha256:8960fabc20bfe4fafb941067cda8e23c8c17c98c121aa31c7bf0cdab11b07842",
79
+ "sha256:9443d9ebc5167ce1fbb552faf2d666fb22ef5716a8750be67efd140a7733738c",
80
+ "sha256:9721554bfa9e15f6e462da304374c2f1baede3cb06008c36c47fa37ea32f1dc4",
81
+ "sha256:98a4eb60e27033dee9593814ca320ee8c199489fbc6b2699d0f710584db7feb7",
82
+ "sha256:98fae99d5c2146f254b7806001498e6f9ffb0e330de55a35e72feb7cb2fa399b",
83
+ "sha256:9a281cba03bdaa341c70b7551b2256a88d45eead149f48b75a96d41128c240b3",
84
+ "sha256:a087c84b4992160ffef7afd98ef24177c8bd4ad61c53607145a8377457385100",
85
+ "sha256:a1ba7bc139592339ddeb62c06486d0fa0f4ca61216e14137a40d626c81faf10c",
86
+ "sha256:a3081246bab4d419697ee45e555cef5cd1def7ac193dff6f50be761d2e44f194",
87
+ "sha256:a72f89aea712c619b2ca32c6f4335c77125ede27530ad9705f4f349357833695",
88
+ "sha256:a78ba86d5a08207d1d1ad10b97aed6ea48b374b3f6831d02d0b06545ac0f181e",
89
+ "sha256:a961ee6f2cdd1a2be4735333ab284691180d40bad48f97bb598841bfcbfb94ec",
90
+ "sha256:ab1546fc8e00676febc81c548a876c7bde32f881b8334b77f84719ab2c7d28dc",
91
+ "sha256:ab2d6523575fc98896c80f49ac99e849c0b0e69cc80bf864eed6af2ae728a52b",
92
+ "sha256:aff048793d05e1ce05b62e49dccf81fe52719a13f4861530706619506224992b",
93
+ "sha256:b1a012677b8e0a39e181e218de47d6741c5922202e3b0b65e412e2ce47c39337",
94
+ "sha256:b667e2a03407d79a76c618dc30cedebd48f082d85880d0c9c4ec2faa3e10f43e",
95
+ "sha256:b91557ee0893da52794b25660d4f57bb519bcad8b7df301acd3898f7197c5d81",
96
+ "sha256:badb51d851358cd7535b647bb67af4854b64f3c85f0d089c737f75504d5910ec",
97
+ "sha256:c36074b26f3263879ba8e4dbd33db2b79874a3392f403a70b772701363148b9f",
98
+ "sha256:c4916070e12ae140110aa598031876c1bf8676a36a750716ea0aa5bd694aa2e7",
99
+ "sha256:c6769d71bfb1ed60321363a9bc05e94dcf05e38295ef41d46ac08919e5b00d19",
100
+ "sha256:c887019dbcb4af58a091a45ccf376fffe800b5531b45c1efccda4bedf87747ea",
101
+ "sha256:cd9716ef0224fe0d0336997eb242f40619f9f8c5c57e66b525a1ebf9f1d8cebe",
102
+ "sha256:ceacea31f8a55cdba02bc72c93eb2e1b77160e91f8abd605969c168502fd71eb",
103
+ "sha256:d088ca05381fd409793571d8e34eca06daf41c8c50a05aeed358d2d340c7af81",
104
+ "sha256:d3a79200a9d5e621c4623081ddb25380b713c8cf5233cd11c1aabad990bb9381",
105
+ "sha256:d82404a0e7b10e0d7f022cf44031b78af8a4f99bd01561ac68f7c24772fed021",
106
+ "sha256:d95ae4420669c871667aad92ba8cce6251d61d79c1a38504621094143f94a8b4",
107
+ "sha256:da57af0c54a302b7c655fa1ccd5b1817a53739afa39924ef1816e7b7c8a07ccb",
108
+ "sha256:ddb9b9764cfb4459acf01c02d2a59d3e5066b06a846a364fd1749aa168efa2be",
109
+ "sha256:de23085cf90911600ace512e909114385026b16324fa203cc74c81f21fd3276a",
110
+ "sha256:e1f0f7b27171b2956a27bd8f899751d0866ddabdd05cbddf3520f945130a908c",
111
+ "sha256:e32148b4a745e70a255a1d44b5664de1f2e24fcefb98a75b60c83b9e260ddb5b",
112
+ "sha256:e45fdfcb2d5bcad83373e4808825b7512953146d147488114575780640665027",
113
+ "sha256:e56bb7e31c4bc79956b866163170bc89fd619e0581ce813330d4ea46921a4881",
114
+ "sha256:e860985f30f3a015979e63e7ba1a391526cdac1b22b7b332579df7867848e255",
115
+ "sha256:ee3587506898d4a404b33bd19689286ccf226c3d44d7a73670c8498cd688e42c",
116
+ "sha256:ee97c4e54f457c366e1f76fbbf3e8effee9de57dae671084a161c00f481106ce",
117
+ "sha256:ef9b484604af05ca745b6108ca1aaa22ae1919037ae4f93aaf9a37ba42e0b835",
118
+ "sha256:f21e8f2abed9a44afc3d15bba22e0dfc71e5fa859bea916e42354c16102b036f",
119
+ "sha256:f23a6c1d09de5de89a33c9e9b229106cb70dcfdd55e81a3a3580eaadaa32bc92",
120
+ "sha256:f5d5d5401744dda50b943d8764508d0e60cc2d3305ac1e6420935861a9d544bc",
121
+ "sha256:f78e2a78432c537ae876a93013b7bc0027ba5b93ad7b3463624c4b6906489332",
122
+ "sha256:f8179855a4e4f3b931cb1764ec87673d3fbdcca2af496c8d30567d7b034a13db",
123
+ "sha256:fc0e7f91705445d79beafba9bb3057dd50830e40fe5417017a76a214af54e122",
124
+ "sha256:fe285a697c851734285369614443451462ce78aac2b77db23567507484b1dc6f",
125
+ "sha256:fe3d79d6af839ffa46fdc5d2cf34295390894471e9875050eafa584cb781508d",
126
+ "sha256:fecd55e7418fabd297fd836e65cbd6371aa4035a264998a091bbf13f94d9c44d",
127
+ "sha256:ffef3d763e4c8fc97e740da5b4d0f080b78630a3914f4e772a122bbfa608c1db"
128
+ ],
129
+ "markers": "python_version >= '3.8'",
130
+ "version": "==3.10.8"
131
  },
132
  "aiosignal": {
133
  "hashes": [
 
790
  "markers": "python_version >= '3.8'",
791
  "version": "==2024.9.0"
792
  },
793
+ "fuzzywuzzy": {
794
+ "hashes": [
795
+ "sha256:45016e92264780e58972dca1b3d939ac864b78437422beecebb3095f8efd00e8",
796
+ "sha256:928244b28db720d1e0ee7587acf660ea49d7e4c632569cad4f1cd7e68a5f0993"
797
+ ],
798
+ "index": "pypi",
799
+ "version": "==0.18.0"
800
+ },
801
  "gitdb": {
802
  "hashes": [
803
  "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4",
 
816
  },
817
  "gradio": {
818
  "hashes": [
819
+ "sha256:a68a52498ac6b63f8864ef84bf7866a70e7d07ebe913edf921e1d2a3708ad5ae",
820
+ "sha256:c908850c638e4a176b22f95a758ce6a63ffbc2a7a5a74b23186ceeeedc23f4d9"
821
  ],
822
  "index": "pypi",
823
  "markers": "python_version >= '3.8'",
824
+ "version": "==4.44.1"
825
  },
826
  "gradio-client": {
827
  "hashes": [
 
912
  },
913
  "grpcio": {
914
  "hashes": [
915
+ "sha256:02697eb4a5cbe5a9639f57323b4c37bcb3ab2d48cec5da3dc2f13334d72790dd",
916
+ "sha256:03b0b307ba26fae695e067b94cbb014e27390f8bc5ac7a3a39b7723fed085604",
917
+ "sha256:05bc2ceadc2529ab0b227b1310d249d95d9001cd106aa4d31e8871ad3c428d73",
918
+ "sha256:06de8ec0bd71be123eec15b0e0d457474931c2c407869b6c349bd9bed4adbac3",
919
+ "sha256:0be4e0490c28da5377283861bed2941d1d20ec017ca397a5df4394d1c31a9b50",
920
+ "sha256:12fda97ffae55e6526825daf25ad0fa37483685952b5d0f910d6405c87e3adb6",
921
+ "sha256:1caa38fb22a8578ab8393da99d4b8641e3a80abc8fd52646f1ecc92bcb8dee34",
922
+ "sha256:2018b053aa15782db2541ca01a7edb56a0bf18c77efed975392583725974b249",
923
+ "sha256:20657d6b8cfed7db5e11b62ff7dfe2e12064ea78e93f1434d61888834bc86d75",
924
+ "sha256:2335c58560a9e92ac58ff2bc5649952f9b37d0735608242973c7a8b94a6437d8",
925
+ "sha256:31fd163105464797a72d901a06472860845ac157389e10f12631025b3e4d0453",
926
+ "sha256:38b68498ff579a3b1ee8f93a05eb48dc2595795f2f62716e797dc24774c1aaa8",
927
+ "sha256:3b00efc473b20d8bf83e0e1ae661b98951ca56111feb9b9611df8efc4fe5d55d",
928
+ "sha256:3ed71e81782966ffead60268bbda31ea3f725ebf8aa73634d5dda44f2cf3fb9c",
929
+ "sha256:45a3d462826f4868b442a6b8fdbe8b87b45eb4f5b5308168c156b21eca43f61c",
930
+ "sha256:49f0ca7ae850f59f828a723a9064cadbed90f1ece179d375966546499b8a2c9c",
931
+ "sha256:4e504572433f4e72b12394977679161d495c4c9581ba34a88d843eaf0f2fbd39",
932
+ "sha256:4ea1d062c9230278793820146c95d038dc0f468cbdd172eec3363e42ff1c7d01",
933
+ "sha256:563588c587b75c34b928bc428548e5b00ea38c46972181a4d8b75ba7e3f24231",
934
+ "sha256:6001e575b8bbd89eee11960bb640b6da6ae110cf08113a075f1e2051cc596cae",
935
+ "sha256:66a0cd8ba6512b401d7ed46bb03f4ee455839957f28b8d61e7708056a806ba6a",
936
+ "sha256:6851de821249340bdb100df5eacfecfc4e6075fa85c6df7ee0eb213170ec8e5d",
937
+ "sha256:728bdf36a186e7f51da73be7f8d09457a03061be848718d0edf000e709418987",
938
+ "sha256:73e3b425c1e155730273f73e419de3074aa5c5e936771ee0e4af0814631fb30a",
939
+ "sha256:73fc8f8b9b5c4a03e802b3cd0c18b2b06b410d3c1dcbef989fdeb943bd44aff7",
940
+ "sha256:78fa51ebc2d9242c0fc5db0feecc57a9943303b46664ad89921f5079e2e4ada7",
941
+ "sha256:7b2c86457145ce14c38e5bf6bdc19ef88e66c5fee2c3d83285c5aef026ba93b3",
942
+ "sha256:7d69ce1f324dc2d71e40c9261d3fdbe7d4c9d60f332069ff9b2a4d8a257c7b2b",
943
+ "sha256:802d84fd3d50614170649853d121baaaa305de7b65b3e01759247e768d691ddf",
944
+ "sha256:80fd702ba7e432994df208f27514280b4b5c6843e12a48759c9255679ad38db8",
945
+ "sha256:8ac475e8da31484efa25abb774674d837b343afb78bb3bcdef10f81a93e3d6bf",
946
+ "sha256:950da58d7d80abd0ea68757769c9db0a95b31163e53e5bb60438d263f4bed7b7",
947
+ "sha256:99a641995a6bc4287a6315989ee591ff58507aa1cbe4c2e70d88411c4dcc0839",
948
+ "sha256:9c3a99c519f4638e700e9e3f83952e27e2ea10873eecd7935823dab0c1c9250e",
949
+ "sha256:9c509a4f78114cbc5f0740eb3d7a74985fd2eff022971bc9bc31f8bc93e66a3b",
950
+ "sha256:a18e20d8321c6400185b4263e27982488cb5cdd62da69147087a76a24ef4e7e3",
951
+ "sha256:a917d26e0fe980b0ac7bfcc1a3c4ad6a9a4612c911d33efb55ed7833c749b0ee",
952
+ "sha256:a9539f01cb04950fd4b5ab458e64a15f84c2acc273670072abe49a3f29bbad54",
953
+ "sha256:ad2efdbe90c73b0434cbe64ed372e12414ad03c06262279b104a029d1889d13e",
954
+ "sha256:b672abf90a964bfde2d0ecbce30f2329a47498ba75ce6f4da35a2f4532b7acbc",
955
+ "sha256:bbd27c24a4cc5e195a7f56cfd9312e366d5d61b86e36d46bbe538457ea6eb8dd",
956
+ "sha256:c400ba5675b67025c8a9f48aa846f12a39cf0c44df5cd060e23fda5b30e9359d",
957
+ "sha256:c408f5ef75cfffa113cacd8b0c0e3611cbfd47701ca3cdc090594109b9fcbaed",
958
+ "sha256:c806852deaedee9ce8280fe98955c9103f62912a5b2d5ee7e3eaa284a6d8d8e7",
959
+ "sha256:ce89f5876662f146d4c1f695dda29d4433a5d01c8681fbd2539afff535da14d4",
960
+ "sha256:d25a14af966438cddf498b2e338f88d1c9706f3493b1d73b93f695c99c5f0e2a",
961
+ "sha256:d8d4732cc5052e92cea2f78b233c2e2a52998ac40cd651f40e398893ad0d06ec",
962
+ "sha256:d9a9724a156c8ec6a379869b23ba3323b7ea3600851c91489b871e375f710bc8",
963
+ "sha256:e636ce23273683b00410f1971d209bf3689238cf5538d960adc3cdfe80dd0dbd",
964
+ "sha256:e88264caad6d8d00e7913996030bac8ad5f26b7411495848cc218bd3a9040b6c",
965
+ "sha256:f145cc21836c332c67baa6fc81099d1d27e266401565bf481948010d6ea32d46",
966
+ "sha256:fb57870449dfcfac428afbb5a877829fcb0d6db9d9baa1148705739e9083880e",
967
+ "sha256:fb70487c95786e345af5e854ffec8cb8cc781bcc5df7930c4fbb7feaa72e1cdf",
968
+ "sha256:fe96281713168a3270878255983d2cb1a97e034325c8c2c25169a69289d3ecfa",
969
+ "sha256:ff1f7882e56c40b0d33c4922c15dfa30612f05fb785074a012f7cda74d1c3679"
970
+ ],
971
+ "markers": "python_version >= '3.8'",
972
+ "version": "==1.66.2"
973
  },
974
  "grpcio-tools": {
975
  "hashes": [
976
+ "sha256:007750b4db62018e441f8401fa567aa11174ae0173826cbbe54982fdf2383067",
977
+ "sha256:0933420362621d8792fea9350f0c82c514da5f93888d1476c37d9e3722d260b0",
978
+ "sha256:0a465850c7e5c4ab588c7b7275d47781e9c0ee397a8faf4977262592f95e1831",
979
+ "sha256:0cad9ffe5df7801201773b91f14923cf3e20ca764e418ae7f8cb75f6045a0aa1",
980
+ "sha256:0dc16f9e6baafed315846e79a746513863e6ecbb89e9c98d872834e44f9e87a5",
981
+ "sha256:0eaedd3c77824c3762b728c485f91097a58116fa135f3bbc24703621476cd866",
982
+ "sha256:18554bc91640b2f1ce18aa5c6bebd51500ca0b43b5df4e700e6f76522e2b0e94",
983
+ "sha256:1b3cf9ae67f8bb431ab3ff60db75c3586dc5aa993be4b15bd7cad651362563cd",
984
+ "sha256:1bc41d5b36d414bb0940aa50e30d624903a2538f9387ae730953675adcbe1498",
985
+ "sha256:1d5e22b2c7f5b453462c85aa66f99961d5c7b275d1c60b84fe847c06c73c9400",
986
+ "sha256:2a9a376b300aa2b4da8e6c4f6f746e824d3f24eefeac2753ffffe2b9f37d156d",
987
+ "sha256:3655c96eef8aac2a610bbf4cb9c7839fcff09f07a609b74408b3b0a136e1ef57",
988
+ "sha256:3fe2fc2e4a16d745cae01e1348b401378e58ced920ff759a6b4b85a7ad507896",
989
+ "sha256:40b7ad804ff78490408177cfe87427d5a67224f82a2bdfabe9d8d6ac6239733b",
990
+ "sha256:48997b704d2fcf59d922228c7a79fcd35d52ca8b2202e5cfe193962643b8354f",
991
+ "sha256:4a36e07913d26ba5ccfd2685ba63ca97f26b08c249d2cc9e74dda37efa49d7e4",
992
+ "sha256:4b16244be4cff92408eb82901b883a70f3dd902fb7c7f66e2a368271be84cde4",
993
+ "sha256:538eb263b9969e866619775df341307ece0b09afce091ede8141c5bb4d7d8933",
994
+ "sha256:5a5146e780ed87348d84b11fc3843741e676b2a84d493363bf0b4ae31c56841b",
995
+ "sha256:5daf9807260e172ffcc5dd582c01f60bac820f99f0151a507c8a537f9e6dceb8",
996
+ "sha256:5fd20110d2c7706dfdd95457807acb8c050253be2e272b9f5fb977e87ea44d86",
997
+ "sha256:6cc3da6994d575c425c74ce33e34b86a975ea7e78bb9c3525e8439a3af3c508f",
998
+ "sha256:75c6a25a5cf729c4606c388013cf7c59dda99cf3718c24fe4fd52b06c19955d0",
999
+ "sha256:7afd9eb9be413a731cff7ad638081795a7ed0fec4b23af5cec2099fbd9d742f9",
1000
+ "sha256:7e8c9aa91a9e51199048202e3c54491e0a89fb3ac47dde36ff2964fbcee143a3",
1001
+ "sha256:80c233215cf0f08353b7aac4e86cdedf4d545ed368a7491ccc9996e5a317dce4",
1002
+ "sha256:86d971fc64e63642058ac01ce2e484a8340d60a95ead0dc6697ef2aa18a7b936",
1003
+ "sha256:89e437ced43275e7427cc82a837f5cd43ebe18a1080b0e50a47627895b44b0e6",
1004
+ "sha256:99638043e1a78b8617f31b676f1ecf248d75a45b318776af3acc48a85c8e10a2",
1005
+ "sha256:9a68c71bb1358f0994fc7d0f0d70a0d419d57507faa25c982145be401f6aca48",
1006
+ "sha256:a14007902fb6565c21815da4177105ec905ef37f0550190c4d1bbeb2928c6560",
1007
+ "sha256:a15a4d0f4eba3773dabe07113b42e018a8fa9a28441483ada111991d5c1468b6",
1008
+ "sha256:a2810921218471aab5c8cd20204d3b1886aa8e13b495e882158bb398982cf18e",
1009
+ "sha256:a425b2600ad4fcf887107ee975a9b7c20478c2959c58b12af7f36577d7a7f7b3",
1010
+ "sha256:a886fa2ff9e897b35489557d1c61cbc0e4efc42c4dc0d120a9516f294fefb107",
1011
+ "sha256:ab4eda584ba2e647e9bb5098f5e4e8d370a333761bf33924e9a7c14f069c8b08",
1012
+ "sha256:b2c19e5a888a6ee48ba699581a90c04806b2a93f574f37449c359ec17a793669",
1013
+ "sha256:b4896a0853fc402273e908c0a0710d25242f1ae907efb9d22ba6d82d4ba00ad8",
1014
+ "sha256:ba63dbcbb8ade67e5a04dd3a6c5860efb454bda6d5e8558b17c9a7251339ce36",
1015
+ "sha256:c14db004b28ee2adefc6d36107d7fdf770f7509bd1f1ecd195eecb88cdbe5d96",
1016
+ "sha256:c42ba1b24e701544bf08a43bb2d63d56dedd0fd33a5b499c9cf85e15aa154b13",
1017
+ "sha256:c43dcd3ee13418545ea10416f46296ddbc7fb355cf136ddebd3b3f881a383168",
1018
+ "sha256:c4df0f547f4193dfa6689949b374974f08d81f129174738f0410ba8d45dc63be",
1019
+ "sha256:c65f12474634195ff5ed91b304412b80008c067d28226c26b4e451ea9da16b24",
1020
+ "sha256:c68642829368f4f83929e0df571dbbc99f1f1553555d8f98d0582da9f6743d9e",
1021
+ "sha256:cc4f65cd189832676dca16046a4b6247d0bc1fc20648d16ac7fb0b075d1658f4",
1022
+ "sha256:d31aad10f90fccb0073bc03b4d1b67690ef4f0cd9af96e82944b9cc655d12b6f",
1023
+ "sha256:d3aef5abd34bea8ea98448cd58a938992238c4717df93d12f84fa5f56efb11d0",
1024
+ "sha256:d872ba3bbe9e15b43eeb9310dad5edbf490bb3ab0072a46b3a12fed0234eec23",
1025
+ "sha256:d8ca76fc40a7d35ddf1229afd04408e2ff94caf4385068c8b147e064e951e0ba",
1026
+ "sha256:d8f976f35683e49467d0bf2b90c170ac5443cd162d48d8d868801fd0d87a5fa8",
1027
+ "sha256:d95f030e708266d7fd6d3e5d56e30a9bbbe230604856b1fe93edd892e4389aab",
1028
+ "sha256:df8f098bb92d192230f3b23df514b139f3549e2a4390d1f0f0d8ff89de458c54",
1029
+ "sha256:ef979af76b0cd3f5235d3ec30e86a4f0acc0eab179e796ddbb481aa351a1e6ca",
1030
+ "sha256:fd1fa95188ae7d5460a8c4a2abcb2777fdf9c3b80d592a2e8434c52a6eb48e8d"
1031
+ ],
1032
+ "markers": "python_version >= '3.8'",
1033
+ "version": "==1.66.2"
1034
  },
1035
  "h11": {
1036
  "hashes": [
 
1482
  },
1483
  "langchain": {
1484
  "hashes": [
1485
+ "sha256:54d6e3abda2ec056875a231a418a4130ba7576e629e899067e499bfc847b7586",
1486
+ "sha256:94e5ee7464d4366e4b158aa5704953c39701ea237b9ed4b200096d49e83bb3ae"
1487
  ],
1488
  "index": "pypi",
1489
  "markers": "python_version >= '3.9' and python_version < '4.0'",
1490
+ "version": "==0.3.1"
1491
  },
1492
  "langchain-core": {
1493
  "hashes": [
1494
+ "sha256:9f877c00fec7fe1dca929dd3bed3999ee4c2e5c14c6744ed82cc66ddfcd15fdf",
1495
+ "sha256:a789875358001ca9293875c12f0b6238855325621ab66775109497b9b1648157"
1496
  ],
1497
  "markers": "python_version >= '3.9' and python_version < '4.0'",
1498
+ "version": "==0.3.7"
1499
  },
1500
  "langchain-openai": {
1501
  "hashes": [
1502
+ "sha256:215efa4526c88f8105f002b43b7cbf98cebd9baeb4f62c3b58faebdb578715bc",
1503
+ "sha256:a131ea18736f1a8792925391b91a8c8bd834431ffc2055c92ba49f59c3dcaaf0"
1504
  ],
1505
  "index": "pypi",
1506
  "markers": "python_version >= '3.9' and python_version < '4.0'",
1507
+ "version": "==0.2.1"
1508
  },
1509
  "langchain-qdrant": {
1510
  "hashes": [
 
1525
  },
1526
  "langgraph": {
1527
  "hashes": [
1528
+ "sha256:78759ebd8abcabb1894cf64e07d221a11b970e77553a4f89e1134c3602958341",
1529
+ "sha256:9e5b4138aae95bfbd928b6f0f2869431060c80d7a62fc831370cf2aed3a488e8"
1530
  ],
1531
  "index": "pypi",
1532
  "markers": "python_version < '4.0' and python_full_version >= '3.9.0'",
1533
+ "version": "==0.2.31"
1534
  },
1535
  "langgraph-checkpoint": {
1536
  "hashes": [
1537
+ "sha256:5c51f8d8cca4c0ed3e75c264a7bf66a2efa60ff521ed46f05facf606df424eb1",
1538
+ "sha256:a60cbf06011a5f9c9bfcde971684732acd5df39632c58ff45f02f814519e9d8c"
1539
  ],
1540
  "markers": "python_full_version >= '3.9.0' and python_full_version < '4.0.0'",
1541
+ "version": "==1.0.14"
1542
  },
1543
  "langsmith": {
1544
  "hashes": [
1545
+ "sha256:31393fbbb17d6be5b99b9b22d530450094fab23c6c37281a6a6efb2143d05347",
1546
+ "sha256:6c3ba66471bef41b9f87da247cc0b493268b3f54656f73648a256a205261b6a0"
1547
  ],
1548
  "markers": "python_version < '4.0' and python_full_version >= '3.8.1'",
1549
+ "version": "==0.1.129"
1550
+ },
1551
+ "levenshtein": {
1552
+ "hashes": [
1553
+ "sha256:0560746b2c40cdd25458cb4a065e4d7ffbb245783638f5b0173cfd135f9d6664",
1554
+ "sha256:0576b0e817904adc621077761e71c97555ae9e698e712b0bdbe868464444200b",
1555
+ "sha256:07ffd78569ca80adfd55172156faac35eb12ccd375d6d51ba4512b0346337cbf",
1556
+ "sha256:0afb8bd5bc2d686d34ed721399d78359d104c7483a740b262fd260357599e318",
1557
+ "sha256:0c06ddb9149ee0f25ba334ad04ee3f782be3e64ab4bf8b9f34d6e4bf19a22880",
1558
+ "sha256:14c96604ce1228922094ea266d9927227ab129e939b3e5dd84fee07390b72b5f",
1559
+ "sha256:16a3f4d0bcdbd0d14e0c49844a2ac02d8acece9f6cce41ea437c1d07ac536ec1",
1560
+ "sha256:17c9e1d7bbde972c09e2c6578392ff0668697db8f815649594b984ed2b0b2843",
1561
+ "sha256:1bf886afed2304e0022c33ed644afb719411cce4d4af11ba5bb040f05d9f00c1",
1562
+ "sha256:2150961cff9cfcfd4b5e4c1a5c90b2d4520a7d9cb65cd070cda5601b7f099496",
1563
+ "sha256:22c40516cc830aeeb18b09bd96ec32378b7e52e201d67e86dfb7f6a2e3bf3b3d",
1564
+ "sha256:247767593ede88f3ddbd4f948ed30817cb751e25a335b35ec2332752021e4e10",
1565
+ "sha256:2b3aa9a0b844ddaeb6f5317eb4e85b5748901cf40c9a9b0d3a8bf76ef9d3cccc",
1566
+ "sha256:3baa2c8ebc1f3b773ffb010e03e7319098323618f919c5db2c7188e439d13602",
1567
+ "sha256:3cc288a6ab97a3ccd980d8a0465378b99eb53e32232f99279092a97578c4b2e9",
1568
+ "sha256:3e265812db8b04e6ae159751c7a82d6e0e5025223bd330fc9104a8a5beeeb7cf",
1569
+ "sha256:3e8e373586026d71ec2053300ef46c5268fe41a29d9f58a724487e3f060502db",
1570
+ "sha256:47a4d8c58114c2b9a4318dcb8e2a0dc8446ec3ec637b051f3dbe27555786f603",
1571
+ "sha256:4931c8263e06edbece310b1f8e03bfcb74f211863a85058b46cdf8460a4136af",
1572
+ "sha256:4a0ed02c8aaef0903b72fe0da88d9d24d7964b07dbc123997e549ac165efad8d",
1573
+ "sha256:4ecf7d755304d2ffab2ee808100f5e87889347b572c61c97d9f4f9a318806713",
1574
+ "sha256:52a7407416723cd7163238b16b7c0eba4b30bc53f549e803e654f1df6824e0b5",
1575
+ "sha256:54200110ba27c20cb2e3bc48cf855d7d910c6704a47caefe97ced8c59ee075b4",
1576
+ "sha256:588094f406d5cb01dbf74201f8b4fe345d2b92a789997eb5371dad754f831d5b",
1577
+ "sha256:5cefa552c5190e912f0fe39b62a5b08597d1256f330ed2c459ba724947458282",
1578
+ "sha256:6170cbbec2ffc3df86adf2f457f83a22df99b6c4e2b21c76bc9a67b23c2940d1",
1579
+ "sha256:64bfad7270c2fc0f872f6ca2e26cc091efebfb64b7b1ae156123c2304fbcbae4",
1580
+ "sha256:651b011617937d18f671450c8294d11b5b556b09e33ac038b923ae6496e35d31",
1581
+ "sha256:68a165bd91dab44c2b91c8278e3728f0da98cb48b1ed7f263bfdf616efcf4932",
1582
+ "sha256:71a3afbfc7d97fd536f128084a20c2a79b5d79995c7111eced1baf4d103ea6d4",
1583
+ "sha256:7211e700ddca453efe49bdce57c84073451667873d80037c73c1f55840d08e70",
1584
+ "sha256:754669e9b82795cfc3ca0d70f2e715b58ff4d0f7e7f4e77fc6539543439ae22c",
1585
+ "sha256:75e2567bf64e422843d0f67917938c0235a9292b395076dd5f8bbb731d1c3058",
1586
+ "sha256:770dc2973c9c76598d68b736319c2b2b6fad1f88837119a92e9124ff2167cc49",
1587
+ "sha256:77422c5da5cfd8455a8835329d965e24250b0f0c1398e0a6362879f00d18f27c",
1588
+ "sha256:7aabafb951b96ca6e0f981b1edb3ec81b41c010b7437758e275393768fa84453",
1589
+ "sha256:7acff8e4335f18bb5b60cbd310957cf46c964f0b5bc1cc82fe6647c45309b9f8",
1590
+ "sha256:7ce82de94989df4367ff38de2c4193bf0ea77b4e207ae60e98876922007a0f81",
1591
+ "sha256:8104cb5642277439c07091c160ad3b1c3d20c160db8dbf5306871f065721e5e8",
1592
+ "sha256:830b1993e3e945b213a6b73ceca8b555147a6ecd7323e4959b80dee35abfc7fc",
1593
+ "sha256:88f051a0a4eec22cd8071634d5a2ee40d9810080e3b6d1e61e4fbe2a7a7ece3d",
1594
+ "sha256:8a9949dd238e8c1bd27669a1bf66a5507eed2fd486130b30b2df44cc4f238a3c",
1595
+ "sha256:8c58cb6c9f90f9b11d6b478e2da6ac1f0bcb5ea9608a5611088d30f782ee5920",
1596
+ "sha256:912fe5a3bcc970ab4b97e7e83ea118cf9a98831813535efa0f499b0b4df032dd",
1597
+ "sha256:9238be73beff55e2b285ac393573274e55233e7270cb6484fa4550b775016705",
1598
+ "sha256:93a949fabc6280ab44a6252d780577715e8e71a63a295c4730ce5490006ae1f5",
1599
+ "sha256:960b020d96bbd348400d6ff5c16290adee49f0ae2d42707a550a3b4f7d092abe",
1600
+ "sha256:968731244a7d56354c912c054e7b6ea33c3700632ef7cab1c895b3110e86dc7b",
1601
+ "sha256:a01150b33505596be83bff9f6f06f53bc1a14fd5e36e840dc134822c6ba20e00",
1602
+ "sha256:a30d30485eec8a2efe72d639fb9c33f0991416a6ddb490d6f0eef01c9dc79b7a",
1603
+ "sha256:a492bd9e0075ed5f748ac000ffff581d7652f6cb2cf1d9ec9de3d12270dfc225",
1604
+ "sha256:a541040a01333994e5a037cb4e2c2b0e2496a2141facf63bbc9b359fe9f5b1dd",
1605
+ "sha256:a68f863bef8a5301bc7ca4b99f2f8d666b5edcd30dca6234ee6cd541ca8a8f4e",
1606
+ "sha256:abc4618610ec6fff1c894fc931bc8b57c6d1ad7b8b9acafa685e19a84f521f8b",
1607
+ "sha256:ad6da19613e53c288bd130fadb91937b0ba849013065ddd377568cdd90611caa",
1608
+ "sha256:baf0c8c09d5c55f136b62e201886c4b93b4abbdbde0475f67dd8fc278bb403f7",
1609
+ "sha256:bcbd4403c630755a5f898e6905975c1a8bb2c71a756d399f93811f82b5c0b1b3",
1610
+ "sha256:bf2561d9077367aa01f3c6caf6132cec84b2b9a481f64f14f35f9e976a353605",
1611
+ "sha256:c2d3f8cf45deeb6d0faa9df089c0e36e457236fc66aa31e67d3e7c15336e8401",
1612
+ "sha256:c311554a220a12110d2640ee245d74f07b25cdc0acc04c625ab2bdf708f3bf84",
1613
+ "sha256:c49a20ddb119ab2d56e7e4d62e43602dff8c397718be4f00474723b40d626a7f",
1614
+ "sha256:c532571fabd8a23fa12971f432cd17ababa031dee6efbaa8fa31380876593a3e",
1615
+ "sha256:c5d21d3b08ceb7e544fae04897e211e43fb3500c9b3a8e74d08468b015c7270d",
1616
+ "sha256:c68b6e6c74ce9056370559196177b9e514ba20611a1ce9545dcd366d8a97cc60",
1617
+ "sha256:c95201c7425cdff12ed16ff0a15af52c46477935e7589d1dc6ebd24f416c9ed8",
1618
+ "sha256:ca2735baf43fb540be7d3cf24eb2fc97a395e9e85ec8fae64199f3b2ccbf5c5c",
1619
+ "sha256:cbd4775e0e88e209cbb4f722d39d057531138dafbd07e36c4b33eb18e29494ef",
1620
+ "sha256:d0fa54bd453b8b347139b4ef940d717939c6a8966fdbcde2cf8d70316497e292",
1621
+ "sha256:d526636efb6e727dce5f67eb3437079f1d5d71dd2c0a2b6f48a62791a789764e",
1622
+ "sha256:d9c8ac0f4ae2de173b6ccc3d0b379d1aa4212f653badc324fb5aa868e304e847",
1623
+ "sha256:dafc593a6e346fec5520f5dec9d87f4894aa9d584ccad43ce9fdcc363d9e9c34",
1624
+ "sha256:de7727a57d1241f8c2d53a9f70642f48891514789bbd4daa0f90547b4e0bf70f",
1625
+ "sha256:e40e9a2c6482f6cce9046693844b33c492f35e57c849a0e104b03234ef3a31f6",
1626
+ "sha256:e5fb23bf35ef1094d00415bb2116dd862fb919adc4044436508029dafedfd687",
1627
+ "sha256:e8a34d41c7b392df98fce7c8353ea87cbbbf39239db141096ded00f4e1e75e6e",
1628
+ "sha256:ea97df5fecf4195ed24aa4c245e5b6cf42527a5818bd7d0d92ba8c7425828861",
1629
+ "sha256:eb13782c15c2c0f5a74e920a9c9c26da5730830c13809bcb7a32876f1a4fb643",
1630
+ "sha256:ed1c1354f0f1e4736c2fb6f91e3913b63e38c8873a228a299f656bdaf788e1eb",
1631
+ "sha256:f88d05187622366b529b25b130a8fad6497d7b6189e82198ce67d3921c3e418c",
1632
+ "sha256:fd953f8952c825c5d7112e9d64136afc8c7c122b9facc3ec4f9f87591a85e6d1",
1633
+ "sha256:fe230c754f628f6d266b8d970f8556775fb0a9c05027f807754312af7927b2ed"
1634
+ ],
1635
+ "markers": "python_version >= '3.9'",
1636
+ "version": "==0.26.0"
1637
  },
1638
  "markdown-it-py": {
1639
  "hashes": [
 
1949
  },
1950
  "narwhals": {
1951
  "hashes": [
1952
+ "sha256:914cde513487341fe1e3b8cb09d3b79083530141c570e45d42150796b8d87a01",
1953
+ "sha256:bfd8ab5abb87cfeca9cc72af4af47bf9d73a2f0fda97cffa2223a535bc65b5e5"
1954
  ],
1955
  "markers": "python_version >= '3.8'",
1956
+ "version": "==1.9.0"
1957
  },
1958
  "nbclient": {
1959
  "hashes": [
 
2048
  },
2049
  "openai": {
2050
  "hashes": [
2051
+ "sha256:3987ae027152fc8bea745d60b02c8f4c4a76e1b5c70e73565fa556db6f78c9e6",
2052
+ "sha256:822dd2051baa3393d0d5406990611975dd6f533020dc9375a34d4fe67e8b75f7"
2053
  ],
2054
  "markers": "python_full_version >= '3.7.1'",
2055
+ "version": "==1.50.2"
2056
  },
2057
  "orjson": {
2058
  "hashes": [
 
2587
  "markers": "python_version >= '3.6'",
2588
  "version": "==2.0.7"
2589
  },
2590
+ "python-levenshtein": {
2591
+ "hashes": [
2592
+ "sha256:1d808ba2f9df04aaea5eceba6e73734f2ffeba99d98d2a91078f32276cd041f4",
2593
+ "sha256:b454dd13708546649f1cba2a0f450dd98e7c1679a92e2d6f0a8b8c013c276e55"
2594
+ ],
2595
+ "index": "pypi",
2596
+ "markers": "python_version >= '3.9'",
2597
+ "version": "==0.26.0"
2598
+ },
2599
  "python-multipart": {
2600
  "hashes": [
2601
+ "sha256:045e1f98d719c1ce085ed7f7e1ef9d8ccc8c02ba02b5566d5f7521410ced58cb",
2602
+ "sha256:43dcf96cf65888a9cd3423544dd0d75ac10f7aa0c3c28a175bbcd00c9ce1aebf"
2603
  ],
2604
  "markers": "python_version >= '3.8'",
2605
+ "version": "==0.0.12"
2606
  },
2607
  "pytz": {
2608
  "hashes": [
 
2793
  "markers": "python_version >= '3.8'",
2794
  "version": "==1.11.3"
2795
  },
2796
+ "rapidfuzz": {
2797
+ "hashes": [
2798
+ "sha256:094c26116d55bf9c53abd840d08422f20da78ec4c4723e5024322321caedca48",
2799
+ "sha256:0ec338d5f4ad8d9339a88a08db5c23e7f7a52c2b2a10510c48a0cef1fb3f0ddc",
2800
+ "sha256:10fdad800441b9c97d471a937ba7d42625f1b530db05e572f1cb7d401d95c893",
2801
+ "sha256:116c71a81e046ba56551d8ab68067ca7034d94b617545316d460a452c5c3c289",
2802
+ "sha256:1af60988d47534246d9525f77288fdd9de652608a4842815d9018570b959acc6",
2803
+ "sha256:2026651761bf83a0f31495cc0f70840d5c0d54388f41316e3f9cb51bd85e49a5",
2804
+ "sha256:20bd153aacc244e4c907d772c703fea82754c4db14f8aa64d75ff81b7b8ab92d",
2805
+ "sha256:26de93e6495078b6af4c4d93a42ca067b16cc0e95699526c82ab7d1025b4d3bf",
2806
+ "sha256:288f6f6e7410cacb115fb851f3f18bf0e4231eb3f6cb5bd1cec0e7b25c4d039d",
2807
+ "sha256:2db9187f3acf3cd33424ecdbaad75414c298ecd1513470df7bda885dcb68cc15",
2808
+ "sha256:2e9be5d05cd960914024412b5406fb75a82f8562f45912ff86255acbfdbfb78e",
2809
+ "sha256:2fe5783676f0afba4a522c80b15e99dbf4e393c149ab610308a8ef1f04c6bcc8",
2810
+ "sha256:3084161fc3e963056232ef8d937449a2943852e07101f5a136c8f3cfa4119217",
2811
+ "sha256:34f213d59219a9c3ca14e94a825f585811a68ac56b4118b4dc388b5b14afc108",
2812
+ "sha256:399b9b79ccfcf50ca3bad7692bc098bb8eade88d7d5e15773b7f866c91156d0c",
2813
+ "sha256:43dfc5e733808962a822ff6d9c29f3039a3cfb3620706f5953e17cfe4496724c",
2814
+ "sha256:457827ba82261aa2ae6ac06a46d0043ab12ba7216b82d87ae1434ec0f29736d6",
2815
+ "sha256:47aca565a39c9a6067927871973ca827023e8b65ba6c5747f4c228c8d7ddc04f",
2816
+ "sha256:4bd1a7676ee2a4c8e2f7f2550bece994f9f89e58afb96088964145a83af7408b",
2817
+ "sha256:4dd3d8443970eaa02ab5ae45ce584b061f2799cd9f7e875190e2617440c1f9d4",
2818
+ "sha256:4df75b3ebbb8cfdb9bf8b213b168620b88fd92d0c16a8bc9f9234630b282db59",
2819
+ "sha256:50484d563f8bfa723c74c944b0bb15b9e054db9c889348c8c307abcbee75ab92",
2820
+ "sha256:50e3d0c72ea15391ba9531ead7f2068a67c5b18a6a365fef3127583aaadd1725",
2821
+ "sha256:545fc04f2d592e4350f59deb0818886c1b444ffba3bec535b4fbb97191aaf769",
2822
+ "sha256:56fd15ea8f4c948864fa5ebd9261c67cf7b89a1c517a0caef4df75446a7af18c",
2823
+ "sha256:5897242d455461f2c5b82d7397b29341fd11e85bf3608a522177071044784ee8",
2824
+ "sha256:5d350864269d56f51ab81ab750c9259ae5cad3152c0680baef143dcec92206a1",
2825
+ "sha256:5dd6eec15b13329abe66cc241b484002ecb0e17d694491c944a22410a6a9e5e2",
2826
+ "sha256:63e4c175cbce8c3adc22dca5e6154588ae673f6c55374d156f3dac732c88d7de",
2827
+ "sha256:69ef5b363afff7150a1fbe788007e307b9802a2eb6ad92ed51ab94e6ad2674c6",
2828
+ "sha256:6b62af27e65bb39276a66533655a2fa3c60a487b03935721c45b7809527979be",
2829
+ "sha256:6cd67d3d017296d98ff505529104299f78433e4b8af31b55003d901a62bbebe9",
2830
+ "sha256:718c9bd369288aca5fa929df6dbf66fdbe9768d90940a940c0b5cdc96ade4309",
2831
+ "sha256:76a35e9e19a7c883c422ffa378e9a04bc98cb3b29648c5831596401298ee51e6",
2832
+ "sha256:7947a425d1be3e744707ee58c6cb318b93a56e08f080722dcc0347e0b7a1bb9a",
2833
+ "sha256:79e7f98525b60b3c14524e0a4e1fedf7654657b6e02eb25f1be897ab097706f3",
2834
+ "sha256:7c4c82b1689b23b1b5e6a603164ed2be41b6f6de292a698b98ba2381e889eb9d",
2835
+ "sha256:7dc87073ba3a40dd65591a2100aa71602107443bf10770579ff9c8a3242edb94",
2836
+ "sha256:7f3a6aa6e70fc27e4ff5c479f13cc9fc26a56347610f5f8b50396a0d344c5f55",
2837
+ "sha256:803f255f10d63420979b1909ef976e7d30dec42025c9b067fc1d2040cc365a7e",
2838
+ "sha256:884453860de029380dded8f3c1918af2d8eb5adf8010261645c7e5c88c2b5428",
2839
+ "sha256:886882367dbc985f5736356105798f2ae6e794e671fc605476cbe2e73838a9bb",
2840
+ "sha256:8a6405d34c394c65e4f73a1d300c001f304f08e529d2ed6413b46ee3037956eb",
2841
+ "sha256:916a6abf3632e592b937c3d04c00a6efadd8fd30539cdcd4e6e4d92be7ca5d90",
2842
+ "sha256:9178277f72d144a6c7704d7ae7fa15b7b86f0f0796f0e1049c7b4ef748a662ef",
2843
+ "sha256:949b5e9eeaa4ecb4c7e9c2a4689dddce60929dd1ff9c76a889cdbabe8bbf2171",
2844
+ "sha256:94c48b4a2a4b1d22246f48e2b11cae01ec7d23f0c9123f8bb822839ad79d0a88",
2845
+ "sha256:96ad46f5f56f70fab2be9e5f3165a21be58d633b90bf6e67fc52a856695e4bcf",
2846
+ "sha256:98f6ebe28831a482981ecfeedc8237047878424ad0c1add2c7f366ba44a20452",
2847
+ "sha256:9eac95b4278bd53115903d89118a2c908398ee8bdfd977ae844f1bd2b02b917c",
2848
+ "sha256:a425a0a868cf8e9c6e93e1cda4b758cdfd314bb9a4fc916c5742c934e3613480",
2849
+ "sha256:a68e3724b7dab761c01816aaa64b0903734d999d5589daf97c14ef5cc0629a8e",
2850
+ "sha256:a86d5d1d75e61df060c1e56596b6b0a4422a929dff19cc3dbfd5eee762c86b61",
2851
+ "sha256:a9b8f51e08c3f983d857c3889930af9ddecc768453822076683664772d87e374",
2852
+ "sha256:aadce42147fc09dcef1afa892485311e824c050352e1aa6e47f56b9b27af4cf0",
2853
+ "sha256:ae7966f205b5a7fde93b44ca8fed37c1c8539328d7f179b1197de34eceaceb5f",
2854
+ "sha256:b0445fa9880ead81f5a7d0efc0b9c977a947d8052c43519aceeaf56eabaf6843",
2855
+ "sha256:b0732343cdc4273b5921268026dd7266f75466eb21873cb7635a200d9d9c3fac",
2856
+ "sha256:b11a127ac590fc991e8a02c2d7e1ac86e8141c92f78546f18b5c904064a0552c",
2857
+ "sha256:b33e13e537e3afd1627d421a142a12bbbe601543558a391a6fae593356842f6e",
2858
+ "sha256:b5363932a5aab67010ae1a6205c567d1ef256fb333bc23c27582481606be480c",
2859
+ "sha256:b54853c2371bf0e38d67da379519deb6fbe70055efb32f6607081641af3dc752",
2860
+ "sha256:b67cc21a14327a0eb0f47bc3d7e59ec08031c7c55220ece672f9476e7a8068d3",
2861
+ "sha256:bb0013795b40db5cf361e6f21ee7cda09627cf294977149b50e217d7fe9a2f03",
2862
+ "sha256:bd393683129f446a75d8634306aed7e377627098a1286ff3af2a4f1736742820",
2863
+ "sha256:c038b9939da3035afb6cb2f465f18163e8f070aba0482923ecff9443def67178",
2864
+ "sha256:c50bc308fa29767ed8f53a8d33b7633a9e14718ced038ed89d41b886e301da32",
2865
+ "sha256:c582c46b1bb0b19f1a5f4c1312f1b640c21d78c371a6615c34025b16ee56369b",
2866
+ "sha256:c77a7330dd15c7eb5fd3631dc646fc96327f98db8181138766bd14d3e905f0ba",
2867
+ "sha256:c9e29a13d2fd9be3e7d8c26c7ef4ba60b5bc7efbc9dbdf24454c7e9ebba31768",
2868
+ "sha256:ca366c2e2a54e2f663f4529b189fdeb6e14d419b1c78b754ec1744f3c01070d4",
2869
+ "sha256:ce19887268e90ee81a3957eef5e46a70ecc000713796639f83828b950343f49e",
2870
+ "sha256:cffbc50e0767396ed483900900dd58ce4351bc0d40e64bced8694bd41864cc71",
2871
+ "sha256:d29d1b9857c65f8cb3a29270732e1591b9bacf89de9d13fa764f79f07d8f1fd2",
2872
+ "sha256:d4688862f957c8629d557d084f20b2d803f8738b6c4066802a0b1cc472e088d9",
2873
+ "sha256:e5ddb2388610799fc46abe389600625058f2a73867e63e20107c5ad5ffa57c47",
2874
+ "sha256:e89605afebbd2d4b045bccfdc12a14b16fe8ccbae05f64b4b4c64a97dad1c891",
2875
+ "sha256:ea2da0459b951ee461bd4e02b8904890bd1c4263999d291c5cd01e6620177ad4",
2876
+ "sha256:ec9139baa3f85b65adc700eafa03ed04995ca8533dd56c924f0e458ffec044ab",
2877
+ "sha256:eda4c661e68dddd56c8fbfe1ca35e40dd2afd973f7ebb1605f4d151edc63dff8",
2878
+ "sha256:f0a547e4350d1fa32624d3eab51eff8cf329f4cae110b4ea0402486b1da8be40",
2879
+ "sha256:f39a2a5ded23b9b9194ec45740dce57177b80f86c6d8eba953d3ff1a25c97766",
2880
+ "sha256:f3a0bda83c18195c361b5500377d0767749f128564ca95b42c8849fd475bb327",
2881
+ "sha256:f744b5eb1469bf92dd143d36570d2bdbbdc88fe5cb0b5405e53dd34f479cbd8a",
2882
+ "sha256:f9f0bbfb6787b97c51516f3ccf97737d504db5d239ad44527673b81f598b84ab",
2883
+ "sha256:fa9720e56663cc3649d62b4b5f3145e94b8f5611e8a8e1b46507777249d46aad",
2884
+ "sha256:fb6ec40cef63b1922083d33bfef2f91fc0b0bc07b5b09bfee0b0f1717d558292",
2885
+ "sha256:fe5231e8afd069c742ac5b4f96344a0fe4aff52df8e53ef87faebf77f827822c"
2886
+ ],
2887
+ "markers": "python_version >= '3.9'",
2888
+ "version": "==3.10.0"
2889
+ },
2890
  "referencing": {
2891
  "hashes": [
2892
  "sha256:25b42124a6c8b632a425174f24087783efb348a6f1e0008e63cd4466fedf703c",
 
3021
  },
3022
  "rich": {
3023
  "hashes": [
3024
+ "sha256:097cffdf85db1babe30cc7deba5ab3a29e1b9885047dab24c57e9a7f8a9c1466",
3025
+ "sha256:b340e739f30aa58921dc477b8adaa9ecdb7cecc217be01d93730ee1bc8aa83be"
3026
  ],
3027
+ "markers": "python_full_version >= '3.8.0'",
3028
+ "version": "==13.9.1"
3029
  },
3030
  "rpds-py": {
3031
  "hashes": [
 
3138
  },
3139
  "ruff": {
3140
  "hashes": [
3141
+ "sha256:007dee844738c3d2e6c24ab5bc7d43c99ba3e1943bd2d95d598582e9c1b27750",
3142
+ "sha256:1085c455d1b3fdb8021ad534379c60353b81ba079712bce7a900e834859182fa",
3143
+ "sha256:27b87e1801e786cd6ede4ada3faa5e254ce774de835e6723fd94551464c56b8c",
3144
+ "sha256:5fd0d4b7b1457c49e435ee1e437900ced9b35cb8dc5178921dfb7d98d65a08d0",
3145
+ "sha256:677e03c00f37c66cea033274295a983c7c546edea5043d0c798833adf4cf4c6f",
3146
+ "sha256:6cfb227b932ba8ef6e56c9f875d987973cd5e35bc5d05f5abf045af78ad8e098",
3147
+ "sha256:6ef0411eccfc3909269fed47c61ffebdcb84a04504bafa6b6df9b85c27e813b0",
3148
+ "sha256:6f5a2f17c7d32991169195d52a04c95b256378bbf0de8cb98478351eb70d526f",
3149
+ "sha256:70edf6a93b19481affd287d696d9e311388d808671bc209fb8907b46a8c3af44",
3150
+ "sha256:77944bca110ff0a43b768f05a529fecd0706aac7bcce36d7f1eeb4cbfca5f0f2",
3151
+ "sha256:792213f7be25316f9b46b854df80a77e0da87ec66691e8f012f887b4a671ab5a",
3152
+ "sha256:8d3bb2e3fbb9875172119021a13eed38849e762499e3cfde9588e4b4d70968dc",
3153
+ "sha256:9f1476236b3eacfacfc0f66aa9e6cd39f2a624cb73ea99189556015f27c0bdeb",
3154
+ "sha256:a5bf44b1aa0adaf6d9d20f86162b34f7c593bfedabc51239953e446aefc8ce18",
3155
+ "sha256:cd48f945da2a6334f1793d7f701725a76ba93bf3d73c36f6b21fb04d5338dcf5",
3156
+ "sha256:ce60058d3cdd8490e5e5471ef086b3f1e90ab872b548814e35930e21d848c9ce",
3157
+ "sha256:ec0517dc0f37cad14a5319ba7bba6e7e339d03fbf967a6d69b0907d61be7a263",
3158
+ "sha256:f8034b19b993e9601f2ddf2c517451e17a6ab5cdb1c13fdff50c1442a7171d87"
3159
  ],
3160
  "markers": "sys_platform != 'emscripten'",
3161
+ "version": "==0.6.8"
3162
  },
3163
  "semantic-version": {
3164
  "hashes": [
 
3467
  },
3468
  "uvicorn": {
3469
  "hashes": [
3470
+ "sha256:13bc21373d103859f68fe739608e2eb054a816dea79189bc3ca08ea89a275906",
3471
+ "sha256:cac7be4dd4d891c363cd942160a7b02e69150dcbc7a36be04d5f4af4b17c8ced"
3472
  ],
3473
  "markers": "sys_platform != 'emscripten'",
3474
+ "version": "==0.31.0"
3475
  },
3476
  "wcwidth": {
3477
  "hashes": [
 
3590
  },
3591
  "yarl": {
3592
  "hashes": [
3593
+ "sha256:08d7148ff11cb8e886d86dadbfd2e466a76d5dd38c7ea8ebd9b0e07946e76e4b",
3594
+ "sha256:098b870c18f1341786f290b4d699504e18f1cd050ed179af8123fd8232513424",
3595
+ "sha256:11b3ca8b42a024513adce810385fcabdd682772411d95bbbda3b9ed1a4257644",
3596
+ "sha256:1891d69a6ba16e89473909665cd355d783a8a31bc84720902c5911dbb6373465",
3597
+ "sha256:1bbb418f46c7f7355084833051701b2301092e4611d9e392360c3ba2e3e69f88",
3598
+ "sha256:1d0828e17fa701b557c6eaed5edbd9098eb62d8838344486248489ff233998b8",
3599
+ "sha256:1d8e3ca29f643dd121f264a7c89f329f0fcb2e4461833f02de6e39fef80f89da",
3600
+ "sha256:1fa56f34b2236f5192cb5fceba7bbb09620e5337e0b6dfe2ea0ddbd19dd5b154",
3601
+ "sha256:216a6785f296169ed52cd7dcdc2612f82c20f8c9634bf7446327f50398732a51",
3602
+ "sha256:22b739f99c7e4787922903f27a892744189482125cc7b95b747f04dd5c83aa9f",
3603
+ "sha256:2430cf996113abe5aee387d39ee19529327205cda975d2b82c0e7e96e5fdabdc",
3604
+ "sha256:269c201bbc01d2cbba5b86997a1e0f73ba5e2f471cfa6e226bcaa7fd664b598d",
3605
+ "sha256:298c1eecfd3257aa16c0cb0bdffb54411e3e831351cd69e6b0739be16b1bdaa8",
3606
+ "sha256:2a93a4557f7fc74a38ca5a404abb443a242217b91cd0c4840b1ebedaad8919d4",
3607
+ "sha256:2b2442a415a5f4c55ced0fade7b72123210d579f7d950e0b5527fc598866e62c",
3608
+ "sha256:2db874dd1d22d4c2c657807562411ffdfabec38ce4c5ce48b4c654be552759dc",
3609
+ "sha256:309c104ecf67626c033845b860d31594a41343766a46fa58c3309c538a1e22b2",
3610
+ "sha256:31497aefd68036d8e31bfbacef915826ca2e741dbb97a8d6c7eac66deda3b606",
3611
+ "sha256:373f16f38721c680316a6a00ae21cc178e3a8ef43c0227f88356a24c5193abd6",
3612
+ "sha256:396e59b8de7e4d59ff5507fb4322d2329865b909f29a7ed7ca37e63ade7f835c",
3613
+ "sha256:3bb83a0f12701c0b91112a11148b5217617982e1e466069d0555be9b372f2734",
3614
+ "sha256:3de86547c820e4f4da4606d1c8ab5765dd633189791f15247706a2eeabc783ae",
3615
+ "sha256:3fdbf0418489525231723cdb6c79e7738b3cbacbaed2b750cb033e4ea208f220",
3616
+ "sha256:40c6e73c03a6befb85b72da213638b8aaa80fe4136ec8691560cf98b11b8ae6e",
3617
+ "sha256:44a4c40a6f84e4d5955b63462a0e2a988f8982fba245cf885ce3be7618f6aa7d",
3618
+ "sha256:44b07e1690f010c3c01d353b5790ec73b2f59b4eae5b0000593199766b3f7a5c",
3619
+ "sha256:45d23c4668d4925688e2ea251b53f36a498e9ea860913ce43b52d9605d3d8177",
3620
+ "sha256:45f209fb4bbfe8630e3d2e2052535ca5b53d4ce2d2026bed4d0637b0416830da",
3621
+ "sha256:4afdf84610ca44dcffe8b6c22c68f309aff96be55f5ea2fa31c0c225d6b83e23",
3622
+ "sha256:4feaaa4742517eaceafcbe74595ed335a494c84634d33961214b278126ec1485",
3623
+ "sha256:576365c9f7469e1f6124d67b001639b77113cfd05e85ce0310f5f318fd02fe85",
3624
+ "sha256:5820bd4178e6a639b3ef1db8b18500a82ceab6d8b89309e121a6859f56585b05",
3625
+ "sha256:5989a38ba1281e43e4663931a53fbf356f78a0325251fd6af09dd03b1d676a09",
3626
+ "sha256:5a9bacedbb99685a75ad033fd4de37129449e69808e50e08034034c0bf063f99",
3627
+ "sha256:5b66c87da3c6da8f8e8b648878903ca54589038a0b1e08dde2c86d9cd92d4ac9",
3628
+ "sha256:5c5e32fef09ce101fe14acd0f498232b5710effe13abac14cd95de9c274e689e",
3629
+ "sha256:658e8449b84b92a4373f99305de042b6bd0d19bf2080c093881e0516557474a5",
3630
+ "sha256:6a2acde25be0cf9be23a8f6cbd31734536a264723fca860af3ae5e89d771cd71",
3631
+ "sha256:6a5185ad722ab4dd52d5fb1f30dcc73282eb1ed494906a92d1a228d3f89607b0",
3632
+ "sha256:6b7f6e699304717fdc265a7e1922561b02a93ceffdaefdc877acaf9b9f3080b8",
3633
+ "sha256:703b0f584fcf157ef87816a3c0ff868e8c9f3c370009a8b23b56255885528f10",
3634
+ "sha256:7055bbade838d68af73aea13f8c86588e4bcc00c2235b4b6d6edb0dbd174e246",
3635
+ "sha256:78f271722423b2d4851cf1f4fa1a1c4833a128d020062721ba35e1a87154a049",
3636
+ "sha256:7addd26594e588503bdef03908fc207206adac5bd90b6d4bc3e3cf33a829f57d",
3637
+ "sha256:81bad32c8f8b5897c909bf3468bf601f1b855d12f53b6af0271963ee67fff0d2",
3638
+ "sha256:82e692fb325013a18a5b73a4fed5a1edaa7c58144dc67ad9ef3d604eccd451ad",
3639
+ "sha256:84bbcdcf393139f0abc9f642bf03f00cac31010f3034faa03224a9ef0bb74323",
3640
+ "sha256:86c438ce920e089c8c2388c7dcc8ab30dfe13c09b8af3d306bcabb46a053d6f7",
3641
+ "sha256:8be8cdfe20787e6a5fcbd010f8066227e2bb9058331a4eccddec6c0db2bb85b2",
3642
+ "sha256:8c723c91c94a3bc8033dd2696a0f53e5d5f8496186013167bddc3fb5d9df46a3",
3643
+ "sha256:8ca53632007c69ddcdefe1e8cbc3920dd88825e618153795b57e6ebcc92e752a",
3644
+ "sha256:8f722f30366474a99745533cc4015b1781ee54b08de73260b2bbe13316079851",
3645
+ "sha256:942c80a832a79c3707cca46bd12ab8aa58fddb34b1626d42b05aa8f0bcefc206",
3646
+ "sha256:94a993f976cdcb2dc1b855d8b89b792893220db8862d1a619efa7451817c836b",
3647
+ "sha256:95c6737f28069153c399d875317f226bbdea939fd48a6349a3b03da6829fb550",
3648
+ "sha256:9915300fe5a0aa663c01363db37e4ae8e7c15996ebe2c6cce995e7033ff6457f",
3649
+ "sha256:9a18595e6a2ee0826bf7dfdee823b6ab55c9b70e8f80f8b77c37e694288f5de1",
3650
+ "sha256:9c8854b9f80693d20cec797d8e48a848c2fb273eb6f2587b57763ccba3f3bd4b",
3651
+ "sha256:9cec42a20eae8bebf81e9ce23fb0d0c729fc54cf00643eb251ce7c0215ad49fe",
3652
+ "sha256:9d2e1626be8712333a9f71270366f4a132f476ffbe83b689dd6dc0d114796c74",
3653
+ "sha256:9d74f3c335cfe9c21ea78988e67f18eb9822f5d31f88b41aec3a1ec5ecd32da5",
3654
+ "sha256:9fb4134cc6e005b99fa29dbc86f1ea0a298440ab6b07c6b3ee09232a3b48f495",
3655
+ "sha256:a0ae6637b173d0c40b9c1462e12a7a2000a71a3258fa88756a34c7d38926911c",
3656
+ "sha256:a31d21089894942f7d9a8df166b495101b7258ff11ae0abec58e32daf8088813",
3657
+ "sha256:a3442c31c11088e462d44a644a454d48110f0588de830921fd201060ff19612a",
3658
+ "sha256:ab9524e45ee809a083338a749af3b53cc7efec458c3ad084361c1dbf7aaf82a2",
3659
+ "sha256:b1481c048fe787f65e34cb06f7d6824376d5d99f1231eae4778bbe5c3831076d",
3660
+ "sha256:b8c837ab90c455f3ea8e68bee143472ee87828bff19ba19776e16ff961425b57",
3661
+ "sha256:bbf2c3f04ff50f16404ce70f822cdc59760e5e2d7965905f0e700270feb2bbfc",
3662
+ "sha256:bbf9c2a589be7414ac4a534d54e4517d03f1cbb142c0041191b729c2fa23f320",
3663
+ "sha256:bcd5bf4132e6a8d3eb54b8d56885f3d3a38ecd7ecae8426ecf7d9673b270de43",
3664
+ "sha256:c14c16831b565707149c742d87a6203eb5597f4329278446d5c0ae7a1a43928e",
3665
+ "sha256:c49f3e379177f4477f929097f7ed4b0622a586b0aa40c07ac8c0f8e40659a1ac",
3666
+ "sha256:c92b89bffc660f1274779cb6fbb290ec1f90d6dfe14492523a0667f10170de26",
3667
+ "sha256:cd66152561632ed4b2a9192e7f8e5a1d41e28f58120b4761622e0355f0fe034c",
3668
+ "sha256:cf1ad338620249f8dd6d4b6a91a69d1f265387df3697ad5dc996305cf6c26fb2",
3669
+ "sha256:d07b52c8c450f9366c34aa205754355e933922c79135125541daae6cbf31c799",
3670
+ "sha256:d0d12fe78dcf60efa205e9a63f395b5d343e801cf31e5e1dda0d2c1fb618073d",
3671
+ "sha256:d4ee1d240b84e2f213565f0ec08caef27a0e657d4c42859809155cf3a29d1735",
3672
+ "sha256:d959fe96e5c2712c1876d69af0507d98f0b0e8d81bee14cfb3f6737470205419",
3673
+ "sha256:dcaef817e13eafa547cdfdc5284fe77970b891f731266545aae08d6cce52161e",
3674
+ "sha256:df4e82e68f43a07735ae70a2d84c0353e58e20add20ec0af611f32cd5ba43fb4",
3675
+ "sha256:ec8cfe2295f3e5e44c51f57272afbd69414ae629ec7c6b27f5a410efc78b70a0",
3676
+ "sha256:ec9dd328016d8d25702a24ee274932aebf6be9787ed1c28d021945d264235b3c",
3677
+ "sha256:ef9b85fa1bc91c4db24407e7c4da93a5822a73dd4513d67b454ca7064e8dc6a3",
3678
+ "sha256:f3bf60444269345d712838bb11cc4eadaf51ff1a364ae39ce87a5ca8ad3bb2c8",
3679
+ "sha256:f452cc1436151387d3d50533523291d5f77c6bc7913c116eb985304abdbd9ec9",
3680
+ "sha256:f7917697bcaa3bc3e83db91aa3a0e448bf5cde43c84b7fc1ae2427d2417c0224",
3681
+ "sha256:f90575e9fe3aae2c1e686393a9689c724cd00045275407f71771ae5d690ccf38",
3682
+ "sha256:fb382fd7b4377363cc9f13ba7c819c3c78ed97c36a82f16f3f92f108c787cbbf",
3683
+ "sha256:fb9f59f3848edf186a76446eb8bcf4c900fe147cb756fbbd730ef43b2e67c6a7",
3684
+ "sha256:fc2931ac9ce9c61c9968989ec831d3a5e6fcaaff9474e7cfa8de80b7aff5a093"
3685
+ ],
3686
+ "markers": "python_version >= '3.8'",
3687
+ "version": "==1.13.1"
3688
  }
3689
  },
3690
  "develop": {}
app2.py ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import os
3
+ from langchain_core.messages import HumanMessage
4
+ import src.srf_bot as sb
5
+ import prompts.system_prompts as sp
6
+
7
+ # Initialize chatbot
8
+ chatbot = sb.SRFChatbot()
9
+
10
+ # Define the respond function
11
+ def respond(query, history, custom_instructions, use_custom_instructions, selected_system_prompt):
12
+ formatted_query = [HumanMessage(content=query)]
13
+
14
+ # Set the system instructions based on user input or dropdown
15
+ if use_custom_instructions:
16
+ chatbot.config["system_prompt"] = custom_instructions # Use custom instructions
17
+ else:
18
+ chatbot.config["system_prompt"] = sp.system_prompt_templates[selected_system_prompt] # Use selected from dropdown
19
+
20
+ # Invoke the graph with properly formatted input
21
+ result = chatbot.graph.invoke({"messages": formatted_query}, chatbot.config)
22
+
23
+ # Get the passages from the graph and append to history if documents exist
24
+ state = chatbot.graph.get_state(config=chatbot.config).values
25
+ documents = state.get("documents")
26
+ passages = ''
27
+ if documents and len(documents) > 0:
28
+ for d in documents:
29
+ passages += f'<b>{d.metadata["publication_name"]} - {d.metadata["chapter_name"]}</b>\n{d.page_content}\n\n'
30
+ history.append((f'Passages: {query}', passages))
31
+
32
+ # Extract the assistant's response and append to history
33
+ response = result["messages"][-1].content
34
+ system_message_dropdown = state.get("system_message_dropdown")
35
+ history.append((query, f"<i>[{system_message_dropdown}]</i>\n" + response))
36
+
37
+ return history
38
+
39
+
40
+ # Gradio interface with black and grey color scheme
41
+ with gr.Blocks(css="""
42
+ .gradio-container {
43
+ background-color: #F0F0F0;
44
+ font-family: 'Arial', sans-serif;
45
+ }
46
+ h1, h2, p {
47
+ color: black;
48
+ }
49
+ h1 {
50
+ font-size: 32px;
51
+ text-align: left;
52
+ }
53
+ h2 {
54
+ font-size: 24px;
55
+ }
56
+ p {
57
+ font-size: 18px;
58
+ margin-bottom: 15px;
59
+ }
60
+ .gr-button {
61
+ background-color: #333333;
62
+ color: white;
63
+ font-size: 18px;
64
+ padding: 10px;
65
+ }
66
+ .gr-textbox textarea {
67
+ font-size: 18px;
68
+ color: black;
69
+ }
70
+ .gr-dropdown {
71
+ font-size: 18px;
72
+ color: black;
73
+ }
74
+ .source-box {
75
+ background-color: white;
76
+ padding: 10px;
77
+ border-radius: 8px;
78
+ margin-top: 20px;
79
+ color: black;
80
+ border: 1px solid #D0D0D0;
81
+ }
82
+
83
+ @media (prefers-color-scheme: dark) {
84
+ .gradio-container {
85
+ background-color: #1e1e1e;
86
+ color: white;
87
+ }
88
+ h1, h2, p {
89
+ color: white;
90
+ }
91
+ .gr-textbox textarea {
92
+ background-color: #333333;
93
+ color: white;
94
+ }
95
+ .gr-button {
96
+ background-color: #555555;
97
+ color: white;
98
+ }
99
+ .gr-dropdown {
100
+ background-color: #333333;
101
+ color: white;
102
+ }
103
+ .source-box {
104
+ background-color: #333333;
105
+ color: white;
106
+ border: 1px solid #555555;
107
+ }
108
+ }
109
+
110
+ @media (max-width: 600px) {
111
+ .gr-row { flex-direction: column !important; }
112
+ .gr-column { width: 100% !important; }
113
+ }
114
+ """) as demo:
115
+
116
+ # Title
117
+ gr.Markdown("# SRF Chatbot")
118
+
119
+ with gr.Row(elem_classes="gr-row"):
120
+ with gr.Column(scale=4, elem_classes="gr-column"):
121
+ # Chatbot interface
122
+ chatbot_output = gr.Chatbot(height=600) # Increased height for longer chat interface
123
+ user_input = gr.Textbox(placeholder="Type your question here...", label="Your Question", value="What is the meaning of life?")
124
+ submit_button = gr.Button("Submit")
125
+
126
+ with gr.Column(scale=1, elem_classes="gr-column"):
127
+ # Dropdown to select system prompts
128
+ system_prompt_dropdown = gr.Dropdown(
129
+ choices=list(sp.system_prompt_templates.keys()),
130
+ label="Select Chatbot Instructions",
131
+ value=list(sp.system_prompt_templates.keys())[0],
132
+ elem_classes="gr-dropdown"
133
+ )
134
+
135
+ # Display the selected system prompt
136
+ system_prompt_display = gr.Textbox(
137
+ value=sp.system_prompt_templates[list(sp.system_prompt_templates.keys())[0]],
138
+ label="Current Chatbot Instructions",
139
+ lines=5,
140
+ interactive=False
141
+ )
142
+
143
+ # Custom instructions input
144
+ custom_instructions = gr.Textbox(
145
+ placeholder="Write your own instructions here...",
146
+ label="Or Write Your Own Instructions",
147
+ lines=5
148
+ )
149
+
150
+ # Toggle between using dropdown or custom instructions
151
+ use_custom_instructions = gr.Checkbox(
152
+ label="Use Custom Instructions",
153
+ value=False
154
+ )
155
+
156
+ # Sources box
157
+ gr.Markdown("""
158
+ <div class="source-box">
159
+ <strong>Available sources:</strong>
160
+ <ul>
161
+ <li>Journey to Self-Realization</li>
162
+ <li>The Second Coming of Christ</li>
163
+ <li>Autobiography of a Yogi</li>
164
+ </ul>
165
+ </div>
166
+ """)
167
+
168
+ # Update system prompt display when a new prompt is selected
169
+ system_prompt_dropdown.change(
170
+ fn=lambda x: sp.system_prompt_templates[x],
171
+ inputs=[system_prompt_dropdown],
172
+ outputs=[system_prompt_display]
173
+ )
174
+
175
+ # Submit button logic to handle chatbot conversation
176
+ submit_button.click(
177
+ fn=respond,
178
+ inputs=[user_input, chatbot_output, custom_instructions, use_custom_instructions, system_prompt_dropdown],
179
+ outputs=[chatbot_output]
180
+ )
181
+
182
+ # Access the secrets
183
+ username = os.getenv("USERNAME")
184
+ password = os.getenv("PASSWORD")
185
+
186
+ # Launch the interface
187
+ demo.launch(share=True, auth=(username, password), debug=True)
prompts/quote_finder_prompts.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from langchain_core.prompts import ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate
2
+
3
+ system_template = '''The following are passages from the books and teachings of Paramhansa Yogananda, his disciples, or other
4
+ sources related to the Self-Realization Fellowship / Yogoda Satsanga Society.
5
+ Extract the most relevant quotes from the given passage that directly address the user's original query and are the most helpful and/or insipriational to the user.
6
+ Ensure that quotes are verbatim and provide specific information related to the query.
7
+ '''
8
+
9
+ system_message = SystemMessagePromptTemplate.from_template(system_template)
10
+
11
+
12
+ human_message_template = '''Here is the original query: {query} \n\n
13
+
14
+ Here is the passage: {passage}
15
+
16
+ Now think step-by-step and follow the instructions carefully:
17
+ 1. Read the original query carefully.
18
+ 2. Analyze the given passage and identify sections that directly address the query.
19
+ 3. Extract the most relevant quotes, ensuring they are verbatim from the passage.
20
+ 4. Rank the quotes based on their relevance and importance to the query.
21
+ 5. Return the top 3 most relevant quotes in the specified format.'''
22
+
23
+ human_message = HumanMessagePromptTemplate.from_template(human_message_template)
24
+
25
+
26
+ quote_finder_prompt = ChatPromptTemplate.from_messages([
27
+ system_message, human_message
28
+ ])
src/passage_finder.py ADDED
@@ -0,0 +1,236 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import sys
2
+ import os
3
+ import uuid
4
+ from dotenv import load_dotenv
5
+ from typing import Annotated, List, Tuple
6
+ from typing_extensions import TypedDict
7
+ from langchain.tools import tool, BaseTool
8
+ from langchain.schema import Document
9
+ from langgraph.graph import StateGraph, START, END, MessagesState
10
+ from langgraph.graph.message import add_messages
11
+ from langgraph.prebuilt import ToolNode, tools_condition
12
+ from langgraph.checkpoint.memory import MemorySaver
13
+ from langchain_openai import ChatOpenAI
14
+ from langchain_core.prompts import ChatPromptTemplate, SystemMessagePromptTemplate, AIMessagePromptTemplate, HumanMessagePromptTemplate
15
+ # from langchain.schema import SystemMessage, HumanMessage, AIMessage, ToolMessage
16
+ from langchain_core.messages import HumanMessage, AIMessage, ToolMessage, SystemMessage
17
+ from langchain.retrievers.multi_query import MultiQueryRetriever
18
+ import json
19
+ from langchain_core.messages import BaseMessage
20
+ from pydantic import BaseModel
21
+ import re
22
+ from fuzzywuzzy import fuzz
23
+
24
+
25
+
26
+ sys.path.append(os.path.abspath('..'))
27
+
28
+
29
+ import src.utils.qdrant_manager as qm
30
+ import prompts.system_prompts as sp
31
+ import prompts.quote_finder_prompts as qfp
32
+ load_dotenv('/Users/nadaa/Documents/code/py_innovations/srf_chatbot_v2/.env')
33
+
34
+
35
+ class AgentState(TypedDict):
36
+ messages: Annotated[list[BaseMessage], add_messages]
37
+ documents: list[Document]
38
+ query: str
39
+ final_response: str
40
+
41
+
42
+ class ToolManager:
43
+ def __init__(self, collection_name="openai_large_chunks_1500char"):
44
+ self.tools = []
45
+ self.qdrant = qm.QdrantManager(collection_name=collection_name)
46
+ self.vectorstore = self.qdrant.get_vectorstore()
47
+ self.add_tools()
48
+
49
+ def get_tools(self):
50
+ return self.tools
51
+
52
+ def add_tools(self):
53
+ @tool
54
+ def vector_search(query: str, k: int = 5) -> list[Document]:
55
+ """Useful for simple queries. This tool will search a vector database for passages from the teachings of Paramhansa Yogananda and other publications from the Self Realization Fellowship (SRF).
56
+ The user has the option to specify the number of passages they want the search to return, otherwise the number of passages will be set to the default value."""
57
+ retriever = self.vectorstore.as_retriever(search_kwargs={"k": k})
58
+ documents = retriever.invoke(query)
59
+ return documents
60
+
61
+ @tool
62
+ def multiple_query_vector_search(query: str, k: int = 5) -> list[Document]:
63
+ """Useful when the user's query is vague, complex, or involves multiple concepts.
64
+ This tool will write multiple versions of the user's query and search the vector database for relevant passages.
65
+ Use this tool when the user asks for an in depth answer to their question."""
66
+
67
+ llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.5)
68
+ retriever_from_llm = MultiQueryRetriever.from_llm(retriever=self.vectorstore.as_retriever(), llm=llm)
69
+ documents = retriever_from_llm.invoke(query)
70
+ return documents
71
+
72
+ self.tools.append(vector_search)
73
+ self.tools.append(multiple_query_vector_search)
74
+
75
+ class BasicToolNode:
76
+ """A node that runs the tools requested in the last AIMessage."""
77
+
78
+ def __init__(self, tools: list) -> None:
79
+ self.tools_by_name = {tool.name: tool for tool in tools}
80
+
81
+ def __call__(self, inputs: dict):
82
+ if messages := inputs.get("messages", []):
83
+ message = messages[-1]
84
+ else:
85
+ raise ValueError("No message found in input")
86
+ outputs = []
87
+ documents = []
88
+ for tool_call in message.tool_calls:
89
+ tool_result = self.tools_by_name[tool_call["name"]].invoke(
90
+ tool_call["args"]
91
+ )
92
+ outputs.append(
93
+ ToolMessage(
94
+ content=str(tool_result),
95
+ name=tool_call["name"],
96
+ tool_call_id=tool_call["id"],
97
+ )
98
+ )
99
+ documents += tool_result
100
+
101
+ return {"messages": outputs, "documents": documents}
102
+
103
+ # Create the Pydantic Model for the quote finder
104
+ class Quote(BaseModel):
105
+ '''Most relevant quotes to the user's query strictly pulled verbatim from the context provided.'''
106
+ quote: str
107
+
108
+ class QuoteList(BaseModel):
109
+ quotes: List[Quote]
110
+
111
+
112
+ class QuoteFinder:
113
+ def __init__(self, model: str = 'gpt-4o-mini', temperature: float = 0.5):
114
+ self.quotes_prompt = qfp.quote_finder_prompt
115
+ self.llm = ChatOpenAI(model=model, temperature=temperature)
116
+ self.llm_with_quotes_output = self.llm.with_structured_output(QuoteList)
117
+ self.quote_finder_chain = self.quotes_prompt | self.llm_with_quotes_output
118
+
119
+
120
+ def find_quotes_per_document(self, state: AgentState):
121
+ docs = state["documents"]
122
+ query = state["query"]
123
+ for doc in docs:
124
+ passage = doc.page_content
125
+ quotes = self.quote_finder_chain.invoke({"query": query, "passage": passage})
126
+ doc.metadata["quotes"] = quotes
127
+
128
+ return {"documents": docs}
129
+
130
+ def _highlight_quotes(self, document, quotes):
131
+ highlighted_content = document.page_content
132
+ matched_quotes = []
133
+ for quote in quotes.quotes:
134
+ # Fuzzy match the quote in the document
135
+ best_match = None
136
+ best_ratio = 0
137
+ for i in range(len(highlighted_content)):
138
+ substring = highlighted_content[i:i+len(quote.quote)]
139
+ ratio = fuzz.ratio(substring.lower(), quote.quote.lower())
140
+ if ratio > best_ratio:
141
+ best_ratio = ratio
142
+ best_match = substring
143
+
144
+ if best_match and best_ratio > 90: # Adjust threshold as needed
145
+ # Escape special regex characters in the best match
146
+ escaped_match = re.escape(best_match)
147
+ # Replace the matched text with highlighted version
148
+ highlighted_content = re.sub(
149
+ escaped_match,
150
+ f"<b>{best_match}</b>",
151
+ highlighted_content,
152
+ flags=re.IGNORECASE
153
+ )
154
+ matched_quotes.append(quote)
155
+
156
+ return highlighted_content, matched_quotes
157
+
158
+
159
+ def highlight_quotes_in_document(self, state: AgentState):
160
+ docs = state["documents"]
161
+ for doc in docs:
162
+ quotes = doc.metadata["quotes"]
163
+ annotated_passage, matched_quotes = self._highlight_quotes(doc, quotes)
164
+ doc.metadata["highlighted_content"] = annotated_passage
165
+ doc.metadata["matched_quotes"] = matched_quotes
166
+
167
+ return {"documents": docs}
168
+
169
+
170
+ def final_response_formatter(self, state: AgentState):
171
+ docs = state["documents"]
172
+ final_response = ""
173
+ for doc in docs:
174
+ final_response += doc.metadata["publication_name"] + ": " + doc.metadata["chapter_name"] + "\n" + doc.metadata["highlighted_content"] + "\n\n"
175
+
176
+ return {"final_response": final_response}
177
+
178
+
179
+ class PassageFinder:
180
+ def __init__(
181
+ self,
182
+ model: str = 'gpt-4o-mini',
183
+ temperature: float = 0.5,
184
+ ):
185
+
186
+ self.llm = ChatOpenAI(model=model, temperature=temperature)
187
+ self.tools = ToolManager().get_tools()
188
+ self.llm_with_tools = self.llm.bind_tools(self.tools)
189
+ self.quote_finder = QuoteFinder()
190
+
191
+ # Build the graph
192
+ self.graph = self.build_graph()
193
+
194
+
195
+ def get_configurable(self):
196
+ # This thread id is used to keep track of the chatbot's conversation
197
+ self.thread_id = str(uuid.uuid4())
198
+ return {"configurable": {"thread_id": self.thread_id}}
199
+
200
+
201
+ def chatbot(self, state: AgentState):
202
+ messages = state["messages"]
203
+ original_query = messages[0].content
204
+ return {"messages": [self.llm_with_tools.invoke(messages)], "query": original_query}
205
+
206
+ def build_graph(self):
207
+ # Add chatbot state
208
+ graph_builder = StateGraph(AgentState)
209
+
210
+ # Add nodes
211
+ tool_node = BasicToolNode(tools=self.tools)
212
+ # tool_node = ToolNode(self.tools)
213
+ graph_builder.add_node("tools", tool_node)
214
+ graph_builder.add_node("chatbot", self.chatbot)
215
+ graph_builder.add_node("quote_finder", self.quote_finder.find_quotes_per_document)
216
+ graph_builder.add_node("quote_highlighter", self.quote_finder.highlight_quotes_in_document)
217
+ graph_builder.add_node("final_response_formatter", self.quote_finder.final_response_formatter)
218
+
219
+ # Add a conditional edge wherein the chatbot can decide whether or not to go to the tools
220
+ graph_builder.add_conditional_edges(
221
+ "chatbot",
222
+ tools_condition,
223
+ )
224
+
225
+ # Add fixed edges
226
+ graph_builder.add_edge(START, "chatbot")
227
+ graph_builder.add_edge("tools", "quote_finder")
228
+ graph_builder.add_edge("quote_finder", "quote_highlighter")
229
+ graph_builder.add_edge("quote_highlighter", "final_response_formatter")
230
+ graph_builder.add_edge("final_response_formatter", END)
231
+
232
+ # Instantiate the memory saver
233
+ memory = MemorySaver()
234
+
235
+ # Compile the graph
236
+ return graph_builder.compile(checkpointer=memory)
src/utils/qdrant_manager.py CHANGED
@@ -7,9 +7,10 @@ from langchain.schema import Document
7
  from langchain_openai import OpenAIEmbeddings
8
  from qdrant_client import QdrantClient
9
  from qdrant_client.models import Distance, VectorParams
10
-
11
  from config import settings
12
 
 
13
  # Qdrant Collections Params
14
 
15
  openai_embeddings = OpenAIEmbeddings(model=settings.EMBEDDINGS_MODEL_NAME)
 
7
  from langchain_openai import OpenAIEmbeddings
8
  from qdrant_client import QdrantClient
9
  from qdrant_client.models import Distance, VectorParams
10
+ from dotenv import load_dotenv
11
  from config import settings
12
 
13
+ load_dotenv()
14
  # Qdrant Collections Params
15
 
16
  openai_embeddings = OpenAIEmbeddings(model=settings.EMBEDDINGS_MODEL_NAME)