talent-interview-prep / src /api_calls.py
barbara-multimodal's picture
refactor: Add job description to feedback API and fix text handling
a172d36
import json
from .constants import (
JOB_DESCRIPTION,
RESUME_TEXT
)
from .constants import (
CONVERSATIONAL_MODEL_API_ENDPOINT,
QUESTION_RELATED_FEEDBACK_API_ENDPOINT,
QUESTION_RELATED_IDEAL_ANSWER_API_ENDPOINT,
CONVERSATIONAL_MODEL_FEEDBACK_API_ENDPOINT,
JOB_DESCRIPTION,
RESUME_TEXT
)
from .utils import api_call
def chatbot_api_call(session_id, interview_question, user_input, conversation_mode, conversation_turns_limit, include_company_name, include_resume_text):
print(f"Calling chatbot API with session_id: {session_id}")
data = {
"session_id": session_id,
"job_title": "Senior Product Manager",
"job_description": JOB_DESCRIPTION,
"interview_question": interview_question,
"user_input": user_input,
"conversation_mode": conversation_mode.lower(),
"conversation_turns_limit": conversation_turns_limit
}
if include_company_name:
data["company_name"] = "InnovateTech Solutions"
if include_resume_text:
data["resume_text"] = RESUME_TEXT
response = api_call(CONVERSATIONAL_MODEL_API_ENDPOINT, data)
if response.status_code == 200:
json_response = response.json()
return json_response.get("response"), json_response.get("conversation_end"), json_response.get("chat_memory")
else:
return f"Error: Received status code {response.status_code} from the API"
def feedback_api_call(interview_data, feedback_type, include_resume_text):
data = {
"job_title": "Senior Product Manager",
"interview_data": interview_data,
"feedback_type": feedback_type
}
if include_resume_text:
data["resume_text"] = RESUME_TEXT
response = api_call(QUESTION_RELATED_FEEDBACK_API_ENDPOINT, data)
if response.status_code == 200:
print(response.text)
return json.loads(response.text)
else:
return f"Error: Received status code {response.status_code} from the API"
def ideal_answer_api_call(interview_data_with_feedback, feedback_type, include_resume_text):
data = {
"job_title": "Senior Product Manager",
"interview_data_with_feedback": interview_data_with_feedback,
"feedback_type": feedback_type
}
if include_resume_text:
data["resume_text"] = RESUME_TEXT
response = api_call(QUESTION_RELATED_IDEAL_ANSWER_API_ENDPOINT, data)
if response.status_code == 200:
return response.text
else:
return f"Error: Received status code {response.status_code} from the API"
def conversation_feedback_api_call(interview_data, feedback_type, include_resume_text, include_job_description):
data = {
"job_title": "Senior Product Manager",
"interview_data": interview_data,
"feedback_type": feedback_type
}
if include_resume_text:
data["resume_text"] = RESUME_TEXT
if include_job_description:
data["job_description"] = JOB_DESCRIPTION
response = api_call(CONVERSATIONAL_MODEL_FEEDBACK_API_ENDPOINT, data)
if response.status_code == 200:
return json.loads(response.text)
else:
return f"Error: Received status code {response.status_code} from the API"