Spaces:
Runtime error
Runtime error
FilipinosRich
commited on
Merge pull request #2 from drift-ai/feature/test_at_scale
Browse files- Pipfile +3 -0
- Pipfile.lock +125 -237
- app.py +1 -2
- recruiting_assistant.py +20 -3
- test.py +166 -0
Pipfile
CHANGED
@@ -8,6 +8,9 @@ gradio = "*"
|
|
8 |
requests = "*"
|
9 |
openai = "*"
|
10 |
langchain = "*"
|
|
|
|
|
|
|
11 |
|
12 |
[dev-packages]
|
13 |
|
|
|
8 |
requests = "*"
|
9 |
openai = "*"
|
10 |
langchain = "*"
|
11 |
+
boto3 = "*"
|
12 |
+
utils = "*"
|
13 |
+
s3fs = "*"
|
14 |
|
15 |
[dev-packages]
|
16 |
|
Pipfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
{
|
2 |
"_meta": {
|
3 |
"hash": {
|
4 |
-
"sha256": "
|
5 |
},
|
6 |
"pipfile-spec": 6,
|
7 |
"requires": {
|
@@ -133,14 +133,6 @@
|
|
133 |
"markers": "python_version >= '3.7'",
|
134 |
"version": "==5.0.1"
|
135 |
},
|
136 |
-
"annotated-types": {
|
137 |
-
"hashes": [
|
138 |
-
"sha256:47cdc3490d9ac1506ce92c7aaa76c579dc3509ff11e098fc867e5130ab7be802",
|
139 |
-
"sha256:58da39888f92c276ad970249761ebea80ba544b77acddaa1a4d6cf78287d45fd"
|
140 |
-
],
|
141 |
-
"markers": "python_version >= '3.7'",
|
142 |
-
"version": "==0.5.0"
|
143 |
-
},
|
144 |
"anyio": {
|
145 |
"hashes": [
|
146 |
"sha256:44a3c9aba0f5defa43261a8b3efb97891f2bd7d804e0e1f56419befa1adfc780",
|
@@ -154,7 +146,7 @@
|
|
154 |
"sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15",
|
155 |
"sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"
|
156 |
],
|
157 |
-
"markers": "python_version
|
158 |
"version": "==4.0.2"
|
159 |
},
|
160 |
"attrs": {
|
@@ -165,13 +157,29 @@
|
|
165 |
"markers": "python_version >= '3.7'",
|
166 |
"version": "==23.1.0"
|
167 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
"certifi": {
|
169 |
"hashes": [
|
170 |
-
"sha256:
|
171 |
-
"sha256:
|
172 |
],
|
173 |
"markers": "python_version >= '3.6'",
|
174 |
-
"version": "==2023.
|
175 |
},
|
176 |
"charset-normalizer": {
|
177 |
"hashes": [
|
@@ -323,14 +331,6 @@
|
|
323 |
"markers": "python_version < '3.12' and python_version >= '3.7'",
|
324 |
"version": "==0.5.13"
|
325 |
},
|
326 |
-
"exceptiongroup": {
|
327 |
-
"hashes": [
|
328 |
-
"sha256:12c3e887d6485d16943a309616de20ae5582633e0a2eda17f4e10fd61c1e8af5",
|
329 |
-
"sha256:e346e69d186172ca7cf029c8c1d16235aa0e04035e5750b4b95039e65204328f"
|
330 |
-
],
|
331 |
-
"markers": "python_version < '3.11'",
|
332 |
-
"version": "==1.1.2"
|
333 |
-
},
|
334 |
"fastapi": {
|
335 |
"hashes": [
|
336 |
"sha256:271662daf986da8fa98dc2b7c7f61c4abdfdccfb4786d79ed8b2878f172c6d5f",
|
@@ -355,43 +355,43 @@
|
|
355 |
},
|
356 |
"fonttools": {
|
357 |
"hashes": [
|
358 |
-
"sha256:
|
359 |
-
"sha256:
|
360 |
-
"sha256:
|
361 |
-
"sha256:
|
362 |
-
"sha256:
|
363 |
-
"sha256:
|
364 |
-
"sha256:
|
365 |
-
"sha256:
|
366 |
-
"sha256:
|
367 |
-
"sha256:
|
368 |
-
"sha256:
|
369 |
-
"sha256:
|
370 |
-
"sha256:
|
371 |
-
"sha256:
|
372 |
-
"sha256:
|
373 |
-
"sha256:
|
374 |
-
"sha256:
|
375 |
-
"sha256:
|
376 |
-
"sha256:
|
377 |
-
"sha256:
|
378 |
-
"sha256:
|
379 |
-
"sha256:
|
380 |
-
"sha256:
|
381 |
-
"sha256:
|
382 |
-
"sha256:
|
383 |
-
"sha256:
|
384 |
-
"sha256:
|
385 |
-
"sha256:
|
386 |
-
"sha256:
|
387 |
-
"sha256:
|
388 |
-
"sha256:
|
389 |
-
"sha256:
|
390 |
-
"sha256:
|
391 |
-
"sha256:
|
392 |
],
|
393 |
"markers": "python_version >= '3.8'",
|
394 |
-
"version": "==4.41.
|
395 |
},
|
396 |
"frozenlist": {
|
397 |
"hashes": [
|
@@ -524,14 +524,6 @@
|
|
524 |
"markers": "python_version >= '3.5'",
|
525 |
"version": "==3.4"
|
526 |
},
|
527 |
-
"importlib-resources": {
|
528 |
-
"hashes": [
|
529 |
-
"sha256:4cf94875a8368bd89531a756df9a9ebe1f150e0f885030b461237bc7f2d905f2",
|
530 |
-
"sha256:d952faee11004c045f785bb5636e8f885bed30dc3c940d5d42798a2a4541c185"
|
531 |
-
],
|
532 |
-
"markers": "python_version < '3.10'",
|
533 |
-
"version": "==6.0.0"
|
534 |
-
},
|
535 |
"jinja2": {
|
536 |
"hashes": [
|
537 |
"sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852",
|
@@ -540,6 +532,14 @@
|
|
540 |
"markers": "python_version >= '3.7'",
|
541 |
"version": "==3.1.2"
|
542 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
543 |
"jsonschema": {
|
544 |
"hashes": [
|
545 |
"sha256:971be834317c22daaa9132340a51c01b50910724082c2c1a2ac87eeec153a3fe",
|
@@ -632,19 +632,19 @@
|
|
632 |
},
|
633 |
"langchain": {
|
634 |
"hashes": [
|
635 |
-
"sha256:
|
636 |
-
"sha256:
|
637 |
],
|
638 |
"index": "pypi",
|
639 |
-
"version": "==0.0.
|
640 |
},
|
641 |
"langsmith": {
|
642 |
"hashes": [
|
643 |
-
"sha256:
|
644 |
-
"sha256:
|
645 |
],
|
646 |
"markers": "python_version < '4.0' and python_full_version >= '3.8.1'",
|
647 |
-
"version": "==0.0.
|
648 |
},
|
649 |
"linkify-it-py": {
|
650 |
"hashes": [
|
@@ -917,37 +917,34 @@
|
|
917 |
},
|
918 |
"numpy": {
|
919 |
"hashes": [
|
920 |
-
"sha256:
|
921 |
-
"sha256:
|
922 |
-
"sha256:
|
923 |
-
"sha256:
|
924 |
-
"sha256:
|
925 |
-
"sha256:
|
926 |
-
"sha256:
|
927 |
-
"sha256:
|
928 |
-
"sha256:
|
929 |
-
"sha256:
|
930 |
-
"sha256:
|
931 |
-
"sha256:
|
932 |
-
"sha256:
|
933 |
-
"sha256:
|
934 |
-
"sha256:
|
935 |
-
"sha256:
|
936 |
-
"sha256:
|
937 |
-
"sha256:
|
938 |
-
"sha256:
|
939 |
-
"sha256:
|
940 |
-
"sha256:
|
941 |
-
"sha256:
|
942 |
-
"sha256:
|
943 |
-
"sha256:
|
944 |
-
"sha256:
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
],
|
949 |
-
"markers": "python_version >= '3.8'",
|
950 |
-
"version": "==1.24.4"
|
951 |
},
|
952 |
"openai": {
|
953 |
"hashes": [
|
@@ -1118,14 +1115,6 @@
|
|
1118 |
"markers": "python_version >= '3.8'",
|
1119 |
"version": "==10.0.0"
|
1120 |
},
|
1121 |
-
"pkgutil-resolve-name": {
|
1122 |
-
"hashes": [
|
1123 |
-
"sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174",
|
1124 |
-
"sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e"
|
1125 |
-
],
|
1126 |
-
"markers": "python_version < '3.9'",
|
1127 |
-
"version": "==1.3.10"
|
1128 |
-
},
|
1129 |
"pydantic": {
|
1130 |
"hashes": [
|
1131 |
"sha256:008c5e266c8aada206d0627a011504e14268a62091450210eda7c07fabe6963e",
|
@@ -1168,113 +1157,6 @@
|
|
1168 |
"markers": "python_version >= '3.7'",
|
1169 |
"version": "==1.10.11"
|
1170 |
},
|
1171 |
-
"pydantic-core": {
|
1172 |
-
"hashes": [
|
1173 |
-
"sha256:019c5c41941438570dfc7d3f0ae389b2425add1775a357ce1e83ed1434f943d6",
|
1174 |
-
"sha256:01f56d5ee70b1d39c0fd08372cc5142274070ab7181d17c86035f130eebc05b8",
|
1175 |
-
"sha256:055f7ea6b1fbb37880d66d70eefd22dd319b09c79d2cb99b1dbfeb34b653b0b2",
|
1176 |
-
"sha256:05b4bf8c58409586a7a04c858a86ab10f28c6c1a7c33da65e0326c59d5b0ab16",
|
1177 |
-
"sha256:06884c07956526ac9ebfef40fe21a11605569b8fc0e2054a375fb39c978bf48f",
|
1178 |
-
"sha256:06f33f695527f5a86e090f208978f9fd252c9cfc7e869d3b679bd71f7cb2c1fa",
|
1179 |
-
"sha256:0aa429578e23885b3984c49d687cd05ab06f0b908ea1711a8bf7e503b7f97160",
|
1180 |
-
"sha256:0b3d781c71b8bfb621ef23b9c874933e2cd33237c1a65cc20eeb37437f8e7e18",
|
1181 |
-
"sha256:0dc5f516b24d24bc9e8dd9305460899f38302b3c4f9752663b396ef9848557bf",
|
1182 |
-
"sha256:0fc7e0b056b66cc536e97ef60f48b3b289f6b3b62ac225afd4b22a42434617bf",
|
1183 |
-
"sha256:12be3b5f54f8111ca38e6b7277f26c23ba5cb3344fae06f879a0a93dfc8b479e",
|
1184 |
-
"sha256:1624baa76d1740711b2048f302ae9a6d73d277c55a8c3e88b53b773ebf73a971",
|
1185 |
-
"sha256:1aefebb506bc1fe355d91d25f12bcdea7f4d7c2d9f0f6716dd025543777c99a5",
|
1186 |
-
"sha256:1bcfb7be905aa849bd882262e1df3f75b564e2f708b4b4c7ad2d3deaf5410562",
|
1187 |
-
"sha256:1c119e9227487ad3d7c3c737d896afe548a6be554091f9745da1f4b489c40561",
|
1188 |
-
"sha256:20d710c1f79af930b8891bcebd84096798e4387ab64023ef41521d58f21277d3",
|
1189 |
-
"sha256:2183a9e18cdc0de53bdaa1675f237259162abeb62d6ac9e527c359c1074dc55d",
|
1190 |
-
"sha256:27babb9879bf2c45ed655d02639f4c30e2b9ef1b71ce59c2305bbf7287910a18",
|
1191 |
-
"sha256:27c1bbfb9d84a75cf33b7f19b53c29eb7ead99b235fce52aced5507174ab8f98",
|
1192 |
-
"sha256:2b79f3681481f4424d7845cc7a261d5a4baa810d656b631fa844dc9967b36a7b",
|
1193 |
-
"sha256:2f10aa5452b865818dd0137f568d443f5e93b60a27080a01aa4b7512c7ba13a3",
|
1194 |
-
"sha256:309f45d4d7481d6f09cb9e35c72caa0e50add4a30bb08c04c5fe5956a0158633",
|
1195 |
-
"sha256:31acc37288b8e69e4849f618c3d5cf13b58077c1a1ff9ade0b3065ba974cd385",
|
1196 |
-
"sha256:37c5028cebdf731298724070838fb3a71ef1fbd201d193d311ac2cbdbca25a23",
|
1197 |
-
"sha256:38a0e7ee65c8999394d92d9c724434cb629279d19844f2b69d9bbc46dc8b8b61",
|
1198 |
-
"sha256:39aa09ed7ce2a648c904f79032d16dda29e6913112af8465a7bf710eef23c7ca",
|
1199 |
-
"sha256:3cd7ee8bbfab277ab56e272221886fd33a1b5943fbf45ae9195aa6a48715a8a0",
|
1200 |
-
"sha256:3d642e5c029e2acfacf6aa0a7a3e822086b3b777c70d364742561f9ca64c1ffc",
|
1201 |
-
"sha256:41bbc2678a5b6a19371b2cb51f30ccea71f0c14b26477d2d884fed761cea42c7",
|
1202 |
-
"sha256:45327fc57afbe3f2c3d7f54a335d5cecee8a9fdb3906a2fbed8af4092f4926df",
|
1203 |
-
"sha256:4542c98b8364b976593703a2dda97377433b102f380b61bc3a2cbc2fbdae1d1f",
|
1204 |
-
"sha256:45fa1e8ad6f4367ad73674ca560da8e827cc890eaf371f3ee063d6d7366a207b",
|
1205 |
-
"sha256:4638ebc17de08c2f3acba557efeb6f195c88b7299d8c55c0bb4e20638bbd4d03",
|
1206 |
-
"sha256:464bf799b422be662e5e562e62beeffc9eaa907d381a9d63a2556615bbda286d",
|
1207 |
-
"sha256:4788135db4bd83a5edc3522b11544b013be7d25b74b155e08dd3b20cd6663bbb",
|
1208 |
-
"sha256:47e8f034be31390a8f525431eb5e803a78ce7e2e11b32abf5361a972e14e6b61",
|
1209 |
-
"sha256:4824eb018f0a4680b1e434697a9bf3f41c7799b80076d06530cbbd212e040ccc",
|
1210 |
-
"sha256:4bf20c9722821fce766e685718e739deeccc60d6bc7be5029281db41f999ee0c",
|
1211 |
-
"sha256:4d3097c39d7d4e8dba2ef86de171dcccad876c36d8379415ba18a5a4d0533510",
|
1212 |
-
"sha256:4d889d498fce64bfcd8adf1a78579a7f626f825cbeb2956a24a29b35f9a1df32",
|
1213 |
-
"sha256:4d965c7c4b40d1cedec9188782e98bd576f9a04868835604200c3a6e817b824f",
|
1214 |
-
"sha256:4e26944e64ecc1d7b19db954c0f7b471f3b141ec8e1a9f57cfe27671525cd248",
|
1215 |
-
"sha256:534f3f63c000f08050c6f7f4378bf2b52d7ba9214e9d35e3f60f7ad24a4d6425",
|
1216 |
-
"sha256:539432f911686cb80284c30b33eaf9f4fd9a11e1111fe0dc98fdbdce69b49821",
|
1217 |
-
"sha256:5af2d43b1978958d91351afbcc9b4d0cfe144c46c61740e82aaac8bb39ab1a4d",
|
1218 |
-
"sha256:5cfb5ac4e82c47d5dc25b209dd4c3989e284b80109f9e08b33c895080c424b4f",
|
1219 |
-
"sha256:616b3451b05ca63b8f433c627f68046b39543faeaa4e50d8c6699a2a1e4b85a5",
|
1220 |
-
"sha256:6441a29f42585f085db0c04cd0557d4cbbb46fa68a0972409b1cfe9f430280c1",
|
1221 |
-
"sha256:64bfd2c35a2c350f73ac52dc134d8775f93359c4c969280a6fe5301b5b6e7431",
|
1222 |
-
"sha256:6ca34c29fbd6592de5fd39e80c1993634d704c4e7e14ba54c87b2c7c53da68fe",
|
1223 |
-
"sha256:73929a2fb600a2333fce2efd92596cff5e6bf8946e20e93c067b220760064862",
|
1224 |
-
"sha256:73f62bb7fd862d9bcd886e10612bade6fe042eda8b47e8c129892bcfb7b45e84",
|
1225 |
-
"sha256:7584171eb3115acd4aba699bc836634783f5bd5aab131e88d8eeb8a3328a4a72",
|
1226 |
-
"sha256:78b1ac0151271ce62bc2b33755f1043eda6a310373143a2f27e2bcd3d5fc8633",
|
1227 |
-
"sha256:7cb496e934b71f1ade844ab91d6ccac78a3520e5df02fdb2357f85a71e541e69",
|
1228 |
-
"sha256:7d55e38a89ec2ae17b2fa7ffeda6b70f63afab1888bd0d57aaa7b7879760acb4",
|
1229 |
-
"sha256:7ecf0a67b212900e92f328181fed02840d74ed39553cdb38d27314e2b9c89dfa",
|
1230 |
-
"sha256:85cd9c0af34e371390e3cb2f3a470b0b40cc07568c1e966c638c49062be6352d",
|
1231 |
-
"sha256:8ba3073eb38a1294e8c7902989fb80a7a147a69db2396818722bd078476586a0",
|
1232 |
-
"sha256:8d0dbcc57839831ae79fd24b1b83d42bc9448d79feaf3ed3fb5cbf94ffbf3eb7",
|
1233 |
-
"sha256:9342de50824b40f55d2600f66c6f9a91a3a24851eca39145a749a3dc804ee599",
|
1234 |
-
"sha256:937c0fe9538f1212b62df6a68f8d78df3572fe3682d9a0dd8851eac8a4e46063",
|
1235 |
-
"sha256:9eff3837d447fccf2ac38c259b14ab9cbde700df355a45a1f3ff244d5e78f8b6",
|
1236 |
-
"sha256:9ff322c7e1030543d35d83bb521b69114d3d150750528d7757544f639def9ad6",
|
1237 |
-
"sha256:a3e9a18401a28db4358da2e191508702dbf065f2664c710708cdf9552b9fa50c",
|
1238 |
-
"sha256:a439fd0d45d51245bbde799726adda5bd18aed3fa2b01ab2e6a64d6d13776fa3",
|
1239 |
-
"sha256:a666134b41712e30a71afaa26deeb4da374179f769fa49784cdf0e7698880fab",
|
1240 |
-
"sha256:ad442b8585ed4a3c2d22e4bf7b465d9b7d281e055b09719a8aeb5b576422dc9b",
|
1241 |
-
"sha256:ad46027dbd5c1db87dc0b49becbe23093b143a20302028d387dae37ee5ef95f5",
|
1242 |
-
"sha256:ad814864aba263be9c83ada44a95f72d10caabbf91589321f95c29c902bdcff0",
|
1243 |
-
"sha256:adcb9c8848e15c613e483e0b99767ae325af27fe0dbd866df01fe5849d06e6e1",
|
1244 |
-
"sha256:af693a89db6d6ac97dd84dd7769b3f2bd9007b578127d0e7dda03053f4d3b34b",
|
1245 |
-
"sha256:afa8808159169368b66e4fbeafac6c6fd8f26246dc4d0dcc2caf94bd9cf1b828",
|
1246 |
-
"sha256:ba2b807d2b62c446120906b8580cddae1d76d3de4efbb95ccc87f5e35c75b4b2",
|
1247 |
-
"sha256:ba6a8cf089222a171b8f84e6ec2d10f7a9d14f26be3a347b14775a8741810676",
|
1248 |
-
"sha256:bf3ed993bdf4754909f175ff348cf8f78d4451215b8aa338633f149ca3b1f37a",
|
1249 |
-
"sha256:bf6a1d2c920cc9528e884850a4b2ee7629e3d362d5c44c66526d4097bbb07a1a",
|
1250 |
-
"sha256:c089d8e7f1b4db08b2f8e4107304eec338df046275dad432635a9be9531e2fc8",
|
1251 |
-
"sha256:c24465dd11b65c8510f251b095fc788c7c91481c81840112fe3f76c30793a455",
|
1252 |
-
"sha256:cb08fab0fc1db15c277b72e33ac74ad9c0c789413da8984a3eacb22a94b42ef4",
|
1253 |
-
"sha256:cd782807d35c8a41aaa7d30b5107784420eefd9fdc1c760d86007d43ae00b15d",
|
1254 |
-
"sha256:d5146a6749b1905e04e62e0ad4622f079e5582f8b3abef5fb64516c623127908",
|
1255 |
-
"sha256:dcbff997f47d45bf028bda4c3036bb3101e89a3df271281d392b6175f71c71d1",
|
1256 |
-
"sha256:dd3b023f3317dbbbc775e43651ce1a31a9cea46216ad0b5be37afc18a2007699",
|
1257 |
-
"sha256:deeb64335f489c3c11949cbd1d1668b3f1fb2d1c6a5bf40e126ef7bf95f9fa40",
|
1258 |
-
"sha256:e09d9f6d722de9d4c1c5f122ea9bc6b25a05f975457805af4dcab7b0128aacbf",
|
1259 |
-
"sha256:e33fcbea3b63a339dd94de0fc442fefacfe681cc7027ce63f67af9f7ceec7422",
|
1260 |
-
"sha256:e3ed6834cc005798187a56c248a2240207cb8ffdda1c89e9afda4c3d526c2ea0",
|
1261 |
-
"sha256:e4208f23f12d0ad206a07a489ef4cb15722c10b62774c4460ee4123250be938e",
|
1262 |
-
"sha256:e427b66596a6441a5607dfc0085b47d36073f88da7ac48afd284263b9b99e6ce",
|
1263 |
-
"sha256:e72ac299a6bf732a60852d052acf3999d234686755a02ba111e85e7ebf8155b1",
|
1264 |
-
"sha256:ea955e4ed21f4bbb9b83fea09fc6af0bed82e69ecf6b35ec89237a0a49633033",
|
1265 |
-
"sha256:ed5babdcd3d052ba5cf8832561f18df20778c7ccf12587b2d82f7bf3bf259a0e",
|
1266 |
-
"sha256:eda1a89c4526826c0a87d33596a4cd15b8f58e9250f503e39af1699ba9c878e8",
|
1267 |
-
"sha256:ef1fd1b24e9bcddcb168437686677104e205c8e25b066e73ffdf331d3bb8792b",
|
1268 |
-
"sha256:ef6a222d54f742c24f6b143aab088702db3a827b224e75b9dd28b38597c595fe",
|
1269 |
-
"sha256:f3dd5333049b5b3faa739e0f40b77cc8b7a1aded2f2da0e28794c81586d7b08a",
|
1270 |
-
"sha256:f60e31e3e15e8c294bf70c60f8ae4d0c3caf3af8f26466e9aa8ea4c01302749b",
|
1271 |
-
"sha256:f642313d559f9d9a00c4de6820124059cc3342a0d0127b18301de2c680d5ea40",
|
1272 |
-
"sha256:f868e731a18b403b88aa434d960489ceeed0ddeb44ebc02389540731a67705e0",
|
1273 |
-
"sha256:f93c867e5e85584a28c6a6feb6f2086d717266eb5d1210d096dd717b7f4dec04"
|
1274 |
-
],
|
1275 |
-
"markers": "python_version >= '3.7'",
|
1276 |
-
"version": "==2.3.0"
|
1277 |
-
},
|
1278 |
"pydub": {
|
1279 |
"hashes": [
|
1280 |
"sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6",
|
@@ -1282,14 +1164,6 @@
|
|
1282 |
],
|
1283 |
"version": "==0.25.1"
|
1284 |
},
|
1285 |
-
"pygments": {
|
1286 |
-
"hashes": [
|
1287 |
-
"sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c",
|
1288 |
-
"sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"
|
1289 |
-
],
|
1290 |
-
"markers": "python_version >= '3.7'",
|
1291 |
-
"version": "==2.15.1"
|
1292 |
-
},
|
1293 |
"pyparsing": {
|
1294 |
"hashes": [
|
1295 |
"sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb",
|
@@ -1486,6 +1360,22 @@
|
|
1486 |
"markers": "python_version >= '3.8'",
|
1487 |
"version": "==0.9.2"
|
1488 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1489 |
"semantic-version": {
|
1490 |
"hashes": [
|
1491 |
"sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c",
|
@@ -1622,18 +1512,24 @@
|
|
1622 |
},
|
1623 |
"urllib3": {
|
1624 |
"hashes": [
|
1625 |
-
"sha256:
|
1626 |
-
"sha256:
|
1627 |
],
|
1628 |
-
"markers": "python_version >= '
|
1629 |
-
"version": "==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1630 |
},
|
1631 |
"uvicorn": {
|
1632 |
"hashes": [
|
1633 |
"sha256:1d55d46b83ee4ce82b4e82f621f2050adb3eb7b5481c13f9af1744951cae2f1f",
|
1634 |
"sha256:da9b0c8443b2d7ee9db00a345f1eee6db7317432c9d4400f5049cc8d358383be"
|
1635 |
],
|
1636 |
-
"index": "pypi",
|
1637 |
"markers": "python_version >= '3.8'",
|
1638 |
"version": "==0.23.1"
|
1639 |
},
|
@@ -1792,14 +1688,6 @@
|
|
1792 |
],
|
1793 |
"markers": "python_version >= '3.7'",
|
1794 |
"version": "==1.9.2"
|
1795 |
-
},
|
1796 |
-
"zipp": {
|
1797 |
-
"hashes": [
|
1798 |
-
"sha256:679e51dd4403591b2d6838a48de3d283f3d188412a9782faadf845f298736ba0",
|
1799 |
-
"sha256:ebc15946aa78bd63458992fc81ec3b6f7b1e92d51c35e6de1c3804e73b799147"
|
1800 |
-
],
|
1801 |
-
"markers": "python_version < '3.10'",
|
1802 |
-
"version": "==3.16.2"
|
1803 |
}
|
1804 |
},
|
1805 |
"develop": {}
|
|
|
1 |
{
|
2 |
"_meta": {
|
3 |
"hash": {
|
4 |
+
"sha256": "baada24f686970aa797e81ab57198eff4adaa42274331ba31f06e107dacc04af"
|
5 |
},
|
6 |
"pipfile-spec": 6,
|
7 |
"requires": {
|
|
|
133 |
"markers": "python_version >= '3.7'",
|
134 |
"version": "==5.0.1"
|
135 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
"anyio": {
|
137 |
"hashes": [
|
138 |
"sha256:44a3c9aba0f5defa43261a8b3efb97891f2bd7d804e0e1f56419befa1adfc780",
|
|
|
146 |
"sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15",
|
147 |
"sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"
|
148 |
],
|
149 |
+
"markers": "python_version >= '3.6'",
|
150 |
"version": "==4.0.2"
|
151 |
},
|
152 |
"attrs": {
|
|
|
157 |
"markers": "python_version >= '3.7'",
|
158 |
"version": "==23.1.0"
|
159 |
},
|
160 |
+
"boto3": {
|
161 |
+
"hashes": [
|
162 |
+
"sha256:67001b3f512cbe2e00e352c65fb443b504e5e388fee39d73bcc42da1ae87d9e3",
|
163 |
+
"sha256:cb8af03f553f1c7db7137bc897785baeeaa97b8fde483eb1cdb1f1ef3cec9cb7"
|
164 |
+
],
|
165 |
+
"index": "pypi",
|
166 |
+
"version": "==1.28.10"
|
167 |
+
},
|
168 |
+
"botocore": {
|
169 |
+
"hashes": [
|
170 |
+
"sha256:736a9412f405d6985570c4a87b533c2396dd8d4042d8c7a0ca14e73d4f1bcf9d",
|
171 |
+
"sha256:a3bfd3627a490faedf37d79373d6957936d7720888ca85466e0471cb921e4557"
|
172 |
+
],
|
173 |
+
"markers": "python_version >= '3.7'",
|
174 |
+
"version": "==1.31.10"
|
175 |
+
},
|
176 |
"certifi": {
|
177 |
"hashes": [
|
178 |
+
"sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082",
|
179 |
+
"sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"
|
180 |
],
|
181 |
"markers": "python_version >= '3.6'",
|
182 |
+
"version": "==2023.7.22"
|
183 |
},
|
184 |
"charset-normalizer": {
|
185 |
"hashes": [
|
|
|
331 |
"markers": "python_version < '3.12' and python_version >= '3.7'",
|
332 |
"version": "==0.5.13"
|
333 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
334 |
"fastapi": {
|
335 |
"hashes": [
|
336 |
"sha256:271662daf986da8fa98dc2b7c7f61c4abdfdccfb4786d79ed8b2878f172c6d5f",
|
|
|
355 |
},
|
356 |
"fonttools": {
|
357 |
"hashes": [
|
358 |
+
"sha256:1df1b6f4c7c4bc8201eb47f3b268adbf2539943aa43c400f84556557e3e109c0",
|
359 |
+
"sha256:2a22b2c425c698dcd5d6b0ff0b566e8e9663172118db6fd5f1941f9b8063da9b",
|
360 |
+
"sha256:33191f062549e6bb1a4782c22a04ebd37009c09360e2d6686ac5083774d06d95",
|
361 |
+
"sha256:38cdecd8f1fd4bf4daae7fed1b3170dfc1b523388d6664b2204b351820aa78a7",
|
362 |
+
"sha256:3ae64303ba670f8959fdaaa30ba0c2dabe75364fdec1caeee596c45d51ca3425",
|
363 |
+
"sha256:3d1f9471134affc1e3b1b806db6e3e2ad3fa99439e332f1881a474c825101096",
|
364 |
+
"sha256:4e3334d51f0e37e2c6056e67141b2adabc92613a968797e2571ca8a03bd64773",
|
365 |
+
"sha256:4edc795533421e98f60acee7d28fc8d941ff5ac10f44668c9c3635ad72ae9045",
|
366 |
+
"sha256:547ab36a799dded58a46fa647266c24d0ed43a66028cd1cd4370b246ad426cac",
|
367 |
+
"sha256:59eba8b2e749a1de85760da22333f3d17c42b66e03758855a12a2a542723c6e7",
|
368 |
+
"sha256:704bccd69b0abb6fab9f5e4d2b75896afa48b427caa2c7988792a2ffce35b441",
|
369 |
+
"sha256:73ef0bb5d60eb02ba4d3a7d23ada32184bd86007cb2de3657cfcb1175325fc83",
|
370 |
+
"sha256:7763316111df7b5165529f4183a334aa24c13cdb5375ffa1dc8ce309c8bf4e5c",
|
371 |
+
"sha256:849ec722bbf7d3501a0e879e57dec1fc54919d31bff3f690af30bb87970f9784",
|
372 |
+
"sha256:891cfc5a83b0307688f78b9bb446f03a7a1ad981690ac8362f50518bc6153975",
|
373 |
+
"sha256:952cb405f78734cf6466252fec42e206450d1a6715746013f64df9cbd4f896fa",
|
374 |
+
"sha256:a7bbb290d13c6dd718ec2c3db46fe6c5f6811e7ea1e07f145fd8468176398224",
|
375 |
+
"sha256:a9b3cc10dc9e0834b6665fd63ae0c6964c6bc3d7166e9bc84772e0edd09f9fa2",
|
376 |
+
"sha256:aaaef294d8e411f0ecb778a0aefd11bb5884c9b8333cc1011bdaf3b58ca4bd75",
|
377 |
+
"sha256:afce2aeb80be72b4da7dd114f10f04873ff512793d13ce0b19d12b2a4c44c0f0",
|
378 |
+
"sha256:b0938ebbeccf7c80bb9a15e31645cf831572c3a33d5cc69abe436e7000c61b14",
|
379 |
+
"sha256:b2d1ee95be42b80d1f002d1ee0a51d7a435ea90d36f1a5ae331be9962ee5a3f1",
|
380 |
+
"sha256:b927e5f466d99c03e6e20961946314b81d6e3490d95865ef88061144d9f62e38",
|
381 |
+
"sha256:bdd729744ae7ecd7f7311ad25d99da4999003dcfe43b436cf3c333d4e68de73d",
|
382 |
+
"sha256:c2071267deaa6d93cb16288613419679c77220543551cbe61da02c93d92df72f",
|
383 |
+
"sha256:cac73bbef7734e78c60949da11c4903ee5837168e58772371bd42a75872f4f82",
|
384 |
+
"sha256:da2c2964bdc827ba6b8a91dc6de792620be4da3922c4cf0599f36a488c07e2b2",
|
385 |
+
"sha256:e16a9449f21a93909c5be2f5ed5246420f2316e94195dbfccb5238aaa38f9751",
|
386 |
+
"sha256:e5c2b0a95a221838991e2f0e455dec1ca3a8cc9cd54febd68cc64d40fdb83669",
|
387 |
+
"sha256:ec453a45778524f925a8f20fd26a3326f398bfc55d534e37bab470c5e415caa1",
|
388 |
+
"sha256:edee0900cf0eedb29d17c7876102d6e5a91ee333882b1f5abc83e85b934cadb5",
|
389 |
+
"sha256:f14f3ccea4cc7dd1b277385adf3c3bf18f9860f87eab9c2fb650b0af16800f55",
|
390 |
+
"sha256:f240d9adf0583ac8fc1646afe7f4ac039022b6f8fa4f1575a2cfa53675360b69",
|
391 |
+
"sha256:f48602c0b3fd79cd83a34c40af565fe6db7ac9085c8823b552e6e751e3a5b8be"
|
392 |
],
|
393 |
"markers": "python_version >= '3.8'",
|
394 |
+
"version": "==4.41.1"
|
395 |
},
|
396 |
"frozenlist": {
|
397 |
"hashes": [
|
|
|
524 |
"markers": "python_version >= '3.5'",
|
525 |
"version": "==3.4"
|
526 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
527 |
"jinja2": {
|
528 |
"hashes": [
|
529 |
"sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852",
|
|
|
532 |
"markers": "python_version >= '3.7'",
|
533 |
"version": "==3.1.2"
|
534 |
},
|
535 |
+
"jmespath": {
|
536 |
+
"hashes": [
|
537 |
+
"sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980",
|
538 |
+
"sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"
|
539 |
+
],
|
540 |
+
"markers": "python_version >= '3.7'",
|
541 |
+
"version": "==1.0.1"
|
542 |
+
},
|
543 |
"jsonschema": {
|
544 |
"hashes": [
|
545 |
"sha256:971be834317c22daaa9132340a51c01b50910724082c2c1a2ac87eeec153a3fe",
|
|
|
632 |
},
|
633 |
"langchain": {
|
634 |
"hashes": [
|
635 |
+
"sha256:110d68116b9bf4eff3aa342a3d6e521f841f9af22fcc02ed52699ada41a46b90",
|
636 |
+
"sha256:698669880d94498ce90f33b28222d46be6297c7b280a399612af7e7a5af39dd6"
|
637 |
],
|
638 |
"index": "pypi",
|
639 |
+
"version": "==0.0.240"
|
640 |
},
|
641 |
"langsmith": {
|
642 |
"hashes": [
|
643 |
+
"sha256:146379f4ed8a7a28794c52b74009d40875371080a16a87bba95c410160b00b92",
|
644 |
+
"sha256:d3c367fa72b88a226919e6c902e34d83791efd1250f284e84cf17eacc37558b9"
|
645 |
],
|
646 |
"markers": "python_version < '4.0' and python_full_version >= '3.8.1'",
|
647 |
+
"version": "==0.0.14"
|
648 |
},
|
649 |
"linkify-it-py": {
|
650 |
"hashes": [
|
|
|
917 |
},
|
918 |
"numpy": {
|
919 |
"hashes": [
|
920 |
+
"sha256:012097b5b0d00a11070e8f2e261128c44157a8689f7dedcf35576e525893f4fe",
|
921 |
+
"sha256:0d3fe3dd0506a28493d82dc3cf254be8cd0d26f4008a417385cbf1ae95b54004",
|
922 |
+
"sha256:0def91f8af6ec4bb94c370e38c575855bf1d0be8a8fbfba42ef9c073faf2cf19",
|
923 |
+
"sha256:1a180429394f81c7933634ae49b37b472d343cccb5bb0c4a575ac8bbc433722f",
|
924 |
+
"sha256:1d5d3c68e443c90b38fdf8ef40e60e2538a27548b39b12b73132456847f4b631",
|
925 |
+
"sha256:20e1266411120a4f16fad8efa8e0454d21d00b8c7cee5b5ccad7565d95eb42dd",
|
926 |
+
"sha256:247d3ffdd7775bdf191f848be8d49100495114c82c2bd134e8d5d075fb386a1c",
|
927 |
+
"sha256:35a9527c977b924042170a0887de727cd84ff179e478481404c5dc66b4170009",
|
928 |
+
"sha256:38eb6548bb91c421261b4805dc44def9ca1a6eef6444ce35ad1669c0f1a3fc5d",
|
929 |
+
"sha256:3d7abcdd85aea3e6cdddb59af2350c7ab1ed764397f8eec97a038ad244d2d105",
|
930 |
+
"sha256:41a56b70e8139884eccb2f733c2f7378af06c82304959e174f8e7370af112e09",
|
931 |
+
"sha256:4a90725800caeaa160732d6b31f3f843ebd45d6b5f3eec9e8cc287e30f2805bf",
|
932 |
+
"sha256:6b82655dd8efeea69dbf85d00fca40013d7f503212bc5259056244961268b66e",
|
933 |
+
"sha256:6c6c9261d21e617c6dc5eacba35cb68ec36bb72adcff0dee63f8fbc899362588",
|
934 |
+
"sha256:77d339465dff3eb33c701430bcb9c325b60354698340229e1dff97745e6b3efa",
|
935 |
+
"sha256:791f409064d0a69dd20579345d852c59822c6aa087f23b07b1b4e28ff5880fcb",
|
936 |
+
"sha256:9a3a9f3a61480cc086117b426a8bd86869c213fc4072e606f01c4e4b66eb92bf",
|
937 |
+
"sha256:c1516db588987450b85595586605742879e50dcce923e8973f79529651545b57",
|
938 |
+
"sha256:c40571fe966393b212689aa17e32ed905924120737194b5d5c1b20b9ed0fb171",
|
939 |
+
"sha256:d412c1697c3853c6fc3cb9751b4915859c7afe6a277c2bf00acf287d56c4e625",
|
940 |
+
"sha256:d5154b1a25ec796b1aee12ac1b22f414f94752c5f94832f14d8d6c9ac40bcca6",
|
941 |
+
"sha256:d736b75c3f2cb96843a5c7f8d8ccc414768d34b0a75f466c05f3a739b406f10b",
|
942 |
+
"sha256:e8f6049c4878cb16960fbbfb22105e49d13d752d4d8371b55110941fb3b17800",
|
943 |
+
"sha256:f76aebc3358ade9eacf9bc2bb8ae589863a4f911611694103af05346637df1b7",
|
944 |
+
"sha256:fd67b306320dcadea700a8f79b9e671e607f8696e98ec255915c0c6d6b818503"
|
945 |
+
],
|
946 |
+
"markers": "python_version >= '3.9'",
|
947 |
+
"version": "==1.25.1"
|
|
|
|
|
|
|
948 |
},
|
949 |
"openai": {
|
950 |
"hashes": [
|
|
|
1115 |
"markers": "python_version >= '3.8'",
|
1116 |
"version": "==10.0.0"
|
1117 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1118 |
"pydantic": {
|
1119 |
"hashes": [
|
1120 |
"sha256:008c5e266c8aada206d0627a011504e14268a62091450210eda7c07fabe6963e",
|
|
|
1157 |
"markers": "python_version >= '3.7'",
|
1158 |
"version": "==1.10.11"
|
1159 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1160 |
"pydub": {
|
1161 |
"hashes": [
|
1162 |
"sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6",
|
|
|
1164 |
],
|
1165 |
"version": "==0.25.1"
|
1166 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1167 |
"pyparsing": {
|
1168 |
"hashes": [
|
1169 |
"sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb",
|
|
|
1360 |
"markers": "python_version >= '3.8'",
|
1361 |
"version": "==0.9.2"
|
1362 |
},
|
1363 |
+
"s3fs": {
|
1364 |
+
"hashes": [
|
1365 |
+
"sha256:2ca5de8dc18ad7ad350c0bd01aef0406aa5d0fff78a561f0f710f9d9858abdd0",
|
1366 |
+
"sha256:91c1dfb45e5217bd441a7a560946fe865ced6225ff7eb0fb459fe6e601a95ed3"
|
1367 |
+
],
|
1368 |
+
"index": "pypi",
|
1369 |
+
"version": "==0.4.2"
|
1370 |
+
},
|
1371 |
+
"s3transfer": {
|
1372 |
+
"hashes": [
|
1373 |
+
"sha256:3c0da2d074bf35d6870ef157158641178a4204a6e689e82546083e31e0311346",
|
1374 |
+
"sha256:640bb492711f4c0c0905e1f62b6aaeb771881935ad27884852411f8e9cacbca9"
|
1375 |
+
],
|
1376 |
+
"markers": "python_version >= '3.7'",
|
1377 |
+
"version": "==0.6.1"
|
1378 |
+
},
|
1379 |
"semantic-version": {
|
1380 |
"hashes": [
|
1381 |
"sha256:bdabb6d336998cbb378d4b9db3a4b56a1e3235701dc05ea2690d9a997ed5041c",
|
|
|
1512 |
},
|
1513 |
"urllib3": {
|
1514 |
"hashes": [
|
1515 |
+
"sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f",
|
1516 |
+
"sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14"
|
1517 |
],
|
1518 |
+
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
|
1519 |
+
"version": "==1.26.16"
|
1520 |
+
},
|
1521 |
+
"utils": {
|
1522 |
+
"hashes": [
|
1523 |
+
"sha256:ff04549b95deb2fd7a82ddaea077e2f41209079e2482df231c358770b27b72a7"
|
1524 |
+
],
|
1525 |
+
"index": "pypi",
|
1526 |
+
"version": "==1.0.1"
|
1527 |
},
|
1528 |
"uvicorn": {
|
1529 |
"hashes": [
|
1530 |
"sha256:1d55d46b83ee4ce82b4e82f621f2050adb3eb7b5481c13f9af1744951cae2f1f",
|
1531 |
"sha256:da9b0c8443b2d7ee9db00a345f1eee6db7317432c9d4400f5049cc8d358383be"
|
1532 |
],
|
|
|
1533 |
"markers": "python_version >= '3.8'",
|
1534 |
"version": "==0.23.1"
|
1535 |
},
|
|
|
1688 |
],
|
1689 |
"markers": "python_version >= '3.7'",
|
1690 |
"version": "==1.9.2"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1691 |
}
|
1692 |
},
|
1693 |
"develop": {}
|
app.py
CHANGED
@@ -2,7 +2,6 @@ import json
|
|
2 |
import os
|
3 |
import gradio as gr
|
4 |
import requests
|
5 |
-
import intro
|
6 |
import recruiting_assistant
|
7 |
|
8 |
|
@@ -103,7 +102,7 @@ with demo:
|
|
103 |
outputs=[text_intro, evaluation]
|
104 |
)
|
105 |
|
106 |
-
|
107 |
examples=examples,
|
108 |
fn=search_resume,
|
109 |
inputs=text_vacancy,
|
|
|
2 |
import os
|
3 |
import gradio as gr
|
4 |
import requests
|
|
|
5 |
import recruiting_assistant
|
6 |
|
7 |
|
|
|
102 |
outputs=[text_intro, evaluation]
|
103 |
)
|
104 |
|
105 |
+
gr.Examples(
|
106 |
examples=examples,
|
107 |
fn=search_resume,
|
108 |
inputs=text_vacancy,
|
recruiting_assistant.py
CHANGED
@@ -171,9 +171,26 @@ def create_intro(vacancy=vacancy, resume=resume):
|
|
171 |
|
172 |
result = match_resume_vacancy_skills_chain({"vacancy": vacancy, "resume": resume})
|
173 |
print(result)
|
174 |
-
return result["introduction_email"], json.dumps({"resume skills":result['resume_skills'], "check_past_experiences": result['check_past_experiences']}, indent=4)
|
175 |
|
176 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
|
178 |
if __name__ == '__main__':
|
179 |
-
create_intro(vacancy=vacancy,resume=resume)
|
|
|
171 |
|
172 |
result = match_resume_vacancy_skills_chain({"vacancy": vacancy, "resume": resume})
|
173 |
print(result)
|
|
|
174 |
|
175 |
+
resume_skills = json.loads(result['resume_skills'])
|
176 |
+
relevant_skills = len(resume_skills["skills_present"])
|
177 |
+
total_skills = len(resume_skills["skills_present"] + resume_skills["skills_not_present"])
|
178 |
+
score_skills = round(100.0*(relevant_skills/total_skills),2)
|
179 |
+
|
180 |
+
|
181 |
+
check_past_experiences = json.loads(result['check_past_experiences'])
|
182 |
+
relevant_experiences = len(check_past_experiences["relevant_experiences"])
|
183 |
+
total_experiences = len(check_past_experiences["relevant_experiences"] + check_past_experiences["irrelevant_experiences"])
|
184 |
+
score_experiences = round(100.0*(relevant_experiences/total_experiences),2)
|
185 |
+
|
186 |
+
new_line = '\n'
|
187 |
+
|
188 |
+
score = f"""
|
189 |
+
Skills (Score: {score_skills}%)
|
190 |
+
Relevant Skills: {",".join(resume_skills["skills_present"])}
|
191 |
+
Not Relevant Skills: {",".join(resume_skills["skills_not_present"])}
|
192 |
+
"""
|
193 |
+
return result["introduction_email"], score
|
194 |
|
195 |
if __name__ == '__main__':
|
196 |
+
create_intro(vacancy=vacancy,resume=resume)
|
test.py
ADDED
@@ -0,0 +1,166 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import boto3
|
2 |
+
import os
|
3 |
+
import json
|
4 |
+
import pandas as pd
|
5 |
+
from urllib.parse import urlparse
|
6 |
+
import random
|
7 |
+
|
8 |
+
from langchain.chat_models import ChatOpenAI
|
9 |
+
from langchain.prompts import ChatPromptTemplate
|
10 |
+
from langchain.chains import LLMChain, SequentialChain
|
11 |
+
|
12 |
+
llm = ChatOpenAI(temperature=0.0, openai_api_key=os.environ["OPENAI"])
|
13 |
+
|
14 |
+
|
15 |
+
def generate_skills() -> list:
|
16 |
+
template_generate_skills = """
|
17 |
+
Can you generate me a list of skills you would need to be successfully employed in a Data Scientist role?
|
18 |
+
Return 10 skills as a JSON list.
|
19 |
+
"""
|
20 |
+
|
21 |
+
prompt_generate_skills = ChatPromptTemplate.from_template(
|
22 |
+
template=template_generate_skills
|
23 |
+
)
|
24 |
+
role_skills = LLMChain(
|
25 |
+
llm=llm, prompt=prompt_generate_skills, output_key="role_skills"
|
26 |
+
)
|
27 |
+
|
28 |
+
generate_skills_chain = SequentialChain(
|
29 |
+
chains=[role_skills],
|
30 |
+
input_variables=[],
|
31 |
+
output_variables=["role_skills"],
|
32 |
+
verbose=False,
|
33 |
+
)
|
34 |
+
|
35 |
+
result = generate_skills_chain({})
|
36 |
+
result_array = json.loads(result["role_skills"])["skills"]
|
37 |
+
return result_array
|
38 |
+
|
39 |
+
|
40 |
+
def generate_resume(skills: list) -> str:
|
41 |
+
template_generate_resume = """
|
42 |
+
Given the following list of skills as an array delimited by three backticks, generate a resume of a data scientist with 3 years of experience.
|
43 |
+
Make sure to include a section "skills" in the resume.
|
44 |
+
|
45 |
+
```
|
46 |
+
{skills}
|
47 |
+
```
|
48 |
+
"""
|
49 |
+
|
50 |
+
prompt_generate_resume = ChatPromptTemplate.from_template(
|
51 |
+
template=template_generate_resume
|
52 |
+
)
|
53 |
+
resume = LLMChain(llm=llm, prompt=prompt_generate_resume, output_key="resume")
|
54 |
+
|
55 |
+
generate_resume_chain = SequentialChain(
|
56 |
+
chains=[resume],
|
57 |
+
input_variables=["skills"],
|
58 |
+
output_variables=["resume"],
|
59 |
+
verbose=False,
|
60 |
+
)
|
61 |
+
|
62 |
+
result = generate_resume_chain({"skills": skills})
|
63 |
+
|
64 |
+
return result
|
65 |
+
|
66 |
+
|
67 |
+
def retrieve_skills(resume: str) -> str:
|
68 |
+
template_retrieve_skills = """
|
69 |
+
Given the following resume delimited by three backticks, retrieve the skills this data scientist possesses.
|
70 |
+
Return them as a JSON list.
|
71 |
+
|
72 |
+
```
|
73 |
+
{resume}
|
74 |
+
```
|
75 |
+
"""
|
76 |
+
|
77 |
+
prompt_retrieve_skills = ChatPromptTemplate.from_template(
|
78 |
+
template=template_retrieve_skills
|
79 |
+
)
|
80 |
+
skills = LLMChain(llm=llm, prompt=prompt_retrieve_skills, output_key="skills")
|
81 |
+
|
82 |
+
retrieve_skills_chain = SequentialChain(
|
83 |
+
chains=[skills],
|
84 |
+
input_variables=["resume"],
|
85 |
+
output_variables=["skills"],
|
86 |
+
verbose=False,
|
87 |
+
)
|
88 |
+
|
89 |
+
result = retrieve_skills_chain({"resume": resume})
|
90 |
+
result_array = json.loads(result["skills"])
|
91 |
+
|
92 |
+
return result_array
|
93 |
+
|
94 |
+
|
95 |
+
def get_score(true_values: list, predicted_values: list) -> float:
|
96 |
+
intersection_list = [value for value in predicted_values if value in true_values]
|
97 |
+
print(intersection_list)
|
98 |
+
return len(intersection_list) / len(true_values)
|
99 |
+
|
100 |
+
|
101 |
+
if __name__ == "__main__":
|
102 |
+
role_skills = generate_skills()
|
103 |
+
random_skills = random.sample(role_skills, 3)
|
104 |
+
resume = generate_resume(random_skills)
|
105 |
+
skills = retrieve_skills(resume)
|
106 |
+
score = get_score(random_skills, skills)
|
107 |
+
print(random_skills)
|
108 |
+
print(skills)
|
109 |
+
print(score)
|
110 |
+
|
111 |
+
# def get_resumes() -> str:
|
112 |
+
|
113 |
+
# s3 = boto3.client(
|
114 |
+
# 's3',
|
115 |
+
# region_name='eu-west-1'
|
116 |
+
# )
|
117 |
+
|
118 |
+
# resumes = s3.get_object(Bucket='ausy-datalake-drift-nonprod', Key='resume-matcher/raw/resume-dataset.csv')
|
119 |
+
|
120 |
+
# resumes_list = resumes['Body'].read().decode('utf-8').splitlines()
|
121 |
+
# resumes_list = resumes['Body'].read().decode('utf-8').splitlines()
|
122 |
+
# resumes_list = str(resumes_list).replace('. ', '.\n')
|
123 |
+
# resumes_list = str(resumes_list).replace('â¢', '\n - ')
|
124 |
+
# resumes_list = [s.replace('. ', '.\n') for s in resumes_list]
|
125 |
+
# resumes_list = [s.replace('â¢', '\n - ') for s in resumes_list]
|
126 |
+
# resume_string =''.join(resumes_list)
|
127 |
+
# s3_uri = urlparse("s3://ausy-datalake-drift-nonprod/resume-matcher/raw/resume-dataset.csv", allow_fragments=False).geturl()
|
128 |
+
# resumes_list = pd.read_csv(s3_uri, header=None, encoding='utf-8')[0].tolist()
|
129 |
+
|
130 |
+
# return resumes_list
|
131 |
+
|
132 |
+
# def get_skills(resumes: str) -> list:
|
133 |
+
|
134 |
+
# template_resumes_get_skills = """
|
135 |
+
# Given the following string, delimited by <RESUMES> and </RESUMES> which contains resumes which are not properly formatted, categorize the resumes based on domain.
|
136 |
+
# For each domain list the skills of the resumes that are part of that domain.
|
137 |
+
|
138 |
+
# Create a JSON object where they keys are the domains and the values are a list containing the skills.
|
139 |
+
|
140 |
+
# Return that JSON object only.
|
141 |
+
|
142 |
+
# <RESUMES>
|
143 |
+
# {resumes}
|
144 |
+
# </RESUMES>
|
145 |
+
# """
|
146 |
+
|
147 |
+
# prompt_vacancy_get_skills = ChatPromptTemplate.from_template(template=template_resumes_get_skills)
|
148 |
+
# resume_skills = LLMChain(llm=llm, prompt=prompt_vacancy_get_skills, output_key="resume_skills")
|
149 |
+
|
150 |
+
# get_skills_resumes_chain = SequentialChain(
|
151 |
+
# chains=[resume_skills],
|
152 |
+
# input_variables=["resumes"],
|
153 |
+
# output_variables=["resume_skills"],
|
154 |
+
# verbose=False
|
155 |
+
# )
|
156 |
+
|
157 |
+
# result = get_skills_resumes_chain({"resumes": resumes})
|
158 |
+
# # print(result)
|
159 |
+
# resume_skills = json.loads(result['resume_skills'])
|
160 |
+
# print(resume_skills)
|
161 |
+
|
162 |
+
# if __name__ == "__main__":
|
163 |
+
# resumes = get_resumes()
|
164 |
+
# print(resumes)
|
165 |
+
# for x in resumes:
|
166 |
+
# get_skills(x)
|