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 = '''
Save your README.md writing time!
') 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("# 👩🏫 Description") gr.Markdown( "This service generates README.md files for GitHub repositories using AI agents.\n\n" "**Notice:** This project still has many areas for improvement, so I plan to continue working on it even after the hackathon. " "If you're interested, feel free to contact me on [LinkedIn](https://www.linkedin.com/in/po6eumkim/) or Discord(@bogeumkim)!" ) with gr.Column(scale=1): gr.Markdown("# 🔛 Current Features") gr.Markdown( "- Generate README.md draft from GitHub repository link\n" "- Preview and edit generated README\n" "- Demo video included" ) gr.Markdown("# 🔜 Future Features") gr.Markdown( "- Support for multiple branches\n" "- Support for local environment\n" "- Enhanced code analysis\n" "- And more..." ) if __name__ == "__main__": demo.launch()