Update app.py
Browse files
app.py
CHANGED
|
@@ -94,42 +94,39 @@ def generate_summary(card_text: str, card_type: str) -> str:
|
|
| 94 |
"""Cached wrapper for generate_summary with TTL."""
|
| 95 |
return _generate_summary_gpu(card_text, card_type)
|
| 96 |
|
| 97 |
-
def summarize(hub_id: str = "", card_type: str =
|
| 98 |
-
"""Interface function for Gradio. Returns
|
| 99 |
try:
|
| 100 |
if hub_id:
|
| 101 |
-
# Fetch and
|
| 102 |
inferred_type, card_text = get_card_info(hub_id)
|
|
|
|
| 103 |
if card_type and card_type != inferred_type:
|
| 104 |
error_msg = f"Error: Provided card_type '{card_type}' doesn't match inferred type '{inferred_type}'"
|
| 105 |
-
return
|
| 106 |
card_type = inferred_type
|
| 107 |
else:
|
| 108 |
error_msg = "Error: Hub ID must be provided"
|
| 109 |
-
return
|
| 110 |
|
| 111 |
# Use the cached wrapper
|
| 112 |
summary = generate_summary(card_text, card_type)
|
| 113 |
-
|
| 114 |
-
return summary, json_output
|
| 115 |
|
| 116 |
except Exception as e:
|
| 117 |
error_msg = str(e)
|
| 118 |
-
return f
|
| 119 |
|
| 120 |
def create_interface():
|
| 121 |
interface = gr.Interface(
|
| 122 |
fn=summarize,
|
| 123 |
inputs=[
|
| 124 |
gr.Textbox(label="Hub ID", placeholder="e.g., huggingface/llama-7b"),
|
| 125 |
-
gr.Radio(choices=["model", "dataset"], label="Card Type", value=
|
| 126 |
-
],
|
| 127 |
-
outputs=[
|
| 128 |
-
gr.Textbox(label="Summary"),
|
| 129 |
-
gr.JSON(label="JSON Output")
|
| 130 |
],
|
|
|
|
| 131 |
title="Hugging Face Hub TLDR Generator",
|
| 132 |
-
description="Generate concise summaries of model and dataset cards from the Hugging Face Hub.",
|
| 133 |
)
|
| 134 |
return interface
|
| 135 |
|
|
|
|
| 94 |
"""Cached wrapper for generate_summary with TTL."""
|
| 95 |
return _generate_summary_gpu(card_text, card_type)
|
| 96 |
|
| 97 |
+
def summarize(hub_id: str = "", card_type: str = None) -> str:
|
| 98 |
+
"""Interface function for Gradio. Returns JSON format."""
|
| 99 |
try:
|
| 100 |
if hub_id:
|
| 101 |
+
# Fetch and infer card type
|
| 102 |
inferred_type, card_text = get_card_info(hub_id)
|
| 103 |
+
# Only validate if card_type was explicitly provided
|
| 104 |
if card_type and card_type != inferred_type:
|
| 105 |
error_msg = f"Error: Provided card_type '{card_type}' doesn't match inferred type '{inferred_type}'"
|
| 106 |
+
return f'{{"error": "{error_msg}"}}'
|
| 107 |
card_type = inferred_type
|
| 108 |
else:
|
| 109 |
error_msg = "Error: Hub ID must be provided"
|
| 110 |
+
return f'{{"error": "{error_msg}"}}'
|
| 111 |
|
| 112 |
# Use the cached wrapper
|
| 113 |
summary = generate_summary(card_text, card_type)
|
| 114 |
+
return f'{{"summary": "{summary}", "type": "{card_type}", "hub_id": "{hub_id}"}}'
|
|
|
|
| 115 |
|
| 116 |
except Exception as e:
|
| 117 |
error_msg = str(e)
|
| 118 |
+
return f'{{"error": "{error_msg}"}}'
|
| 119 |
|
| 120 |
def create_interface():
|
| 121 |
interface = gr.Interface(
|
| 122 |
fn=summarize,
|
| 123 |
inputs=[
|
| 124 |
gr.Textbox(label="Hub ID", placeholder="e.g., huggingface/llama-7b"),
|
| 125 |
+
gr.Radio(choices=["model", "dataset", None], label="Card Type (optional)", value=None),
|
|
|
|
|
|
|
|
|
|
|
|
|
| 126 |
],
|
| 127 |
+
outputs=gr.JSON(label="Output"),
|
| 128 |
title="Hugging Face Hub TLDR Generator",
|
| 129 |
+
description="Generate concise summaries of model and dataset cards from the Hugging Face Hub. Leave card type empty for automatic detection.",
|
| 130 |
)
|
| 131 |
return interface
|
| 132 |
|