Spaces:
Running
Running
from typing import Annotated, Optional | |
import pydantic | |
import uvicorn | |
from fastapi import FastAPI, UploadFile, Body, File | |
from resume_parser import ResumeParser, pdf_to_string | |
from resume_template import Resume | |
app = FastAPI() | |
async def root(): | |
return "OK" | |
async def parse_resume(resume_file: UploadFile, use_openai:bool=True): | |
content = await resume_file.read() | |
await resume_file.close() | |
p = ResumeParser(use_openai) | |
resume_text = pdf_to_string(content) | |
resume = p.extract_resume_fields(resume_text) | |
return resume | |
async def match_resume_job(resume_file: UploadFile, job_description:Annotated[str, Body(embed=True)], use_openai:bool=True): | |
content = await resume_file.read() | |
await resume_file.close() | |
p = ResumeParser(use_openai) | |
resume_text = pdf_to_string(content) | |
res = p.match_resume_with_job_description(resume_text, job_description) | |
return res | |
async def match_resume_job(resume_file: UploadFile, job_description_file:UploadFile, use_openai:bool=True): | |
content = await resume_file.read() | |
await resume_file.close() | |
p = ResumeParser(use_openai) | |
resume_text = pdf_to_string(content) | |
job_description_text = await job_description_file.read() | |
await job_description_file.close() | |
res = p.match_resume_with_job_description(resume_text, job_description_text) | |
return res | |
if __name__ == '__main__': | |
uvicorn.run(app, host="0.0.0.0", port=8000) |