import gradio as gr import os print("šŸš€ AI Coding Agent starting...") # Simple workspace WORKSPACE = "workspace" os.makedirs(WORKSPACE, exist_ok=True) # AI Assistant function def ai_chat(message, history): """Simple AI response""" responses = { "hello": "šŸ‘‹ Hello! I'm your AI Coding Assistant! Ready to help with programming.", "help": "I can help with:\n• Writing code (Python/JS)\n• Code reviews\n• Debugging\n• Explanations\n• File operations", "python": "```python\nprint('Hello from Python!')\n```", "write": "```python\ndef greet(name):\n return f'Hello, {name}!'\n```", "test": "āœ… Agent is working correctly!", } msg = message.lower() for key in responses: if key in msg: return responses[key] return f"šŸ¤– I can help with: {message}\n\nTry: 'Write a function', 'Explain loops', or 'Help debug'" # File operations def list_files(): try: files = os.listdir(WORKSPACE) if files: return "\\n".join([f for f in files if not f.startswith('.')]) return "šŸ“ Workspace is empty" except: return "šŸ“ Workspace is empty" def save_file(filename, content): try: if not filename: return "Please enter a filename", list_files() with open(os.path.join(WORKSPACE, filename), 'w') as f: f.write(content) return f"āœ… Saved: {filename}", list_files() except Exception as e: return f"āŒ Error: {str(e)}", list_files() def create_examples(): examples = { "hello.py": "print('Hello World!')\nprint('AI Coding Agent is working!')\n", "README.md": "# My Project\\nCreated with AI Coding Agent", "test.py": "def add(a, b):\\n return a + b\\n\\nprint(add(5, 3))" } for name, content in examples.items(): with open(os.path.join(WORKSPACE, name), 'w') as f: f.write(content) return "āœ… Created example files", list_files() # Build Gradio interface with gr.Blocks( title="šŸ¤– AI Coding Agent", theme=gr.themes.Soft(), css=""" .gradio-container { max-width: 900px; margin: auto; padding: 20px; } .chatbot { min-height: 300px; border-radius: 10px; } """ ) as demo: gr.Markdown("# šŸ¤– AI Coding Agent") gr.Markdown("*An intelligent assistant for programming help*") with gr.Tabs(): # Tab 1: Chat with gr.Tab("šŸ’¬ Chat"): chatbot = gr.Chatbot( value=[("AI", "šŸ‘‹ Hello! I'm your AI Coding Assistant. How can I help?")], height=350 ) with gr.Row(): msg_input = gr.Textbox( placeholder="Ask about coding...", scale=4, container=False ) send_btn = gr.Button("Send", variant="primary", scale=1) clear_btn = gr.Button("Clear Chat", variant="secondary") # Chat function def chat_respond(message, history): if not message.strip(): return "", history response = ai_chat(message, history) return "", history + [(message, response)] msg_input.submit(chat_respond, [msg_input, chatbot], [msg_input, chatbot]) send_btn.click(chat_respond, [msg_input, chatbot], [msg_input, chatbot]) clear_btn.click(lambda: [], None, chatbot) # Tab 2: Files with gr.Tab("šŸ“ Files"): with gr.Row(): with gr.Column(scale=1): gr.Markdown("### Workspace") file_display = gr.Textbox( label="Files", value=list_files(), interactive=False, lines=8 ) refresh_btn = gr.Button("šŸ”„ Refresh") examples_btn = gr.Button("šŸ“ Create Examples") with gr.Column(scale=2): gr.Markdown("### Edit Files") filename = gr.Textbox(label="Filename", placeholder="example.py") file_content = gr.Textbox( label="Content", lines=12, placeholder="Write your code here...", value="# Write your code here\\nprint('Hello World')" ) save_btn = gr.Button("šŸ’¾ Save File", variant="primary") status = gr.Textbox(label="Status", interactive=False) # File operations refresh_btn.click(list_files, outputs=file_display) examples_btn.click(create_examples, outputs=[status, file_display]) save_btn.click(save_file, [filename, file_content], outputs=[status, file_display]) # Tab 3: About with gr.Tab("ā„¹ļø About"): gr.Markdown(""" ## About AI Coding Agent This is an intelligent coding assistant that helps with: - **Code Writing**: Generate Python/JavaScript code - **Code Review**: Get feedback on your code - **Debugging**: Help fix errors - **Explanations**: Understand programming concepts - **File Management**: Edit and organize code files ### Quick Start 1. Go to **Chat** tab to ask questions 2. Go to **Files** tab to create/edit code 3. Try these examples: - "Write a Python function" - "Explain recursion" - "Create a simple API" ### Creator Made by [ali4566544](https://huggingface.co/ali4566544) """) # Footer gr.Markdown("---") gr.Markdown("
šŸš€ AI Coding Agent is now working!
") # Launch if __name__ == "__main__": demo.launch( server_name="0.0.0.0", server_port=7860, show_error=True, debug=False )