diff --git "a/data/projects.json" "b/data/projects.json"
--- "a/data/projects.json"
+++ "b/data/projects.json"
@@ -1,6 +1,6 @@
{
- "generated_at": "2026-06-06T19:20:47+00:00",
- "source": "https://huggingface.co/api/spaces?author=build-small-hackathon&limit=100",
+ "generated_at": "2026-06-07T11:51:09+00:00",
+ "source": "https://huggingface.co/api/spaces?author=build-small-hackathon",
"projects": [
{
"id": "build-small-hackathon/Advent_of_a_World_of_Flowering_Trees",
@@ -10,17 +10,17 @@
"gradio",
"region:us"
],
- "models": [
- "CohereLabs/tiny-aya-global-GGUF"
- ],
+ "models": [],
"datasets": [],
"likes": 1,
"sdk": "gradio",
"license": "mit",
- "created_at": "2026-06-05T12:21:42.000Z",
- "last_modified": "2026-06-05T19:53:45.000Z",
+ "created_at": "2026-06-05T12:21:42+00:00",
+ "last_modified": "2026-06-05T19:53:45+00:00",
"host": "https://build-small-hackathon-advent-of-a-world-of-flowe-468ebe3.hf.space",
- "url": "https://huggingface.co/spaces/build-small-hackathon/Advent_of_a_World_of_Flowering_Trees"
+ "url": "https://huggingface.co/spaces/build-small-hackathon/Advent_of_a_World_of_Flowering_Trees",
+ "app_file": "app.py",
+ "app_file_embedding_text": "get_llm run_inference prompt CohereLabs/tiny-aya-global-GGUF tiny-aya-global-q4_k_m.gguf hf_hub_download repo_id filename spaces.GPU duration prompt.strip llm.create_chat_completion messages max_tokens temperature strip gr.Blocks title gr.Markdown gr.Textbox label lines placeholder gr.Button variant submit.click fn inputs outputs prompt.submit __main__ demo.launch Llama model_path n_gpu_layers n_ctx flash_attn verbose Enter a prompt to generate a response. # Advent Of A World Of Flowering Trees Tiny Aya GGUF demo running with `llama-cpp-python`. Generate Advent Of A World Of Flowering Trees Prompt Ask something... Response primary llama-cpp initialization failed: content role user message choices"
},
{
"id": "build-small-hackathon/agent-swarm-workbench",
@@ -45,10 +45,12 @@
"likes": 0,
"sdk": "gradio",
"license": "",
- "created_at": "2026-06-03T07:06:14.000Z",
- "last_modified": "2026-06-06T13:57:48.000Z",
+ "created_at": "2026-06-07T03:29:40+00:00",
+ "last_modified": "2026-06-07T11:40:30+00:00",
"host": "https://build-small-hackathon-agent-swarm-workbench.hf.space",
- "url": "https://huggingface.co/spaces/build-small-hackathon/agent-swarm-workbench"
+ "url": "https://huggingface.co/spaces/build-small-hackathon/agent-swarm-workbench",
+ "app_file": "app.py",
+ "app_file_embedding_text": "create_app zerogpu_ready_marker server_config gradio_launch_config should_launch_gradio_space should_self_launch _space_sdk Unified ASGI entrypoint for API and Gradio UI. build_app Create one FastAPI ASGI app with Gradio mounted at the root. gr.mount_gradio_app path _SpacesShim ready os.getenv int lower __main__ GPU self fn GRADIO_SERVER_NAME host port server_name server_port ssr_mode str bool 1 demo.launch / decorator inner HOST 0.0.0.0 7860 SPACE_ID FORCE_SELF_LAUNCH strip uvicorn.run GRADIO_SERVER_PORT PORT 7861 SPACE_SDK HF_SPACE_SDK"
},
{
"id": "build-small-hackathon/AI-agent-Evaluation-pipeline",
@@ -61,21 +63,17 @@
"llm",
"observability"
],
- "models": [
- "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16",
- "Qwen/Qwen3.6-27B",
- "Qwen/QwQ-32B"
- ],
- "datasets": [
- "build-small-hackathon/agent-eval-golden-dataset"
- ],
+ "models": [],
+ "datasets": [],
"likes": 0,
"sdk": "gradio",
"license": "mit",
- "created_at": "2026-06-05T13:27:06.000Z",
- "last_modified": "2026-06-06T16:22:19.000Z",
+ "created_at": "2026-06-05T13:27:06+00:00",
+ "last_modified": "2026-06-07T10:49:48+00:00",
"host": "https://build-small-hackathon-ai-agent-evaluation-pipeline.hf.space",
- "url": "https://huggingface.co/spaces/build-small-hackathon/AI-agent-Evaluation-pipeline"
+ "url": "https://huggingface.co/spaces/build-small-hackathon/AI-agent-Evaluation-pipeline",
+ "app_file": "app.py",
+ "app_file_embedding_text": "_zero_gpu_healthcheck _load_demo name _bar_color score _bg_color render_score_card render_overall_banner report parse_and_preview trace_json load_records_from_url url parse_pasted_jsonl text call_openai_compat scenario api_key model timeout build_trace_json rec agent_response run_benchmark dataset_url pasted_jsonl agent_url model_name use_session use_trace use_span sel_session sel_trace sel_span threshold progress render_reliability rel_report k run_evaluation k_trials eval_mode_radio hf_token exp_response exp_trajectory assertions_text AI Agent Evaluation Pipeline — Gradio MVP ========================================== Evaluate AI agents at 3 hierarchical levels, inspired by Amazon Bedrock AgentCore Evaluations. 📦 Session — Did the agent achieve the user's goal? 🔄 Trace — Per-turn quality (11 evaluators) 🔧 Span — Per tool-call accuracy (2 evaluators) Run locally : python app.py HuggingFace : app_file = app.py (Gradio SDK) sys.path.insert level_chip label avg icon level render_status phase done total current_id render_table rows render_aggregate panel 🧪 AI Agent Evaluation Pipeline Evaluate AI agents at Session , Trace , and Span levels — inspired by Amazon Bedrock AgentCore Evaluations ### How it works | Level | Scope | Evaluators | |-------|-------|------------| | 📦 **Session** | Full conversation | Goal Success Rate | | 🔄 **Trace** | Per turn (user → agent) | Helpfulness, Correctness, Coherence, Conciseness, Faithfulness, Harmfulness, Instruction Following, Response Relevance, Context Relevance, Refusal, Stereotyping | | 🔧 **Span** | Per tool call | Tool Selection Accuracy, Tool Parameter Accuracy | **Modes:** `heuristic` (offline, no API key) · `llm` (LLM-as-judge, coming soon) **JSON format:** `session_id`, `user_goal`, `system_prompt`(opt), `traces[]` → `trace_id`, `user_input`, `agent_response`, `spans[]` _preview_dataset paste Path str _spaces_stub Placeholder GPU function detected by the ZeroGPU runtime. demos simple_qa tool_calling multi_turn #9B59B6 #3498DB #27AE60 📦 🔄 🔧 #F44336 rgba(244,67,54,0.12) _LEVEL_COLOR.get _LEVEL_ICON.get sum len join Load JSONL records from a HF dataset repo URL (data/golden_dataset.jsonl). urlparse hf_hub_download repo_id filename repo_type Parse pasted JSONL content into list of records. POST to an OpenAI-compatible /v1/chat/completions endpoint. api_key.strip model.strip requests.post json headers r.raise_for_status r.json Build a parseable trace JSON from a dataset record + agent response. rec.get json.dumps ensure_ascii gr.Progress track_tqdm Run benchmark: load dataset, call agent for each record, eval, aggregate. desc EvalRunner selected_session_evals selected_trace_evals selected_span_evals mode enumerate Render pass@k / pass^k as an HTML table. rel_report.summary_table int llm_judge report.avg_score_by_evaluator create_radar_chart create_bar_chart create_trace_timeline gr.Blocks title gr.HTML padding bm_load_btn.click inputs outputs bm_run_btn.click fn run_btn.click __main__ demo.launch theme css server_name server_port share show_error GPU duration p.exists p.read_text encoding {} #4CAF50 rgba(76,175,80,0.12) #888
%
· PASS ✅ NEEDS REVIEW ⚠️ OVERALL SCORE
/ evaluators passed · turn(s) · s · mode
;height:6px;border-radius:4px;width: %; transition:width 0.5s ease;\"> *Paste or load a JSON trace above to see a preview.* parse_trace format_trace_tree ValueError split open json.lo ... ef without verbosity? | | **Faithfulness** | TRACE | Is the response consistent with conversation history / context? | | **Harmfulness** | TRACE | Does the response contain harmful or dangerous content? | | **Instruction Following** | TRACE | Does the agent follow its system prompt instructions? | | **Response Relevance** | TRACE | Does the response directly address what was asked? | | **Context Relevance** | TRACE | Was the retrieved context relevant to the query? (RAG) | | **Refusal Appropriateness** | TRACE | Did the agent correctly handle what to refuse? | | **Stereotyping / Bias** | TRACE | Is there stereotypical or demographic bias? | | **Tool Selection Accuracy** | SPAN | Did the agent choose the right tool? | | **Tool Parameter Accuracy** | SPAN | Did the agent pass correct parameters to the tool? | ### Roadmap - [x] LLM-as-Judge mode (HuggingFace Inference API) - [ ] OpenAI-compatible API support - [x] pass@k / pass^k reliability metrics - [ ] Export results as JSON / CSV - [ ] Custom evaluator builder (prompt templates) - [x] Dataset management for regression testing (🧪 Benchmark tab) url.strip ⚠️ Loaded 0 records. 📂 records loaded from Domains: os.getenv initial_message choices trace_id user_input t1 passed error by_domain.setdefault Loading dataset ⚠️ Dataset loaded but empty. Loaded ❌ Agent URL is empty. Running … ground_truth gt_data.get ✗ Done Evaluator Avg Score exp_trajectory.split assertions_text.splitlines trials… by_trace.setdefault by_span.setdefault 🎓 Simple Q&A 🔧 Tool Calling 🔄 Multi-turn + Tools Agent Trace (JSON) 🌲 Trace Preview 📖 JSON Schema Reference gr.Column gr.Checkbox gr.Radio info placeholder type visible eval_mode_radio.change gr.Slider minimum maximum step gr.CheckboxGroup 📋 Ground Truth (Optional — improves scoring precision) Providing reference inputs enables ground-truth-based evaluation (mirrors AgentCore's `expected_response`, `expected_trajectory`, and `assertions`). primary run-btn lg 🗋️ Score Heatmap: Evaluators × Turns Load a dataset and click Run Benchmark to start. purple blue PORT by_domain.items ERROR: Paste JSONL directly if the URL is empty or unreachable. pass@ , sm secondary indent **Evaluation Levels** **🤖 Evaluation Mode** **Pass Threshold** **🔄 Reliability Testing (pass@k / pass^k)** **📦 Session Evaluators** *(once per session)* **🔄 Trace Evaluators** *(once per conversation turn)* **🔧 Span Evaluators** *(once per tool call)* 🕸️ Evaluator Scores (Radar) 📊 Score Breakdown by Evaluator **📦 Dataset** 🔄 Load Dataset No dataset loaded yet. **🤖 Agent (OpenAI-compatible)** **⚙️ Eval settings** 🚀 Run Benchmark Log parsed.path.split 🔄 Trace Level 🔧 Span Level (tool calls) Heuristic (offline) LLM mode requires a HuggingFace token with QwQ-32B access HF Token hf_... password Minimum score to pass Scores ≥ threshold are marked ✅ passed Trials (k) k=1 → standard mode. k>1 → runs multiple trials, shows pass@k & pass^k. HF Dataset URL (loads data/golden_dataset.jsonl) https://huggingface.co/datasets/build-small-hackathon/agent-eval-golden-dataset https://huggingface.co/datasets/... 📝 Or paste JSONL directly Chat completions URL https://your-agent.example.com/v1/chat/completions API Key (optional) Bearer xyz Model name (optional, sent in body if provided) gpt-4o-mini Session evaluators Trace evaluators Span evaluators Pass threshold copy my_session Describe the overall goal of the user (optional) System instructions given to the agent gr.update Expected Response What should the final agent response look like? Expected Tool Trajectory (comma-separated tool names) search_restaurants, create_reservation Assertions (one per line) A restaurant reservation was made Confirmation number was provided The restaurant matches user preferences JSONL records {\"id\":\"python_001\",\"scenario\":{...},\"ground_truth\":{...}} ... retrieved_context spans User's message Agent's reply (optional) RAG context span_id span_type tool_name tool_input tool_output duration_ms s1 TOOL_CALL my_tool Tool result string param"
},
{
"id": "build-small-hackathon/AI-Puppet-Theater",
@@ -85,17 +83,17 @@
"gradio",
"region:us"
],
- "models": [
- "openai/gpt-oss-20b"
- ],
+ "models": [],
"datasets": [],
"likes": 1,
"sdk": "gradio",
"license": "",
- "created_at": "2026-06-05T17:19:57.000Z",
- "last_modified": "2026-06-05T17:19:58.000Z",
+ "created_at": "2026-06-05T17:19:57+00:00",
+ "last_modified": "2026-06-07T10:57:39+00:00",
"host": "https://build-small-hackathon-ai-puppet-theater.hf.space",
- "url": "https://huggingface.co/spaces/build-small-hackathon/AI-Puppet-Theater"
+ "url": "https://huggingface.co/spaces/build-small-hackathon/AI-Puppet-Theater",
+ "app_file": "app.py",
+ "app_file_embedding_text": "render_stage session render_notes create_show premise reset_show advance_one_beat advance_full_act throw_audience_prop prop_name summon_audience_actor actor_name request_audience_finale AI Puppet Theater Enter a premise and create a show. No show yet. The transcript will appear here. director_lines.extend join premise.strip create_show_from_premise run_one_beat throw_prop summon_actor request_finale gr.Blocks title gr.State gr.Markdown gr.HTML value label gr.Textbox lines interactive create_button.click inputs outputs run_one_button.click run_full_button.click throw_prop_button.click summon_actor_button.click request_finale_button.click reset_button.click __main__ app.launch css actor_cards.append Setting: Premise: Beat of Transcript: No puppet lines yet. The first beat will be added in the next milestone. enumerate start Director Log: # AI Puppet Theater Create a tiny improv stage from a premise. This public shell is ready for puppet casting, short scenes, audience interruptions, and behind-the-scenes traces in later milestones. gr.Row placeholder gr.Button variant gr.Dropdown choices allow_custom_value none active Now speaking Latest: Audience: Props on stage: escape transcript_lines.append Trace Events: No premise yet. Add a premise to raise the curtain. Create a show before running a beat. sleep Create a show before throwing a prop. Create a show before summoning an actor. Create a show before requesting a finale. AI Puppet Theater Create Show Run One Beat Run Full Act Reset Throw Prop Summon Actor Request Finale Stage Transcript
Goal: Style: Tools: Holding: - Create a show before running the full act. Premise A moon detective interrogates a suspicious toaster... primary rubber duck Prop Professor Button , . : egg flowers tomato tiny crown scroll nothing"
},
{
"id": "build-small-hackathon/ai-study-buddy",
@@ -105,17 +103,17 @@
"gradio",
"region:us"
],
- "models": [
- "meta-llama/Llama-3.1-8B-Instruct"
- ],
+ "models": [],
"datasets": [],
"likes": 1,
"sdk": "gradio",
"license": "apache-2.0",
- "created_at": "2026-06-01T13:45:43.000Z",
- "last_modified": "2026-06-05T13:42:30.000Z",
+ "created_at": "2026-06-01T13:45:43+00:00",
+ "last_modified": "2026-06-07T09:45:47+00:00",
"host": "https://build-small-hackathon-ai-study-buddy.hf.space",
- "url": "https://huggingface.co/spaces/build-small-hackathon/ai-study-buddy"
+ "url": "https://huggingface.co/spaces/build-small-hackathon/ai-study-buddy",
+ "app_file": "app.py",
+ "app_file_embedding_text": "build_prompt message mode get_response history summarize text quiz simple study_plan InferenceClient model token You are AI Study Buddy, created by Areeba Iqbal. Rules: - Always explain step-by-step - Give examples - Be clear and student-friendly - If asked who created you: \"I am AI Study Buddy, created by Areeba Iqbal.\" demo.launch server_name server_port messages.append gr.Blocks theme css title gr.HTML gr.Radio value label gr.ChatInterface fn additional_inputs examples gr.Markdown gr.Textbox click meta-llama/Llama-3.1-8B-Instruct os.getenv 📚 Study Mode 💻 Coding Mode 🧮 Math Solver 📝 Exam Prep Explain simply for students with examples. Act as a senior programmer. Debug and improve code. Solve step-by-step with explanation. Give short exam-focused answers. Mode: User Question: client.chat_completion messages max_tokens temperature 📚 AI Study Buddy Learn smarter with AI-powered guidance ## ⚡ Quick Actions gr.Row ## 🗓️ Study Plan Generator Created by Areeba Iqbal 0.0.0.0 API_KEY mode_prompts.get role content system user gr.themes.Soft AI Study Buddy Select Mode Quick Input Enter Topic / Exam Detail Plan Output gr.Button ❌ Error: Generate Plan Explain recursion Solve quadratic equation What is AI? Debug Python code 📖 Summarize 📝 Quiz 💡 Simple Summarize: Generate 5 MCQs: Explain simply: Make 7-day study plan for:"
},
{
"id": "build-small-hackathon/amnesiac",
@@ -125,17 +123,17 @@
"gradio",
"region:us"
],
- "models": [
- "openbmb/MiniCPM-o-4_5"
- ],
+ "models": [],
"datasets": [],
"likes": 0,
"sdk": "gradio",
"license": "apache-2.0",
- "created_at": "2026-06-05T09:51:49.000Z",
- "last_modified": "2026-06-05T13:44:41.000Z",
+ "created_at": "2026-06-05T09:51:49+00:00",
+ "last_modified": "2026-06-05T13:44:41+00:00",
"host": "https://build-small-hackathon-amnesiac.hf.space",
- "url": "https://huggingface.co/spaces/build-small-hackathon/amnesiac"
+ "url": "https://huggingface.co/spaces/build-small-hackathon/amnesiac",
+ "app_file": "app.py",
+ "app_file_embedding_text": "int create_application include_gradio server_port os.getenv __main__ uvicorn.run host port PORT 7860 0.0.0.0"
},
{
"id": "build-small-hackathon/attention-firewall",
@@ -150,10 +148,12 @@
"likes": 0,
"sdk": "gradio",
"license": "",
- "created_at": "2026-06-05T23:02:34.000Z",
- "last_modified": "2026-06-05T23:04:42.000Z",
+ "created_at": "2026-06-05T23:02:34+00:00",
+ "last_modified": "2026-06-05T23:04:42+00:00",
"host": "https://build-small-hackathon-attention-firewall.hf.space",
- "url": "https://huggingface.co/spaces/build-small-hackathon/attention-firewall"
+ "url": "https://huggingface.co/spaces/build-small-hackathon/attention-firewall",
+ "app_file": "app.py",
+ "app_file_embedding_text": "respond message history build_demo Paste a short snapshot of your current work context so the MVP 1 skeleton can acknowledge it. Return deterministic MVP 1 placeholder text for the chat interface. message.strip len gr.ChatInterface fn title description examples textbox __main__ demo.launch context.split Attention Firewall MVP 1 received your work context. - Snapshot size: words, characters. - Current behavior: deterministic deployment skeleton response. - Later MVPs will add structured firewall processing after the Space foundation is verified. Attention Firewall Paste chaotic work context and get a deterministic MVP 1 skeleton acknowledgement. gr.Textbox placeholder autofocus container I have three urgent threads, a half-written spec, and unclear review feedback. My deployment is blocked, notes are scattered, and I need the next concrete action. Paste work context to triage later..."
},
{
"id": "build-small-hackathon/awaaz",
@@ -166,18 +166,47 @@
"translation",
"tts"
],
- "models": [
- "openai/whisper-medium",
- "Qwen/Qwen2.5-7B-Instruct"
- ],
+ "models": [],
"datasets": [],
"likes": 0,
"sdk": "gradio",
"license": "mit",
- "created_at": "2026-06-06T13:16:20.000Z",
- "last_modified": "2026-06-06T14:14:31.000Z",
+ "created_at": "2026-06-06T13:16:20+00:00",
+ "last_modified": "2026-06-06T14:14:31+00:00",
"host": "https://build-small-hackathon-awaaz.hf.space",
- "url": "https://huggingface.co/spaces/build-small-hackathon/awaaz"
+ "url": "https://huggingface.co/spaces/build-small-hackathon/awaaz",
+ "app_file": "app.py",
+ "app_file_embedding_text": "load_whisper load_llm extract_audio video_path out_path get_duration path transcribe audio_path translate_segment text _tts voice hindi_tts adjust_speed in_path target_sec stitch_and_merge segments total_dur tmpdir dub_video voice_gender progress Apni Awaaz 🎙️ — Dub English video into the Hindi people actually speak. Built for the Build Small Hackathon (June 2026). You are a dubbing translator. You translate English dialogue into the Hindi that real people actually speak at home in North India — not the stiff, Sanskritized Hindi of Doordarshan or official dubs. RULES: 1. Use everyday Hindustani — the natural Hindi-Urdu mix people really speak. 2. NEVER use Sanskritized/शुद्ध words when a simpler one exists: - \"प्राप्त करना\" → \"मिलना\" / \"पाना\" - \"आवश्यक\" → \"ज़रूरी\" - \"अत्यंत\" → \"बहुत\" / \"काफ़ी\" - \"उपयोग\" → \"इस्तेमाल\" - \"विचार करना\" → \"सोचना\" - \"संपन्न करना\" → \"करना\" / \"निपटाना\" - \"प्रतीक्षा\" → \"इंतज़ार\" - \"शीघ्र\" → \"जल्दी\" - \"अनुमति\" → \"इजाज़त\" - \"कृपया\" → drop it or say \"please\" - \"अवश्य\" → \"ज़रूर\" - \"उचित\" → \"सही\" / \"ठीक\" 3. Keep English words Indians naturally keep: phone, office, meeting, tension, problem, time, chance, try, plan, sure, okay, sorry, thanks, bus, train, college, hospital, doctor, ticket, report, file. 4. Match the speaker's register. Casual stays casual, serious stays serious — but never sound like a newsreader. 5. Use natural fillers where they fit: \"यार\", \"अरे\", \"बस\", \"ना\", \"वो\", \"मतलब\", \"basically\". 6. Natural contractions: \"कर लेंगे\" not \"कर लिया जाएगा\", \"हो जाएगा\" not \"संपन्न हो जाएगा\". 7. Keep it CONCISE. Dubbed Hindi should be roughly the same length as the English. Don't pad. EXAMPLES: EN: \"I need to get this done before the deadline\" ❌ \"मुझे समय-सीमा से पूर्व यह कार्य संपन्न करना आवश्यक है\" ✅ \"deadline से पहले ये निपटाना पड़ेगा\" EN: \"That's a really good point, I hadn't thought about that\" ❌ \"यह एक अत्यंत उत्तम विचार है, मैंने इस पर विचार नहीं किया था\" ✅ \"अच्छी बात बोली, मेरे दिमाग़ में आया ही नहीं\" EN: \"We should probably reconsider our approach\" ❌ \"हमें अपनी कार्यप्रणाली पर पुनर्विचार करना चाहिए\" ✅ \"लगता है अपना तरीका बदलना पड़ेगा\" EN: \"I'm really sorry, I completely forgot about our meeting\" ❌ \"मुझे अत्यंत खेद है, मैं हमारी बैठक के विषय में पूर्णतः विस्मृत हो गया\" ✅ \"sorry यार, meeting पूरी तरह भूल गया\" EN: \"Can you give me a moment? I need to think about this\" ❌ \"क्या आप मुझे कुछ क्षण प्रदान कर सकते हैं? मुझे इस विषय पर विचार करना है\" ✅ \"एक second दे, सोचने दे\" EN: \"The situation is getting worse and we need to act fast\" ❌ \"स्थिति बिगड़ती जा रही है और हमें शीघ्र कार्रवाई करनी चाहिए\" ✅ \"हालात ख़राब हो रहे हैं, जल्दी कुछ करना पड़ेगा\" EN: \"I don't think that's going to work. Let me try something else.\" ❌ \"मुझे नहीं लगता कि यह कार्य करेगा। मुझे कोई अन्य विकल्प आज़माने दीजिए।\" ✅ \"ये नहीं चलेगा। कुछ और try करता हूँ।\" EN: \"Look, I understand your concern, but we don't have a choice here\" ❌ \"देखिए, मैं आपकी चिंता समझता हूँ, परंतु हमारे पास यहाँ कोई विकल्प नहीं है\" ✅ \"देख, तेरी tension समझता हूँ, पर कोई चारा नहीं है\" Translate ONLY the given English text. Output ONLY the Hindi. No commentary. spaces.GPU duration Load Whisper on CPU. ZeroGPU moves it when @spaces.GPU fires. Load Qwen 2.5 7B in 4-bit. Called inside @spaces.GPU so device_map=\"auto\" lands on the A100. subprocess.run check capture_output float → [{\"timestamp\": (start, end), \"text\": \"...\"}] pipe return_timestamps chunk_length_s generate_kwargs tok.apply_chat_template tokenize add_generation_prompt to tok.decode skip_special_tokens edge_tts.Communicate hi-IN-MadhurNeural asyncio.run Stretch/squeeze audio to fit the target duration (pitch-preserved). max Build the dubbed audio track and merge it back onto the video. Uses pydub for clean overlay at exact timestamps. AudioSegment.silent frame_rate os.path.join base.export format gr.Progress pipe.model.to torch.device tempfile.mkdtemp prefix desc len enumerate join gr.Blocks title css theme gr.Markdown elem_classes btn.click fn inputs outputs __main__ demo.launch show_api print pipeline model torch_dtype device Qwen/Qwen2.5-7B-Instruct BitsAndBytesConfig load_in_4bit bnb_4bit_compute_dtype bnb_4bit_quant_type AutoTokenizer.from_pretrained AutoModelForCausalLM.from_pretrained quantization_config device_map r.stdout.strip chunks torch.no_grad model.generate max_new_tokens temperature do_sample top_p split comm.save min int dubbed_track.wav output.mp4 gr.Error cuda hi-IN-SwaraNeural translated.append log_lines.append # 🎙️ Apni Awaaz #### Dub English video into the Hindi people actually speak _No more \"मुझे यह कार्य संपन्न करना आवश्यक है\"_ — _just \"ये करना पड़ेगा यार\"_ gr.Row equal_height gr.Accordion open ⏳ Loading Whisper... automatic-speech-recognition ✅ Whisper loaded (CPU, will move to GPU at runtime) ⏳ Loading Qwen 2.5 7B... ✅ Qwen loaded ffmpeg -i -vn -acodec pcm_s16le -ar 16000 -ac 1 -y ffprobe -v quiet -show_entries format=duration -of csv=p=0 role content system user tok return_tensors -filter:a tts_path AudioSegment.from_file base.overlay position wav -c:v copy -map 0:v:0 1:a:0 -shortest Upload a video first! Male apni_ 🎵 Extracting audio… raw.wav Please keep clips under 3 minutes for now. 👂 Listening to English… Couldn't detect any speech. Try a clearer clip. timestamp 🎬 Stitching final video… Apni Awaaz gr.themes.Soft main-title subtitle gr.Column scale gr.Video label gr.Radio value gr.Button variant size gr.Textbox lines interactive show_copy_button How is this different from normal dubbing? Most Hindi dubs use **शुद्ध हिंदी** — overly formal, Sanskritized language that nobody actually speaks at home. Apni Awaaz translates into **everyday Hindustani** — the natural mix of Hindi, Urdu, and English that your family actually uses at the dinner table. | Official dub | Apni Awaaz | |---|---| | \"मुझे इस विषय पर विचार करने दीजिए\" | \"सोचने दे एक second\" | | \"यह अत्यंत मूल्यवान है\" | \"बहुत महँगा है यार\" | | \"कृपया मुझे अनुमति प्रदान करें\" | \"please, करने दे ना\" | openai/whisper-medium cpu nf4 auto language en resp.strip atempo= tts_ .mp3 tts_adj_ .wav start end hi [ s → s] 🇬🇧 🇮🇳 🎬 Dub it in apni bhasha! pt 🗣️ Dubbing segment / … Upload an English clip (< 3 min) Female Hindi voice primary lg Dubbed output Translation log (EN → HI) .4f ⚠️ overlay failed for segment at s: .1f"
+ },
+ {
+ "id": "build-small-hackathon/Backyard-Demo-Builder",
+ "title": "Backyard Demo Builder",
+ "summary": "Build tiny real-person demos before scaling custom software.",
+ "tags": [
+ "agents",
+ "ai-agents",
+ "backyard-ai",
+ "build-small-hackathon",
+ "demo-builder",
+ "gradio",
+ "real-estate",
+ "small-language-model"
+ ],
+ "models": [
+ "unsloth/gemma-4-12B-it-qat-GGUF",
+ "Qwen/Qwen2.5-7B-Instruct",
+ "nvidia/Nemotron-3.5-Content-Safety"
+ ],
+ "datasets": [],
+ "likes": 0,
+ "sdk": "gradio",
+ "license": "",
+ "created_at": "2026-06-03T07:06:14+00:00",
+ "last_modified": "2026-06-07T11:41:54+00:00",
+ "host": "https://build-small-hackathon-backyard-demo-builder.hf.space",
+ "url": "https://huggingface.co/spaces/build-small-hackathon/Backyard-Demo-Builder",
+ "app_file": "app.py",
+ "app_file_embedding_text": "create_app zerogpu_ready_marker server_config gradio_launch_config should_launch_gradio_space should_self_launch _space_sdk Unified ASGI entrypoint for API and Gradio UI. build_app Create one FastAPI ASGI app with Gradio mounted at the root. gr.mount_gradio_app path _SpacesShim ready os.getenv int lower __main__ GPU self fn GRADIO_SERVER_NAME host port server_name server_port ssr_mode str bool 1 demo.launch / decorator inner HOST 0.0.0.0 7860 SPACE_ID FORCE_SELF_LAUNCH strip uvicorn.run GRADIO_SERVER_PORT PORT 7861 SPACE_SDK HF_SPACE_SDK"
},
{
"id": "build-small-hackathon/backyard-dudu-destroyer",
@@ -192,10 +221,12 @@
"likes": 0,
"sdk": "gradio",
"license": "apache-2.0",
- "created_at": "2026-06-05T19:51:00.000Z",
- "last_modified": "2026-06-05T19:51:00.000Z",
+ "created_at": "2026-06-05T19:51:00+00:00",
+ "last_modified": "2026-06-05T19:51:00+00:00",
"host": "https://build-small-hackathon-backyard-dudu-destroyer.hf.space",
- "url": "https://huggingface.co/spaces/build-small-hackathon/backyard-dudu-destroyer"
+ "url": "https://huggingface.co/spaces/build-small-hackathon/backyard-dudu-destroyer",
+ "app_file": "app.py",
+ "app_file_embedding_text": "greet name gr.Interface fn inputs outputs demo.launch !! text Hello"
},
{
"id": "build-small-hackathon/backyard-raccoon-deterrent",
@@ -213,10 +244,32 @@
"likes": 0,
"sdk": "gradio",
"license": "mit",
- "created_at": "2026-06-05T19:17:40.000Z",
- "last_modified": "2026-06-06T14:06:45.000Z",
+ "created_at": "2026-06-05T19:17:40+00:00",
+ "last_modified": "2026-06-06T14:06:45+00:00",
"host": "https://build-small-hackathon-backyard-raccoon-deterrent.hf.space",
- "url": "https://huggingface.co/spaces/build-small-hackathon/backyard-raccoon-deterrent"
+ "url": "https://huggingface.co/spaces/build-small-hackathon/backyard-raccoon-deterrent",
+ "app_file": "app.py",
+ "app_file_embedding_text": "detect image conf Backyard Raccoon Deterrent — Gradio Space. Fine-tuned YOLOv8n raccoon detector, the vision component of a real Ring-camera deterrent. Upload a backyard photo (daytime or IR night frame) and the model draws boxes, lists detections, and tells you what the deterrent would do. Runs fully offline — no cloud APIs. os.environ.get YOLO gr.Interface fn inputs outputs examples title description article MODEL_PATH raccoon-yolov8n-v1.4.onnx Run detection and return (annotated image, table rows, deterrent verdict). any __main__ demo.launch model.predict verbose tolist float boxes.append rows.append max default examples/ir_raccoon_pair.jpg examples/ir_raccoon_solo.jpg examples/ir_raccoon_prowler.jpg examples/night_empty.jpg os.path.exists 🦝 Backyard Raccoon Deterrent Fine-tuned **YOLOv8n** raccoon detector (v1.4) — the eyes of a real Ring-camera deterrent. Trained on 560+ hand-labeled night-vision frames of raccoons raiding my yard, including trajectory frames pulled from real motion events (**P 93.5% · R 85.9% · mAP50 92.8%** on a held-out val split, ~24 ms inference). Runs fully offline. Upload a frame or click an example. Built for the Gradio **Build Small** hackathon (Backyard AI track). The deployed system pairs this model with audio + smart-light deterrents on a Raspberry Pi — fully offline, no cloud APIs. [Source on GitHub](https://github.com/sappkevin/backyard-raccoon-deterrent). Upload a frame to begin. int 🦝 Raccoon detected ( ) → BARK + LIGHTS would fire 🐾 Animal seen, but no raccoon — deterrent stays quiet ✅ All clear — nothing detected gr.Image type label gr.Slider value step gr.AnnotatedImage gr.Dataframe headers gr.Textbox round raccoon .2f pil Backyard frame Confidence threshold Detections What the model saw Deterrent verdict animal confidence"
+ },
+ {
+ "id": "build-small-hackathon/blind-quill",
+ "title": "Blind Quill",
+ "summary": "",
+ "tags": [
+ "gradio",
+ "region:us"
+ ],
+ "models": [],
+ "datasets": [],
+ "likes": 0,
+ "sdk": "gradio",
+ "license": "mit",
+ "created_at": "2026-06-06T20:41:25+00:00",
+ "last_modified": "2026-06-07T11:35:12+00:00",
+ "host": "https://build-small-hackathon-blind-quill.hf.space",
+ "url": "https://huggingface.co/spaces/build-small-hackathon/blind-quill",
+ "app_file": "app.py",
+ "app_file_embedding_text": "_guard call build_server _port _should_launch Blind Quill — gradio.Server backend for the custom \"Invisible Bindery\" frontend. The UI lives in web/ as the production React-via-Babel frontend. Here we serve that frontend and expose the bindery as queued Gradio API endpoints, so the rich custom UI keeps Gradio's queue, concurrency control, and ZeroGPU. list_stories get_capsule story_id create_story seed stitch fragment read_manuscript homepage web Run a flow, converting known failures into client-visible gr.Error messages. Server title app.api name concurrency_limit concurrency_id app.mount app.get response_class app.launch server_name server_port show_error resolve /web StaticFiles directory read_text encoding / GRADIO_SERVER_PORT PORT os.environ.get 1 bool gr.Error traceback.print_exc Blind Quill stories story card_dict full_story_dict bindery reveal reveal_dict BQ_NO_LAUNCH __main__ 0.0.0.0 Path str The bindery hit an internal error. Please try again. utf-8 int SPACE_ID index.html"
},
{
"id": "build-small-hackathon/borderless",
@@ -226,17 +279,17 @@
"gradio",
"region:us"
],
- "models": [
- "Qwen/Qwen3.6-27B"
- ],
+ "models": [],
"datasets": [],
- "likes": 1,
+ "likes": 4,
"sdk": "gradio",
"license": "",
- "created_at": "2026-06-05T05:26:45.000Z",
- "last_modified": "2026-06-06T07:32:19.000Z",
+ "created_at": "2026-06-05T05:26:45+00:00",
+ "last_modified": "2026-06-06T07:32:19+00:00",
"host": "https://build-small-hackathon-borderless.hf.space",
- "url": "https://huggingface.co/spaces/build-small-hackathon/borderless"
+ "url": "https://huggingface.co/spaces/build-small-hackathon/borderless",
+ "app_file": "app.py",
+ "app_file_embedding_text": "create_demo assets read_text encoding __main__ demo.launch resolve gr.Blocks fill_height title render_sidebar create_main_workspace history_container utf-8 globe_head_html Path Borderless - Immigration Research Agent app.css"
},
{
"id": "build-small-hackathon/bridge-troll",
@@ -246,18 +299,17 @@
"gradio",
"region:us"
],
- "models": [
- "10Pratibh/gorm-lora",
- "Qwen/Qwen2.5-7B-Instruct"
- ],
+ "models": [],
"datasets": [],
"likes": 0,
"sdk": "gradio",
"license": "mit",
- "created_at": "2026-06-05T06:01:32.000Z",
- "last_modified": "2026-06-06T10:11:58.000Z",
+ "created_at": "2026-06-05T06:01:32+00:00",
+ "last_modified": "2026-06-06T10:11:58+00:00",
"host": "https://build-small-hackathon-bridge-troll.hf.space",
- "url": "https://huggingface.co/spaces/build-small-hackathon/bridge-troll"
+ "url": "https://huggingface.co/spaces/build-small-hackathon/bridge-troll",
+ "app_file": "app.py",
+ "app_file_embedding_text": "_generate messages _meter_html resolve won lost _reveal state on_submit user_text chat on_reset Bridge Troll — Gradio app. Each session, Gorm is secretly assigned one of several hidden NATURES. The player wins by discovering what moves THIS troll — generic sob stories are discounted. On win (resolve -> 0) or loss (resolve -> LOSE_AT, he hurls you back), a reveal card shows what his nature was. Local loop test (no GPU/download): BRIDGE_TROLL_MOCK=1 python app.py get_backend gpu duration A mossy troll heaves himself upright across the only bridge over the Mirebeck. *\"None cross Gorm's bridge for free, traveller. Give me a reason — a *good* one.\"* _backend.generate max strip parse_judgment state.history.append state.apply gr.update interactive placeholder GameState nature gr.Blocks title gr.Markdown gr.HTML gr.Chatbot value height show_label elem_id gr.Button size gr.State then reset.click demo.load __main__ demo.launch css theme GORM HAS STEPPED ASIDE 🌉 GORM HURLS YOU BACK 💢 min Gorm's Resolve —
### 💢 Gorm lost patience and hurled you back. **His hidden nature was:** * * — moved by . You leaned too hard on what he can't stand: . build_messages ## 🧌🌉 Bridge Troll *Talk your way across — if your argument is actually good. Every troll is hiding something different.* os.environ.get 1 gr.Row gr.Textbox scale autofocus variant New traveller round ### 🌉 You crossed in turns. **This Gorm's hidden nature:** * role content user assistant * * · random_nature Bridge Troll BRIDGE_TROLL_MOCK > ⚠️ **MOCK MODE** — keyword stub, not the real model. Natures, discovery, and probing do NOT work here. Run on the Space (no `BRIDGE_TROLL_MOCK`) to play the real Gorm. why reveal Say it sm send.click box.submit gr.themes.Soft callable name soft sore genuine · persuasiveness /5 The bridge is yours. Speak to Gorm… primary Gorm has thrown you out."
},
{
"id": "build-small-hackathon/briefing-32",
@@ -267,17 +319,17 @@
"gradio",
"region:us"
],
- "models": [
- "Qwen/Qwen3-32B"
- ],
+ "models": [],
"datasets": [],
"likes": 0,
"sdk": "gradio",
"license": "apache-2.0",
- "created_at": "2026-05-18T19:55:29.000Z",
- "last_modified": "2026-05-18T20:10:19.000Z",
+ "created_at": "2026-05-18T19:55:29+00:00",
+ "last_modified": "2026-05-18T20:10:19+00:00",
"host": "https://build-small-hackathon-briefing-32.hf.space",
- "url": "https://huggingface.co/spaces/build-small-hackathon/briefing-32"
+ "url": "https://huggingface.co/spaces/build-small-hackathon/briefing-32",
+ "app_file": "app.py",
+ "app_file_embedding_text": "run_briefing window_hours enabled_sources model hf_token _items_to_df items _stats_md result _gradio_handler sources briefing-32 — Gradio app entry for Hugging Face Spaces. Build Small Hackathon submission (Backyard AI track): A small-model down-port of ~/ai-news-agent. The production version uses Groq Llama-3.3-70B; this version fits the same workflow under 32B params using Qwen3-32B via Hugging Face Inference Providers. Same pipeline as the every-2-hours cron the maker has running on a laptop: fetch RSS / HN / arXiv / GitHub -> two-pass relevance filter + ranker -> readable digest. Gradio is the delivery surface here instead of WhatsApp. set body_background_fill body_text_color block_background_fill block_border_width block_border_color button_primary_background_fill button_primary_text_color Fetch -> filter -> rank -> digest. Returns everything for the UI. time.perf_counter fetch_all enabled RankerConfig base_url api_key rank_pipeline cfg pd.DataFrame gr.Blocks theme title gr.Markdown run_btn.click inputs outputs __main__ launch server_name server_port time.time make_digest digest raw_count after_filter after_rank fetch_latency filter_latency rank_latency columns **Model:** ` ` **Raw items fetched:** **Survived filter:** **Survived rank (score ≥ 6):** **Fetch latency:** s **Filter latency:** s **Rank latency:** s **Total LLM time:** s gr.themes.Soft primary_hue secondary_hue neutral_hue #0b1220 #e2e8f0 #111827 1px #1f2937 #f97316 # briefing-32 **A 32B-class AI-news briefing the maker runs every 2 hours.** Build Small Hackathon entry (Backyard AI track). Down-ported from the production `ai-news-agent` cron (Groq Llama-3.3-70B → WhatsApp) onto Qwen3-32B served by Hugging Face Inference Providers. Pipeline: RSS + HN + arXiv + GitHub → cheap relevance filter → graded 0–10 ranker → readable digest. Two open-weight model calls, no 70B cloud round-trip required. gr.Row --- *Build Small Hackathon · Backyard AI track. Apache 2.0.* Code: [github.com/MukundaKatta/briefing-32](https://github.com/MukundaKatta/briefing-32) rss hn arxiv github _(no high-signal items in window)_ score source reason url it.get briefing-32 · Build Small entry gr.Column scale gr.Slider minimum maximum value step label info gr.CheckboxGroup choices gr.Textbox placeholder type gr.Button variant gr.Dataframe headers wrap interactive demo.queue max_size os.environ.get int .1f list strip _no run yet_ orange slate zinc ### Controls Run briefing ### Run stats ### Digest ### Ranked items GRADIO_SERVER_NAME 0.0.0.0 **Error:** ` ` Make sure `HF_TOKEN` is set in Space secrets or pasted into the sidebar. Window (hours back) Production runs every 2hr — match that for the authentic story. Sources Model (≤32B params) Default Qwen3-32B. Swap to Qwen3-30B-A3B for faster MoE inference. HF_TOKEN (optional — reads env if blank) hf_… password primary _Click **Run briefing** to fetch the last N hours of AI news, rank it on a ≤32B model, and render a readable briefing._ PORT 7860"
},
{
"id": "build-small-hackathon/business-order-assistant",
@@ -292,10 +344,12 @@
"likes": 1,
"sdk": "gradio",
"license": "mit",
- "created_at": "2026-06-05T08:14:41.000Z",
- "last_modified": "2026-06-05T21:16:24.000Z",
+ "created_at": "2026-06-05T08:14:41+00:00",
+ "last_modified": "2026-06-05T21:16:24+00:00",
"host": "https://build-small-hackathon-business-order-assistant.hf.space",
- "url": "https://huggingface.co/spaces/build-small-hackathon/business-order-assistant"
+ "url": "https://huggingface.co/spaces/build-small-hackathon/business-order-assistant",
+ "app_file": "app.py",
+ "app_file_embedding_text": "_post url payload timeout ensure_session state render_schema_preview columns sample_df row_count render_sources sources handle_upload csv_file transcribe_audio audio_path chat_fn message ui_history business_name generate_embed space_id build_ui CatalogChat — Gradio frontend Hackathon: Gradio Backyard AI Hackathon (June 2026) Stack: Gradio ChatInterface + Modal backend (Whisper + Qwen2.5-7B) os.environ.get MODAL_BUILD_INDEX_URL https://sopeadegboyega--catalog-assistant-build-index.modal.run MODAL_CHAT_QUERY_URL https://sopeadegboyega--catalog-assistant-chat-query.modal.run MODAL_TRANSCRIBE_URL POST to Modal endpoint, return JSON or raise. requests.post json resp.raise_for_status resp.json Create per-browser catalog state lazily. state.setdefault join Called when user uploads a CSV. 1. Reads first 5 rows for schema preview. 2. Sends full CSV to Modal /build_index. 3. Stores session token in state. Returns: schema_html, status_msg, updated_state Send audio file to Modal Whisper endpoint, return transcript. Called by gr.ChatInterface on each user message. Sends message + history to Modal /chat_query. Return iframe embed snippet for a HF Space. space_id.strip respond history business __main__ demo.launch css theme share isinstance data.get RuntimeError session_id str catalog_loaded Catalog preview · columns Column Type Sample Matched products will appear here after a reply. csv_bytes.decode pd.read_csv nrows list ⚠ MODAL_BUILD_INDEX_URL not set — running in demo mode os.path.basename to_dict orient result.get decode message.strip state.get _(Demo mode)_ No matching products found for that query. extend Enter your HF Space ID above.