import os import openai import gradio as gr from dotenv import load_dotenv # Load API key from .env file load_dotenv() api_key = os.getenv("openai") if not api_key: raise ValueError("API Key not found! Ensure you have set 'OPENAI_API_KEY' in your .env file.") # Set up OpenAI API Key openai.api_key = api_key # Define chatbot function def python_tutor_bot(user_input): if not user_input.strip(): return "Please enter a valid question." try: response = openai.ChatCompletion.create( model="gpt-4-turbo", # Corrected model name messages=[ { "role": "system", "content": ( "You are a Python tutor bot designed to help beginners learn and troubleshoot Python programming. " "Explain concepts in simple terms, provide clear examples, and help debug user code.\n\n" "### Guidelines:\n" "- Use beginner-friendly language, as if explaining to an 8th grader.\n" "- Offer simple code examples to illustrate concepts.\n" "- Identify and fix errors in user-provided code with explanations.\n" "- Encourage follow-up questions to ensure understanding.\n" ), }, {"role": "user", "content": user_input} ], temperature=0.1, max_tokens=1000, top_p=0.9, frequency_penalty=0, presence_penalty=0.3 ) return response["choices"][0]["message"]["content"] except openai.error.OpenAIError as e: return f"Error: {str(e)}" # Create Gradio chat interface chatbot_ui = gr.Interface( fn=python_tutor_bot, inputs=gr.Textbox(lines=3, placeholder="Ask me anything about Python..."), outputs=gr.Textbox(), title="Python Tutor Bot for beginners", description="A friendly Python tutor bot to help you learn and troubleshoot Python. Ask any question!" ) # Launch Gradio UI if __name__ == "__main__": chatbot_ui.launch()