AutoReadmeAgent / app.py
bogeumkim's picture
Add json.loads() to handle result
1eb338d
raw
history blame
3.28 kB
import json
import requests
import gradio as gr
MODAL_API_URL = "https://agents-mcp-hackathon--auto-readme-agent-fastapi-app.modal.run"
def generate_readme(repo_url):
try:
response = requests.post(
MODAL_API_URL,
json={"repo_url": repo_url},
timeout=120
)
if response.status_code == 200:
data = json.loads(response.text)
return data["readme"]
else:
return f"Error: {response.status_code}\n{response.text}"
except Exception as e:
return f"Exception: {str(e)}"
DEFAULT_VALUE = (
"## Hello, World!\n"
"Regardless of the result, it was **a truly informative and enjoyable hackathon.** \n"
"As someone who likes and is good at using Hugging Face, I hope there will be more opportunities like this! πŸ€—"
)
with gr.Blocks(gr.themes.Origin()) as demo:
gr.HTML("<h1 style='text-align:center;'>πŸ€– ARA: Auto README.md Agent πŸ“</h1>")
with gr.Tabs():
with gr.TabItem("README.md Generator"):
repo_input = gr.Textbox(
label="GitHub Repository URL",
placeholder="Enter the GitHub repository URL (e.g. https://github.com/username/repo)"
)
generate_btn = gr.Button("Generate README.md")
with gr.Row():
with gr.Column(scale=1):
gr.Markdown("### πŸ“ Draft")
readme_preview = gr.Textbox(
lines=24,
label="Generated by agent",
interactive=True,
value=DEFAULT_VALUE
)
with gr.Column(scale=1):
gr.Markdown("### πŸ–ΌοΈ Preview")
readme_markdown = gr.Markdown(value=DEFAULT_VALUE, show_copy_button=True)
generate_btn.click(
generate_readme,
inputs=repo_input,
outputs=readme_preview
)
readme_preview.change(
lambda md: md,
inputs=readme_preview,
outputs=readme_markdown
)
with gr.TabItem("Demo Video"):
gr.Markdown("### Demo Video")
gr.Video("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
with gr.TabItem("About"):
with gr.Row():
with gr.Column(scale=1):
gr.Markdown("# πŸ‘©β€πŸ« Service Description")
gr.Markdown(
"This service generates README.md files for GitHub repositories using AI agents."
)
with gr.Column(scale=1):
gr.Markdown("# πŸ”› Current Features")
gr.Markdown(
"- Generate README.md from GitHub repo\n"
"- Preview generated README\n"
"- Demo video included"
)
gr.Markdown("# πŸ”œ Future Features")
gr.Markdown(
"- Support for multiple branches\n"
"- Enhanced code analysis\n"
"- User authentication"
)
if __name__ == "__main__":
demo.launch()