Spaces:
Runtime error
Runtime error
File size: 1,620 Bytes
b0716cb |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
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
|