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 | |
import os | |
os.environ['OPENAI_API_KEY']="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" | |
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", | |
temperature=0, | |
max_tokens=1900, | |
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=generate_questions, | |
inputs=['file','text','text'], | |
outputs=['text'] | |
) | |
k.launch() | |