asoria's picture
asoria HF staff
Adding draft
421b068
raw
history blame
2.17 kB
import gradio as gr
from gradio_huggingfacehub_search import HuggingfaceHubSearch
import nbformat as nbf
from huggingface_hub import HfApi
api = HfApi()
def create_notebook_file(cell_commands, notebook_name="generated_notebook.ipynb"):
nb = nbf.v4.new_notebook()
nb['cells'] = [nbf.v4.new_code_cell(command) for command in cell_commands]
with open(notebook_name, 'w') as f:
nbf.write(nb, f)
print(f"Notebook '{notebook_name}' created successfully.")
def generate_notebook(dataset_id):
commands = [
f"from datasets import load_dataset",
f"dataset = load_dataset('{dataset_id}')",
f"dataset",
]
notebook_name = f"{dataset_id.replace('/', '-')}.ipynb"
create_notebook_file(commands, notebook_name=notebook_name)
api.upload_file(
path_or_fileobj=notebook_name,
path_in_repo="dataset_analysis.ipynb",
repo_id="asoria/en-text",
repo_type="dataset",
)
print("Notebook uploaded to Huggingface Hub.")
link = f"https://huggingface.co/datasets/{dataset_id}/blob/main/dataset_analyst.ipynb"
return f'<a target="_blank" href="{link}" style="color: var(--link-text-color); text-decoration: underline;text-decoration-style: dotted;">See notebook</a>'
with gr.Blocks() as demo:
gr.Markdown("# πŸ€– Dataset auto analyst creator πŸ•΅οΈ")
dataset_name = HuggingfaceHubSearch(
label="Hub Dataset ID",
placeholder="Search for dataset id on Huggingface",
search_type="dataset",
value="",
)
@gr.render(inputs=dataset_name)
def embed(name):
if not name:
return gr.Markdown("### No dataset provided")
html_code = f"""
<iframe
src="https://huggingface.co/datasets/{name}/embed/viewer/default/train"
frameborder="0"
width="100%"
height="600px"
></iframe>
"""
return gr.HTML(value=html_code)
generate_btn = gr.Button("Generate notebook")
output_lbl = gr.HTML(value="")
generate_btn.click(generate_notebook, inputs=[dataset_name], outputs=[output_lbl])
demo.launch()