Spaces:
Sleeping
Sleeping
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="", | |
) | |
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() |