diff --git a/examples/p2p-webrtc/video-transform/README.md b/examples/p2p-webrtc/video-transform/README.md index 7125e3e68..fdc4a8862 100644 --- a/examples/p2p-webrtc/video-transform/README.md +++ b/examples/p2p-webrtc/video-transform/README.md @@ -35,9 +35,19 @@ cd server python server.py ``` -### 2️⃣ Connect Using the Client App +### 2️⃣ Test with SmallWebRTC Prebuilt UI -For client-side setup, refer to the [JavaScript Guide](client/typescript/README.md). +You can quickly test your bot using the `SmallWebRTCPrebuiltUI`: + +- Open your browser and navigate to: +👉 http://localhost:7860 + - (Or use your custom port, if configured) + +### 3️⃣ Connect Using a Custom Client App + +For client-side setup, refer to the: +- [Typescript Guide](client/typescript/README.md). +- [iOS Guide](client/ios/README.md). ## ⚠️ Important Note Ensure the bot server is running before using any client implementations. diff --git a/examples/p2p-webrtc/video-transform/server/requirements.txt b/examples/p2p-webrtc/video-transform/server/requirements.txt index 24579bd41..d5aa05ef3 100644 --- a/examples/p2p-webrtc/video-transform/server/requirements.txt +++ b/examples/p2p-webrtc/video-transform/server/requirements.txt @@ -3,4 +3,5 @@ fastapi[all] uvicorn aiortc opencv-python -pipecat-ai[google,silero] \ No newline at end of file +pipecat-ai[google,silero,webrtc] +pipecat-ai-small-webrtc-prebuilt \ No newline at end of file diff --git a/examples/p2p-webrtc/video-transform/server/server.py b/examples/p2p-webrtc/video-transform/server/server.py index 79ee75ea3..295fe4f44 100644 --- a/examples/p2p-webrtc/video-transform/server/server.py +++ b/examples/p2p-webrtc/video-transform/server/server.py @@ -8,6 +8,8 @@ import uvicorn from bot import run_bot from dotenv import load_dotenv from fastapi import BackgroundTasks, FastAPI +from fastapi.responses import RedirectResponse +from pipecat_ai_small_webrtc_prebuilt.frontend import SmallWebRTCPrebuiltUI from pipecat.transports.network.webrtc_connection import SmallWebRTCConnection @@ -23,6 +25,14 @@ pcs_map: Dict[str, SmallWebRTCConnection] = {} ice_servers = ["stun:stun.l.google.com:19302"] +# Mount the frontend at / +app.mount("/prebuilt", SmallWebRTCPrebuiltUI) + + +@app.get("/", include_in_schema=False) +async def root_redirect(): + return RedirectResponse(url="/prebuilt/") + @app.post("/api/offer") async def offer(request: dict, background_tasks: BackgroundTasks):