amkyawdev's picture
Upload folder using huggingface_hub
9388ae0 verified
"""
AmkyawDev AI Agent - Gradio Interface
Simple chat interface for AI code generation
"""
import gradio as gr
from typing import Iterator, List
# System prompt for the AI
SYSTEM_PROMPT = """You are an expert AI Developer Agent.
You help users write code, debug issues, and explain programming concepts.
Provide clean, well-documented code with explanations."""
# Chat history
chat_history: List[dict] = []
def predict(message: str, history: List[list]) -> Iterator[str]:
"""Process user message and generate response"""
global chat_history
# Add user message to history
history.append([message, None])
# Simple responses for demo (in production, connect to AI model)
responses = [
"I've analyzed your request. Here's what I can help you with:\n\n"
"1. **Code Generation** - Tell me what you want to build\n"
"2. **Debugging** - Share your code and I'll find the issue\n"
"3. **Explanations** - Ask me about any programming concept\n\n"
"What would you like me to help you with?",
"## Available Commands\n\n"
"- `Create a [type] app` - Generate a new application\n"
"- `Fix this code` - Debug your code\n"
"- `Explain [topic]` - Teach you something new\n"
"- `Refactor [code]` - Improve existing code",
"## Getting Started\n\n"
"Try these examples:\n"
"1. 'Create a Python calculator'\n"
"2. 'Build a REST API with FastAPI'\n"
"3. 'Write a web scraper in Python'\n\n"
"I'm ready to help! 🚀",
]
# Rotate through responses
response = responses[len(history) % len(responses)]
# Yield response token by token (simulated streaming)
for word in response.split():
yield word + " "
history[-1][1] = word + " "
chat_history.append({"role": "user", "content": message})
chat_history.append({"role": "assistant", "content": response})
# Create Gradio interface
with gr.Blocks(
title="AmkyawDev AI Agent",
theme=gr.themes.Soft(),
css="""
.gradio-container {
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
}
.message {
background: rgba(255,255,255,0.1) !important;
border-radius: 12px;
}
"""
) as demo:
gr.Markdown("""
# 🤖 AmkyawDev AI Agent
Your AI-powered developer assistant
---
""")
chat = gr.Chatbot(
placeholder="Ask me anything about coding...",
show_label=False,
bubble_full_width=False,
height=500,
)
with gr.Row():
msg = gr.Textbox(
placeholder="Type your message here...",
show_label=False,
scale=4,
)
submit = gr.Button("Send", variant="primary", scale=1)
gr.Examples(
examples=[
["Create a Python calculator"],
["Build a REST API with FastAPI"],
["Write a web scraper in Python"],
["Explain React hooks"],
],
inputs=msg,
)
# Event handlers
submit_event = submit.click(
predict,
inputs=[msg, chat],
outputs=[chat],
)
submit_event = msg.submit(
predict,
inputs=[msg, chat],
outputs=[chat],
)
# Clear input after submission
msg.submit(lambda: "", None, msg)
# Launch the app
demo.launch()