Spaces:
Runtime error
Runtime error
| from core.models.parser import ApplicantResume | |
| from core.parser.file_parser import BaseParser | |
| from core.parser.prompt import generate_context_prompt, generate_identity_prompt | |
| from core.resources.azure_openai import generate_response | |
| import json | |
| def extractor_task(file_name: str): | |
| # Parse all data in it's raw format. | |
| parser = BaseParser(file_name) | |
| raw_txt = parser.parse_pdf() | |
| messages = generate_messages(raw_txt) | |
| # generate response and put it in a pydantic model that validates what gpt has given us | |
| # it will also serve as our baseline on which data we can access from the resume | |
| # if it has enough fields for us to do an context similarity on, we can generate a proper report. | |
| # The model will also serve in our reporting as we can raise this as an issue if they do not have | |
| # enough context for us to work on. that means it is either it is not a complete resume. | |
| response = generate_response(messages) | |
| json_response = json.loads(response) | |
| model_response = ApplicantResume(**json_response) | |
| return json_response | |
| def generate_messages(raw_txt: str): | |
| print("raw_txt in generate_messages", raw_txt) | |
| messages = [] | |
| identity_prompt = generate_identity_prompt() | |
| context_prompt = generate_context_prompt(raw_txt) | |
| messages.append({"role": "system", "content": identity_prompt}) | |
| messages.append({"role": "system", "content": context_prompt}) | |
| return messages | |
| def list_dict_to_str_parser(items): | |
| result = "" | |
| for item in items: | |
| for val in item.dict().values(): | |
| result += f"{val}\n" | |
| return result | |