Spaces:
Runtime error
Runtime error
from PyPDF2 import PdfReader | |
import gradio as gr | |
from langchain.chat_models import ChatOpenAI | |
from kor import create_extraction_chain, Object, Text | |
from langchain.prompts.prompt import PromptTemplate | |
# from langchain.chains import LLMChain | |
# from langchain.llms import OpenAI | |
from dotenv import load_dotenv | |
load_dotenv() | |
def gen_text(pdf_file): | |
with open(pdf_file.name, "rb") as f: | |
reader = PdfReader(f) | |
num_pages = len(reader.pages) | |
text = "" | |
for page in reader.pages: | |
text += page.extract_text() | |
constraints=context_extracter(text) | |
return constraints | |
# def generate_questions(resume,role='',experience=''): | |
# _PROMPT_TEMPLATE = """ | |
# this is the resume of user: | |
# {resume_details} | |
# here is the role he want to join in : | |
# {role} | |
# Based on the following experience: | |
# {experience} | |
# What are your interview questions for the given user resume and role he want to join in with that experience? | |
# generate no of questions = {questions}! | |
# """ | |
# PROMPT = PromptTemplate(input_variables=["resume_details", "role", "experience",'questions'], template=_PROMPT_TEMPLATE) | |
# llm1 = OpenAI(model_name="text-davinci-003", temperature=0) | |
# chain = LLMChain(llm=llm1, prompt=PROMPT) | |
# prompt = chain.predict_and_parse(resume_details= gen_text(resume), | |
# role= role, | |
# experience= experience, | |
# questions=10) | |
# return prompt.split('\n') | |
def context_extracter(text): | |
llm = ChatOpenAI( | |
model_name="gpt-3.5-turbo-16k", | |
temperature=0, | |
max_tokens=2000, | |
frequency_penalty=0, | |
presence_penalty=0, | |
top_p=1.0, | |
) | |
schema = Object( | |
id="interviewer", | |
description=( | |
"interviewer is examining resume text and should produce set of attributes which represents that person by his resume" | |
), | |
attributes=[ | |
Text( | |
id="summary_or_objective", | |
description="A brief overview of the candidate's professional background, skills, and career goals", | |
examples=[], | |
many=True, | |
), | |
Text( | |
id="work_experience", | |
description="Details of previous employment positions, including job titles, company names, employment dates, and a description of responsibilities and achievements for each role ", | |
examples=[], | |
many=True, | |
), | |
Text( | |
id="education", | |
description="Information about the candidate's educational qualifications, including degrees, certificates, and the names of institutions attended", | |
examples=[], | |
many=True, | |
), | |
Text( | |
id="skills", | |
description="A section highlighting the candidate's relevant skills, such as technical skills, languages spoken, software proficiency, or specific tools used", | |
examples=[], | |
many=True, | |
), | |
Text( | |
id="achievements_or_awards", | |
description="Any notable achievements, awards, or recognition received by the candidate during their education or career.", | |
examples=[], | |
many=True, | |
), | |
Text( | |
id="certifications_or_licenses", | |
description="Information about any professional certifications or licenses held by the candidate that are relevant to the desired position", | |
examples=[], | |
many=True, | |
), | |
Text( | |
id="projects", | |
description="Details of significant projects the candidate has worked on, including a brief description, their role, and any notable outcomes", | |
examples=[], | |
many=True, | |
), | |
Text( | |
id="publications_or_presentations", | |
description=" If applicable, a list of publications or presentations the candidate has authored or delivered, including the titles, dates, and locations", | |
examples=[], | |
many=True, | |
), | |
], | |
many=True, | |
) | |
# chain = LLMChain(llm=llm1, prompt=PROMPT) | |
chain = create_extraction_chain(llm, schema, encoder_or_encoder_class='json') | |
return chain.predict_and_parse(text=text)['data'] | |
k=gr.Interface( | |
fn=gen_text, | |
inputs=['file'], | |
outputs=['json'] | |
) | |
k.launch() | |