|
|
from core.model import generate_response |
|
|
from core.test import resume,jd,jr |
|
|
from core.utils import trim_backticks |
|
|
|
|
|
import json |
|
|
|
|
|
def generate_question(resume_text, job_desc_text, job_role): |
|
|
system_prompt = "You are a question generator API, you always respond is correct, directly parsable JSON. You are an experienced technical interviewer and question generator. " \ |
|
|
"You create professional interview questions in a JSON format. Never include explanations, markdown formatting, or any text outside the JSON" |
|
|
|
|
|
user_prompt = f""" |
|
|
Generate 5 technical interview questions for a "{job_role}" position based on this resume and job description. |
|
|
|
|
|
Resume: |
|
|
{resume_text} |
|
|
|
|
|
Job Description: |
|
|
{job_desc_text} |
|
|
|
|
|
IMPORTANT FORMATTING INSTRUCTIONS: |
|
|
1. Return ONLY a raw directly parsable JSON |
|
|
2. Do NOT use markdown formatting |
|
|
3. Do NOT include ```json or ``` markers |
|
|
4. Do NOT add any explanations or comments |
|
|
5. Output ONLY the JSON with questions |
|
|
|
|
|
Each question should test technical skills and include a follow-up in parentheses. |
|
|
|
|
|
Example of EXACTLY how your response should be formatted: |
|
|
{{ |
|
|
questions: ["Question 1 (Follow-up question)", "Question 2 (Follow-up question)", "Question 3 (Follow-up question)", "Question 4 (Follow-up question)", "Question 5 (Follow-up question)"] |
|
|
}} |
|
|
""" |
|
|
|
|
|
fallback_questions= [ |
|
|
"Tell me about your relevant experience for this role.", |
|
|
"What are your key strengths and weaknesses?", |
|
|
"Why are you interested in this position?", |
|
|
"Describe a challenging project you've worked on.", |
|
|
"What questions do you have about the role?" |
|
|
] |
|
|
|
|
|
try: |
|
|
response = generate_response(system_prompt, user_prompt, temp=0.7) |
|
|
|
|
|
|
|
|
if response.startswith("```"): |
|
|
response = trim_backticks(response) |
|
|
|
|
|
parsed_response = json.loads(response) |
|
|
return parsed_response["questions"] |
|
|
|
|
|
except Exception as e : |
|
|
print(f"Error {e}") |
|
|
return fallback_questions |
|
|
|
|
|
if __name__=="__main__": |
|
|
questions=generate_question(resume,jd,jr) |
|
|
print(questions) |
|
|
|