# app.py import gradio as gr import os from openai import OpenAI # ----------------------------- # 1️⃣ AI Interview logic # ----------------------------- def groq_ask(question, job_role, api_key): """ Sends question + job_role to OpenAI (replace model with Groq Llama-3 when available) """ if not api_key.strip(): return "❌ Please provide API key." client = OpenAI(api_key=api_key) prompt = f"Act as an interviewer for the role of {job_role}. Question: {question}" try: response = client.chat.completions.create( model="gpt-4", messages=[{"role": "user", "content": prompt}], temperature=0.7 ) return response.choices[0].message.content except Exception as e: return f"❌ Error: {e}" def analyze_answer(user_answer): """ Returns confidence score and feedback """ confidence = round(min(len(user_answer)/100, 1.0)*100, 2) feedback = "✅ Good answer!" if confidence > 50 else "⚠️ Needs improvement." return f"Confidence Score: {confidence}%\nFeedback: {feedback}" def interview_app(job_role, user_question, user_answer, api_key): ai_response = groq_ask(user_question, job_role, api_key) feedback = analyze_answer(user_answer) return ai_response, feedback # ----------------------------- # 2️⃣ Gradio 3D UI Layout # ----------------------------- with gr.Blocks(css=""" body {background: linear-gradient(135deg, #0f0c29, #302b63, #24243e);} .gradio-container {color:white;} .gr-button {background-color:#ff4b2b; color:white; border-radius:10px;} .gr-textbox {background-color:#1c1c3c; color:white; border-radius:10px;} """) as demo: gr.HTML("""