Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from huggingface_hub import InferenceClient | |
| client = InferenceClient("HuggingFaceH4/zephyr-7b-beta") | |
| def set_type(choice, user_profile): | |
| user_profile["interview_type"] = choice.lower() | |
| return f"Great! Whatβs your background and what field/role are you aiming for?", user_profile | |
| def save_background(info, user_profile): | |
| user_profile["field"] = info | |
| return "Awesome! Type 'start' below to begin your interview.", user_profile | |
| def respond(message, history, user_profile): | |
| if not user_profile["interview_type"] or not user_profile["field"]: | |
| return "Please finish steps 1 and 2 before starting the interview." | |
| messages = [ | |
| { | |
| "role": "system", | |
| "content": f"You are a professional interviewer conducting a {user_profile['interview_type']} interview for a candidate in the {user_profile['field']} field." | |
| } | |
| ] | |
| if history: | |
| messages.extend(history) | |
| messages.append({"role": "user", "content": message}) | |
| response = client.chat_completion( | |
| messages, | |
| max_tokens=150, | |
| stream=False | |
| ) | |
| return response.choices[0].message.content | |
| with gr.Blocks() as demo: | |
| user_profile = gr.State({"interview_type": "", "field": ""}) | |
| gr.Markdown("# π€ Welcome to Intervu") | |
| # Step 1 | |
| gr.Markdown("### Step 1: Choose Interview Type") | |
| with gr.Row(): | |
| behavioral_val = gr.Textbox(value="Behavioral", visible=False) | |
| technical_val = gr.Textbox(value="Technical", visible=False) | |
| college_val = gr.Textbox(value="College", visible=False) | |
| btn1 = gr.Button("Behavioral") | |
| btn2 = gr.Button("Technical") | |
| btn3 = gr.Button("College / Scholarship") | |
| type_out = gr.Textbox(label="Bot", interactive=False) | |
| btn1.click(set_type, inputs=[behavioral_val, user_profile], outputs=[type_out, user_profile]) | |
| btn2.click(set_type, inputs=[technical_val, user_profile], outputs=[type_out, user_profile]) | |
| btn3.click(set_type, inputs=[college_val, user_profile], outputs=[type_out, user_profile]) | |
| # Step 2 | |
| gr.Markdown("### Step 2: Enter Your Background") | |
| background = gr.Textbox(label="Your background and field/goal") | |
| background_btn = gr.Button("Submit Background") | |
| background_out = gr.Textbox(label="Bot", interactive=False) | |
| background_btn.click(save_background, inputs=[background, user_profile], outputs=[background_out, user_profile]) | |
| # Step 3 | |
| gr.Markdown("### Step 3: Start Interview") | |
| chatbot = gr.ChatInterface( | |
| fn=lambda msg, hist: respond(msg, hist, user_profile.value), | |
| title="Intervu - AI Interview Practice", | |
| chatbot=gr.Chatbot(label="Interview Bot"), | |
| input_textbox=gr.Textbox(placeholder="Type your answer here..."), | |
| type="messages" | |
| ) | |
| demo.launch() | |