region:us
import openai
import gradio as gr

openai.api_key = "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"

messages = [
    {"role": "system", "content": "You are a professor and career counsellor who mainly helps engineering diploma students with their studies, such as clearing doubts related to their branch or their future."}
]

def CustomChatGPT(user_input, engineering_branch, year_of_study):
    messages.append({"role": "user", "content": user_input})
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=messages
    )
    ChatGPT_reply = response["choices"][0]["message"]["content"]
    messages.append({"role": "assistant", "content": ChatGPT_reply})
    return ChatGPT_reply

def validate_year_of_study(year_of_study):
    if year_of_study < 1 or year_of_study > 4:
        raise ValueError("Year of study should be between 1 and 4.")

inputs = [
    gr.inputs.Textbox(label="User Input", placeholder="Enter your question or doubt here", lines=2),
    gr.inputs.Dropdown(["Mechanical Engineering", "Electrical Engineering", "Civil Engineering"], label="Engineering Branch"),
    gr.inputs.Number(label="Year of Study",)
]
outputs = gr.outputs.Textbox(label="Assistant Reply")

title = "Digital Professor"
description = "Ask questions and get assistance from the Digital Professor, a professor and career counsellor for engineering diploma students."

examples = [
    ["What are the career prospects for mechanical engineering?", "The career prospects for mechanical engineering are diverse. You can work in industries such as automotive, aerospace, energy, and more."],
    ["Can you help me with my doubt related to electrical circuits?", "Of course! Please provide more details about your doubt related to electrical circuits."],
    ["What are the key skills required for a successful career in civil engineering?", "Some key skills required for a successful career in civil engineering include problem-solving, analytical thinking, and good communication skills."],
]

gr.Interface(fn=CustomChatGPT, inputs=inputs, outputs=outputs, title=title, description=description, examples=examples, theme="compact").launch()
