File size: 3,721 Bytes
1eb338d 174c3d3 b90747c 6b1467b b90747c 8f23e34 b57f297 174c3d3 8f23e34 b90747c b57f297 174c3d3 1eb338d 174c3d3 b57f297 174c3d3 8f23e34 1eb338d 8f23e34 c5fb833 b392fc5 c0f87f9 8f23e34 1eb338d 8f23e34 c5fb833 8f23e34 1eb338d 8f23e34 1eb338d 8f23e34 1eb338d 8f23e34 87fb172 7960667 1eb338d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
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! π€"
)
EMBED_HTML = '''<div style="display: flex; justify-content: center; align-items: center; margin-top: 20px;">
<iframe width="900" height="506"
src="https://www.youtube.com/embed/6M9dx-uHN1Q?si=X2s2vxkcVP2LVboF"
title="YouTube video player" frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerpolicy="strict-origin-when-cross-origin" allowfullscreen>
</iframe>
</div>
'''
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.HTML(EMBED_HTML)
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() |