Vincent Claes
inital code
f6dc197
raw
history blame
4.09 kB
import json
import os
import gradio as gr
import requests
import recruiting_assistant
def search_resume(input_text):
url = f"https://n970resrb9.execute-api.eu-west-1.amazonaws.com/dev/prediction" # replace with your API endpoint
headers = {
"Content-Type": "application/json",
"x-api-key": os.environ["API_KEY"],
} # adjust headers as needed
response = requests.post(
url, headers=headers, data=json.dumps({"text": input_text})
)
response_data = response.json()
if "prediction" in response_data:
prediction = response_data["prediction"]
if isinstance(prediction, list):
# Insert a newline after each '.'
# Insert a newline after each '.' and add "Candidate <follow up number>:\n" before each item
updated_prediction = [
f"Candidate {i + 1}:\n=============================\n{s}"
for i, s in enumerate(prediction)
]
updated_prediction = [s.replace(". ", ".\n") for s in updated_prediction]
updated_prediction = [s.replace("•", "\n - ") for s in updated_prediction]
return "\n\n".join(updated_prediction)
return "No 'prediction' key found in the response or the 'body' is not a list."
demo = gr.Blocks()
with demo:
with gr.Group():
with gr.Box():
with gr.Row(elem_id="prompt-container").style(
mobile_collapse=False, equal_height=True
):
with gr.Column():
gr.Markdown(
"""
## 1. Provide a vacancy and get back relevant resumes from an entire database of resumes for various roles.
"""
)
text_vacancy = gr.Textbox(
hint="Paste here a Vacancy...",
lines=7,
label="Copy/paste here a vacancy",
)
b1 = gr.Button("Search Resume").style(
margin=False,
rounded=(False, True, True, False),
full_width=False,
)
text_search_result = gr.Textbox(
hint="Top resumes will appear here ...",
label="Top resumes found in the database",
)
b1.click(
search_resume, inputs=text_vacancy, outputs=text_search_result
)
gr.Markdown(
"""
## 2. Select an appropriate resume for this vacancy, paste it in the textfield and get a relevant introduction email.
"""
)
text_resume = gr.Textbox(
hint="Paste here a Resume...",
label="Copy / Paste here your prefered resume from above and click the button to write an intro ",
)
b2 = gr.Button("Write a relevant intro").style(
margin=False,
rounded=(False, True, True, False),
full_width=False,
)
gr.Markdown(
"""
## 3. You have a relevant introduction email to send to the customer.
"""
)
text_intro = gr.Textbox(label="Intro Email")
evaluation = gr.Textbox(label="Evaluation of the skills")
b2.click(
recruiting_assistant.create_intro,
inputs=[text_vacancy, text_resume],
outputs=[text_intro, evaluation],
)
gr.Examples(
fn=search_resume,
inputs=text_vacancy,
outputs=text_search_result,
cache_examples=False,
)
demo.launch()