Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -28,7 +28,6 @@ def respond(
|
|
28 |
if resume_file is not None:
|
29 |
resume_text = extract_text_from_pdf(resume_file)
|
30 |
|
31 |
-
# Добавляем информацию о вакансии и резюме в системное сообщение
|
32 |
system_message_with_info = f"{system_message}\nJob Description: {job_description}\nResume: {resume_text}"
|
33 |
messages = [{"role": "system", "content": system_message_with_info}]
|
34 |
|
@@ -41,21 +40,25 @@ def respond(
|
|
41 |
messages.append({"role": "user", "content": message})
|
42 |
|
43 |
response = ""
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
|
55 |
-
# Инициализация системного сообщения для старта
|
56 |
initial_system_message = "You are a recruiter. Your task is to interview the candidate based on the job description and resume provided. After the interview, provide feedback on the candidate's strengths and areas for improvement."
|
57 |
|
58 |
-
# Определение интерфейса Gradio
|
59 |
with gr.Blocks() as demo:
|
60 |
gr.Markdown("## AI Recruiter Chatbot")
|
61 |
|
@@ -75,9 +78,12 @@ with gr.Blocks() as demo:
|
|
75 |
|
76 |
def chat_flow(message, job_description, resume_file, max_tokens, temperature, top_p, history):
|
77 |
system_message = initial_system_message
|
78 |
-
|
79 |
-
|
80 |
-
|
|
|
|
|
|
|
81 |
|
82 |
btn.click(chat_flow, [message, job_description, resume_file, max_tokens, temperature, top_p, history], [response, history])
|
83 |
|
|
|
28 |
if resume_file is not None:
|
29 |
resume_text = extract_text_from_pdf(resume_file)
|
30 |
|
|
|
31 |
system_message_with_info = f"{system_message}\nJob Description: {job_description}\nResume: {resume_text}"
|
32 |
messages = [{"role": "system", "content": system_message_with_info}]
|
33 |
|
|
|
40 |
messages.append({"role": "user", "content": message})
|
41 |
|
42 |
response = ""
|
43 |
+
try:
|
44 |
+
for message in client.chat_completion(
|
45 |
+
messages,
|
46 |
+
max_tokens=max_tokens,
|
47 |
+
stream=True,
|
48 |
+
temperature=temperature,
|
49 |
+
top_p=top_p,
|
50 |
+
):
|
51 |
+
if message.choices and message.choices[0].delta and message.choices[0].delta.content:
|
52 |
+
token = message.choices[0].delta.content
|
53 |
+
response += token
|
54 |
+
yield response
|
55 |
+
else:
|
56 |
+
yield "Error: received unexpected response format"
|
57 |
+
except Exception as e:
|
58 |
+
yield f"Error: {str(e)}"
|
59 |
|
|
|
60 |
initial_system_message = "You are a recruiter. Your task is to interview the candidate based on the job description and resume provided. After the interview, provide feedback on the candidate's strengths and areas for improvement."
|
61 |
|
|
|
62 |
with gr.Blocks() as demo:
|
63 |
gr.Markdown("## AI Recruiter Chatbot")
|
64 |
|
|
|
78 |
|
79 |
def chat_flow(message, job_description, resume_file, max_tokens, temperature, top_p, history):
|
80 |
system_message = initial_system_message
|
81 |
+
response_generator = respond(message, history, system_message, job_description, resume_file, max_tokens, temperature, top_p)
|
82 |
+
final_response = ""
|
83 |
+
for response in response_generator:
|
84 |
+
final_response = response
|
85 |
+
history.append((message, final_response))
|
86 |
+
return final_response, history
|
87 |
|
88 |
btn.click(chat_flow, [message, job_description, resume_file, max_tokens, temperature, top_p, history], [response, history])
|
89 |
|