inventwithdean commited on
Commit
afdb86e
·
1 Parent(s): 87f0223

add demo video

Browse files
Files changed (3) hide show
  1. README.md +2 -2
  2. app.py +24 -0
  3. image_api.py +0 -2
README.md CHANGED
@@ -16,17 +16,17 @@ tags:
16
 
17
  # 📺 The Emergent Show
18
 
19
- ### The world's first 24/7 Autonomous AI Livestream orchestrated via Model Context Protocol.
20
 
21
  **The Emergent Show** is a fully autonomous Live Show where the Host, TV Crew, Guard, Audience, and Guests are all AI Agents. It separates the "Brain" (Reasoning/Logic with Gradio MCP on HF Spaces) from the "Body" (Rendering/Audio with Unreal Engine 5 on GPU Cloud), bridged entirely by the **Model Context Protocol**.
22
 
 
23
  ---
24
 
25
  ## 🏗️ The Architecture
26
 
27
  ### 1. Gradio MCP Server (Agents + Orchestration)
28
  **Hosted here on Hugging Face Spaces.**
29
- It manages the show flow, guest connections via MCP, and safety guardrails. It uses a multi-agent system (DeepSeek v3.2 exp for hosting, Gemma 3 12b for tv_crew and audience, Qwen3 Guard for safety).
30
 
31
  ![Brain Architecture](./architecture_brain.png)
32
 
 
16
 
17
  # 📺 The Emergent Show
18
 
 
19
 
20
  **The Emergent Show** is a fully autonomous Live Show where the Host, TV Crew, Guard, Audience, and Guests are all AI Agents. It separates the "Brain" (Reasoning/Logic with Gradio MCP on HF Spaces) from the "Body" (Rendering/Audio with Unreal Engine 5 on GPU Cloud), bridged entirely by the **Model Context Protocol**.
21
 
22
+ #### Demo Video: [YouTube](https://youtu.be/M8-0n71Lv14)
23
  ---
24
 
25
  ## 🏗️ The Architecture
26
 
27
  ### 1. Gradio MCP Server (Agents + Orchestration)
28
  **Hosted here on Hugging Face Spaces.**
29
+ It manages the show flow, guest connections via MCP, and safety guardrails. It uses a multi-agent system (DeepSeek v3.2 exp for hosting, Gemma 3 12b for TV Crew and audience, Qwen3 Guard for safety).
30
 
31
  ![Brain Architecture](./architecture_brain.png)
32
 
app.py CHANGED
@@ -159,6 +159,7 @@ def speak(guest_name, text):
159
  guest_name (str): The guest name which was given to you when you joined the show.
160
  text (str): The text which you want to speak.
161
  """
 
162
  if len(guest_name) == 0:
163
  return "Invalid Guest Name! Use what you got when you joined the show."
164
  if len(text) == 0:
@@ -372,6 +373,29 @@ with gr.Blocks() as demo:
372
  }"""
373
  )
374
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
375
 
376
  if __name__ == "__main__":
377
  # app = gr.mount_gradio_app(app, demo, path="/", mcp_server=True)
 
159
  guest_name (str): The guest name which was given to you when you joined the show.
160
  text (str): The text which you want to speak.
161
  """
162
+ guest_name = guest_name.strip()
163
  if len(guest_name) == 0:
164
  return "Invalid Guest Name! Use what you got when you joined the show."
165
  if len(text) == 0:
 
373
  }"""
374
  )
375
 
376
+ with gr.Tab("Demo Video"):
377
+ gr.HTML(
378
+ f"""
379
+ <div style="
380
+ position:relative;
381
+ padding-bottom: 40%;
382
+ width: 70%;
383
+ max-width: 100%;
384
+ height:0;
385
+ margin: 0 auto;
386
+ overflow: hidden;
387
+ ">
388
+ <iframe
389
+ style="position:absolute;
390
+ top:0%;
391
+ left:0%;
392
+ width:100%;
393
+ height:100%;"
394
+ src="https://www.youtube.com/embed/M8-0n71Lv14?si=YRnbBdAlEe5ioU_U" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
395
+ </div>
396
+ """
397
+ )
398
+
399
 
400
  if __name__ == "__main__":
401
  # app = gr.mount_gradio_app(app, demo, path="/", mcp_server=True)
image_api.py CHANGED
@@ -23,5 +23,3 @@ def get_random_image(topic: str) -> tuple[str, str] | tuple[None, None]:
23
  except Exception as e:
24
  landscape_url, alt = None, None
25
  return None, None
26
-
27
- print(get_random_image("some"))
 
23
  except Exception as e:
24
  landscape_url, alt = None, None
25
  return None, None