Spaces:
Build error
Build error
| 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() | |