|
import gradio as gr |
|
import os |
|
from dotenv import load_dotenv |
|
load_dotenv() |
|
|
|
def get_markdown(registry): |
|
with open(registry,"r") as f: |
|
return f.read() |
|
|
|
def get_interface(md): |
|
code = "import" + md.split("import")[2].split(".launch")[0] |
|
return code |
|
|
|
|
|
|
|
|
|
|
|
possible_registries = ["gemini-gradio","openai-gradio"] |
|
|
|
with gr.Blocks(fill_height=False, fill_width=False) as demo : |
|
gr.Markdown("<h1 style='text-align: center;'>Gradio registry</h1>") |
|
dropdown = gr.Dropdown(possible_registries,value=possible_registries[0],interactive=True) |
|
|
|
@gr.render(inputs=dropdown) |
|
def create_interface(registry): |
|
filepath = f"registries/{registry}.md" |
|
md = get_markdown(filepath) |
|
gr.Markdown(md) |
|
try : |
|
code = get_interface(md) |
|
exec(code) |
|
except Exception as e : |
|
message = f"could not render the interface because of the following error : {e} " |
|
gr.Info(message) |
|
|
|
|
|
demo.launch() |