Spaces:
Build error
Build error
Merge pull request #17 from fsa-simpleqt/HuyDN
Browse files
app/modules/matching_cv/models/match_cv_jd_model.py
CHANGED
@@ -2,6 +2,6 @@ from fastapi import APIRouter, UploadFile, File
|
|
2 |
|
3 |
class Match_JD_CV_Model:
|
4 |
jd = UploadFile
|
5 |
-
jd_default = File(..., description="Upload JD file", media_type=["text/plain"])
|
6 |
cv = UploadFile
|
7 |
-
cv_default = File(..., description="Upload CV file", media_type=["application/pdf", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"])
|
|
|
2 |
|
3 |
class Match_JD_CV_Model:
|
4 |
jd = UploadFile
|
5 |
+
jd_default = File(..., description="Upload JD file (only .txt file)", media_type=["text/plain"])
|
6 |
cv = UploadFile
|
7 |
+
cv_default = File(..., description="Upload CV file (only .pdf and .docx)", media_type=["application/pdf", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"])
|
app/modules/matching_cv/models/matching_cv_logic.py
CHANGED
@@ -31,7 +31,7 @@ def result_matching_cv_jd(cv_text, jd_text):
|
|
31 |
Given the following CV and JD, calculate the percentage match between the candidate's qualifications and the job requirements:
|
32 |
CV: {cv}
|
33 |
JD: {jd}
|
34 |
-
To determine the match percentage, analyze the skills and experience in the CV and compare them to the requirements outlined in the JD. Provide the final match percentage as a numeric value between 0-100%, along with a brief explanation of your analysis. Follow this json format: {"Skills Match": {"Required Skills": "","Candidate Skills": "","Match Percentage": "",}, "Experience Match": {"Required Experience": "","Candidate Experience": "","Match Percentage": "",}, "Overall Match Percentage:": ""}
|
35 |
"""
|
36 |
)
|
37 |
),
|
|
|
31 |
Given the following CV and JD, calculate the percentage match between the candidate's qualifications and the job requirements:
|
32 |
CV: {cv}
|
33 |
JD: {jd}
|
34 |
+
To determine the match percentage, analyze the skills and experience in the CV and compare them to the requirements outlined in the JD. Provide the final match percentage as a numeric value between 0-100%, along with a brief explanation of your analysis. Follow this json format: {"Skills Match": {"Required Skills": "","Candidate Skills": "","Match Percentage": "",}, "Experience Match": {"Required Experience": "","Candidate Experience": "","Match Percentage": "",}, "Overall Match Percentage:": "", "Explanation": ""}
|
35 |
"""
|
36 |
)
|
37 |
),
|
app/modules/question_tests_retrieval/__init__.py
CHANGED
@@ -13,7 +13,7 @@ async def index():
|
|
13 |
|
14 |
@qtretrieval_router.post("/send_jd")
|
15 |
# only upload .txt file
|
16 |
-
async def send_jd(txt_file: Annotated[UploadFile, File(..., description="The JD file", media_type=["text/plain"])]):
|
17 |
try:
|
18 |
# read the txt file with format
|
19 |
jobdes = txt_file.file.read().decode("utf-8")
|
|
|
13 |
|
14 |
@qtretrieval_router.post("/send_jd")
|
15 |
# only upload .txt file
|
16 |
+
async def send_jd(txt_file: Annotated[UploadFile, File(..., description="The JD file (only .txt file)", media_type=["text/plain"])]):
|
17 |
try:
|
18 |
# read the txt file with format
|
19 |
jobdes = txt_file.file.read().decode("utf-8")
|
requirements.txt
CHANGED
@@ -30,13 +30,17 @@ google-generativeai==0.3.2
|
|
30 |
google-resumable-media==2.7.0
|
31 |
googleapis-common-protos==1.62.0
|
32 |
greenlet==3.0.3
|
33 |
-
grpcio==1.62.
|
34 |
grpcio-status==1.62.0
|
|
|
35 |
h11==0.14.0
|
|
|
|
|
36 |
httpcore==1.0.4
|
37 |
httplib2==0.22.0
|
38 |
httptools==0.6.1
|
39 |
httpx==0.27.0
|
|
|
40 |
idna==3.6
|
41 |
itsdangerous==2.1.2
|
42 |
Jinja2==3.1.3
|
@@ -57,6 +61,7 @@ mypy-extensions==1.0.0
|
|
57 |
numpy==1.26.4
|
58 |
orjson==3.9.15
|
59 |
packaging==23.2
|
|
|
60 |
proto-plus==1.23.0
|
61 |
protobuf==4.25.3
|
62 |
pyasn1==0.5.1
|
@@ -71,7 +76,9 @@ pyparsing==3.1.2
|
|
71 |
python-docx==1.1.0
|
72 |
python-dotenv==1.0.1
|
73 |
python-multipart==0.0.9
|
|
|
74 |
PyYAML==6.0.1
|
|
|
75 |
requests==2.31.0
|
76 |
rsa==4.9
|
77 |
sniffio==1.3.1
|
|
|
30 |
google-resumable-media==2.7.0
|
31 |
googleapis-common-protos==1.62.0
|
32 |
greenlet==3.0.3
|
33 |
+
grpcio==1.62.1
|
34 |
grpcio-status==1.62.0
|
35 |
+
grpcio-tools==1.62.1
|
36 |
h11==0.14.0
|
37 |
+
h2==4.1.0
|
38 |
+
hpack==4.0.0
|
39 |
httpcore==1.0.4
|
40 |
httplib2==0.22.0
|
41 |
httptools==0.6.1
|
42 |
httpx==0.27.0
|
43 |
+
hyperframe==6.0.1
|
44 |
idna==3.6
|
45 |
itsdangerous==2.1.2
|
46 |
Jinja2==3.1.3
|
|
|
61 |
numpy==1.26.4
|
62 |
orjson==3.9.15
|
63 |
packaging==23.2
|
64 |
+
portalocker==2.8.2
|
65 |
proto-plus==1.23.0
|
66 |
protobuf==4.25.3
|
67 |
pyasn1==0.5.1
|
|
|
76 |
python-docx==1.1.0
|
77 |
python-dotenv==1.0.1
|
78 |
python-multipart==0.0.9
|
79 |
+
pywin32==306
|
80 |
PyYAML==6.0.1
|
81 |
+
qdrant-client==1.8.0
|
82 |
requests==2.31.0
|
83 |
rsa==4.9
|
84 |
sniffio==1.3.1
|