From 974e989cb59269acf465f0ce94b5383bbf5a1427 Mon Sep 17 00:00:00 2001 From: Chad Bailey Date: Thu, 3 Apr 2025 17:18:26 +0000 Subject: [PATCH] fixup --- .../README.md | 0 .../client-react/.gitignore | 0 .../client-react/README.md | 0 .../client-react/env.local.example | 0 .../client-react/eslint.config.mjs | 0 .../client-react/next.config.ts | 0 .../client-react/package-lock.json | 0 .../client-react/package.json | 0 .../client-react/src/app/api/connect/route.ts | 0 .../client-react/src/app/globals.css | 0 .../client-react/src/app/layout.tsx | 0 .../client-react/src/app/page.tsx | 0 .../src/components/ConnectButton.tsx | 0 .../src/components/DebugDisplay.css | 0 .../src/components/DebugDisplay.tsx | 0 .../src/components/StatusDisplay.tsx | 0 .../src/providers/RTVIProvider.tsx | 0 .../client-react/tsconfig.json | 0 .../image.png | Bin .../server/.gitignore | 0 .../server/Dockerfile | 5 +- .../server/README.md | 0 .../server/assets/robot01.png | Bin .../server/assets/robot010.png | Bin .../server/assets/robot011.png | Bin .../server/assets/robot012.png | Bin .../server/assets/robot013.png | Bin .../server/assets/robot014.png | Bin .../server/assets/robot015.png | Bin .../server/assets/robot016.png | Bin .../server/assets/robot017.png | Bin .../server/assets/robot018.png | Bin .../server/assets/robot019.png | Bin .../server/assets/robot02.png | Bin .../server/assets/robot020.png | Bin .../server/assets/robot021.png | Bin .../server/assets/robot022.png | Bin .../server/assets/robot023.png | Bin .../server/assets/robot024.png | Bin .../server/assets/robot025.png | Bin .../server/assets/robot03.png | Bin .../server/assets/robot04.png | Bin .../server/assets/robot05.png | Bin .../server/assets/robot06.png | Bin .../server/assets/robot07.png | Bin .../server/assets/robot08.png | Bin .../server/assets/robot09.png | Bin .../server/bot.py | 40 +++++++++----- .../server/build.sh | 6 +-- .../server/env.example | 0 .../server/index.html | 0 .../server/local_runner.py | 0 .../server/pcc-deploy.toml | 7 +++ .../server/requirements.txt | 5 ++ .../server/server.py | 0 examples/pcc-transport/server/pcc-deploy.toml | 6 --- .../pcc-transport/server/requirements.txt | 5 -- .../transports/services/pipecat_cloud.py | 51 +++++++++++++----- 58 files changed, 85 insertions(+), 40 deletions(-) rename examples/{pcc-transport => pcc-transport-chatbot}/README.md (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/.gitignore (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/README.md (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/env.local.example (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/eslint.config.mjs (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/next.config.ts (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/package-lock.json (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/package.json (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/src/app/api/connect/route.ts (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/src/app/globals.css (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/src/app/layout.tsx (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/src/app/page.tsx (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/src/components/ConnectButton.tsx (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/src/components/DebugDisplay.css (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/src/components/DebugDisplay.tsx (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/src/components/StatusDisplay.tsx (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/src/providers/RTVIProvider.tsx (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/client-react/tsconfig.json (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/image.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/.gitignore (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/Dockerfile (63%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/README.md (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot01.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot010.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot011.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot012.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot013.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot014.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot015.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot016.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot017.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot018.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot019.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot02.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot020.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot021.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot022.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot023.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot024.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot025.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot03.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot04.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot05.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot06.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot07.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot08.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/assets/robot09.png (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/bot.py (90%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/build.sh (87%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/env.example (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/index.html (100%) rename examples/{pcc-transport => pcc-transport-chatbot}/server/local_runner.py (100%) create mode 100644 examples/pcc-transport-chatbot/server/pcc-deploy.toml create mode 100644 examples/pcc-transport-chatbot/server/requirements.txt rename examples/{pcc-transport => pcc-transport-chatbot}/server/server.py (100%) delete mode 100644 examples/pcc-transport/server/pcc-deploy.toml delete mode 100644 examples/pcc-transport/server/requirements.txt diff --git a/examples/pcc-transport/README.md b/examples/pcc-transport-chatbot/README.md similarity index 100% rename from examples/pcc-transport/README.md rename to examples/pcc-transport-chatbot/README.md diff --git a/examples/pcc-transport/client-react/.gitignore b/examples/pcc-transport-chatbot/client-react/.gitignore similarity index 100% rename from examples/pcc-transport/client-react/.gitignore rename to examples/pcc-transport-chatbot/client-react/.gitignore diff --git a/examples/pcc-transport/client-react/README.md b/examples/pcc-transport-chatbot/client-react/README.md similarity index 100% rename from examples/pcc-transport/client-react/README.md rename to examples/pcc-transport-chatbot/client-react/README.md diff --git a/examples/pcc-transport/client-react/env.local.example b/examples/pcc-transport-chatbot/client-react/env.local.example similarity index 100% rename from examples/pcc-transport/client-react/env.local.example rename to examples/pcc-transport-chatbot/client-react/env.local.example diff --git a/examples/pcc-transport/client-react/eslint.config.mjs b/examples/pcc-transport-chatbot/client-react/eslint.config.mjs similarity index 100% rename from examples/pcc-transport/client-react/eslint.config.mjs rename to examples/pcc-transport-chatbot/client-react/eslint.config.mjs diff --git a/examples/pcc-transport/client-react/next.config.ts b/examples/pcc-transport-chatbot/client-react/next.config.ts similarity index 100% rename from examples/pcc-transport/client-react/next.config.ts rename to examples/pcc-transport-chatbot/client-react/next.config.ts diff --git a/examples/pcc-transport/client-react/package-lock.json b/examples/pcc-transport-chatbot/client-react/package-lock.json similarity index 100% rename from examples/pcc-transport/client-react/package-lock.json rename to examples/pcc-transport-chatbot/client-react/package-lock.json diff --git a/examples/pcc-transport/client-react/package.json b/examples/pcc-transport-chatbot/client-react/package.json similarity index 100% rename from examples/pcc-transport/client-react/package.json rename to examples/pcc-transport-chatbot/client-react/package.json diff --git a/examples/pcc-transport/client-react/src/app/api/connect/route.ts b/examples/pcc-transport-chatbot/client-react/src/app/api/connect/route.ts similarity index 100% rename from examples/pcc-transport/client-react/src/app/api/connect/route.ts rename to examples/pcc-transport-chatbot/client-react/src/app/api/connect/route.ts diff --git a/examples/pcc-transport/client-react/src/app/globals.css b/examples/pcc-transport-chatbot/client-react/src/app/globals.css similarity index 100% rename from examples/pcc-transport/client-react/src/app/globals.css rename to examples/pcc-transport-chatbot/client-react/src/app/globals.css diff --git a/examples/pcc-transport/client-react/src/app/layout.tsx b/examples/pcc-transport-chatbot/client-react/src/app/layout.tsx similarity index 100% rename from examples/pcc-transport/client-react/src/app/layout.tsx rename to examples/pcc-transport-chatbot/client-react/src/app/layout.tsx diff --git a/examples/pcc-transport/client-react/src/app/page.tsx b/examples/pcc-transport-chatbot/client-react/src/app/page.tsx similarity index 100% rename from examples/pcc-transport/client-react/src/app/page.tsx rename to examples/pcc-transport-chatbot/client-react/src/app/page.tsx diff --git a/examples/pcc-transport/client-react/src/components/ConnectButton.tsx b/examples/pcc-transport-chatbot/client-react/src/components/ConnectButton.tsx similarity index 100% rename from examples/pcc-transport/client-react/src/components/ConnectButton.tsx rename to examples/pcc-transport-chatbot/client-react/src/components/ConnectButton.tsx diff --git a/examples/pcc-transport/client-react/src/components/DebugDisplay.css b/examples/pcc-transport-chatbot/client-react/src/components/DebugDisplay.css similarity index 100% rename from examples/pcc-transport/client-react/src/components/DebugDisplay.css rename to examples/pcc-transport-chatbot/client-react/src/components/DebugDisplay.css diff --git a/examples/pcc-transport/client-react/src/components/DebugDisplay.tsx b/examples/pcc-transport-chatbot/client-react/src/components/DebugDisplay.tsx similarity index 100% rename from examples/pcc-transport/client-react/src/components/DebugDisplay.tsx rename to examples/pcc-transport-chatbot/client-react/src/components/DebugDisplay.tsx diff --git a/examples/pcc-transport/client-react/src/components/StatusDisplay.tsx b/examples/pcc-transport-chatbot/client-react/src/components/StatusDisplay.tsx similarity index 100% rename from examples/pcc-transport/client-react/src/components/StatusDisplay.tsx rename to examples/pcc-transport-chatbot/client-react/src/components/StatusDisplay.tsx diff --git a/examples/pcc-transport/client-react/src/providers/RTVIProvider.tsx b/examples/pcc-transport-chatbot/client-react/src/providers/RTVIProvider.tsx similarity index 100% rename from examples/pcc-transport/client-react/src/providers/RTVIProvider.tsx rename to examples/pcc-transport-chatbot/client-react/src/providers/RTVIProvider.tsx diff --git a/examples/pcc-transport/client-react/tsconfig.json b/examples/pcc-transport-chatbot/client-react/tsconfig.json similarity index 100% rename from examples/pcc-transport/client-react/tsconfig.json rename to examples/pcc-transport-chatbot/client-react/tsconfig.json diff --git a/examples/pcc-transport/image.png b/examples/pcc-transport-chatbot/image.png similarity index 100% rename from examples/pcc-transport/image.png rename to examples/pcc-transport-chatbot/image.png diff --git a/examples/pcc-transport/server/.gitignore b/examples/pcc-transport-chatbot/server/.gitignore similarity index 100% rename from examples/pcc-transport/server/.gitignore rename to examples/pcc-transport-chatbot/server/.gitignore diff --git a/examples/pcc-transport/server/Dockerfile b/examples/pcc-transport-chatbot/server/Dockerfile similarity index 63% rename from examples/pcc-transport/server/Dockerfile rename to examples/pcc-transport-chatbot/server/Dockerfile index 95ef04a41..270760c71 100644 --- a/examples/pcc-transport/server/Dockerfile +++ b/examples/pcc-transport-chatbot/server/Dockerfile @@ -1,4 +1,7 @@ FROM dailyco/pipecat-base:latest +RUN apt-get update && apt-get install ffmpeg -y + +COPY ./pipecat pipecat COPY ./requirements.txt requirements.txt @@ -6,4 +9,4 @@ COPY ./assets assets RUN pip install --no-cache-dir --upgrade -r requirements.txt -COPY ./bot.py bot.py \ No newline at end of file +COPY ./bot.py bot.py diff --git a/examples/pcc-transport/server/README.md b/examples/pcc-transport-chatbot/server/README.md similarity index 100% rename from examples/pcc-transport/server/README.md rename to examples/pcc-transport-chatbot/server/README.md diff --git a/examples/pcc-transport/server/assets/robot01.png b/examples/pcc-transport-chatbot/server/assets/robot01.png similarity index 100% rename from examples/pcc-transport/server/assets/robot01.png rename to examples/pcc-transport-chatbot/server/assets/robot01.png diff --git a/examples/pcc-transport/server/assets/robot010.png b/examples/pcc-transport-chatbot/server/assets/robot010.png similarity index 100% rename from examples/pcc-transport/server/assets/robot010.png rename to examples/pcc-transport-chatbot/server/assets/robot010.png diff --git a/examples/pcc-transport/server/assets/robot011.png b/examples/pcc-transport-chatbot/server/assets/robot011.png similarity index 100% rename from examples/pcc-transport/server/assets/robot011.png rename to examples/pcc-transport-chatbot/server/assets/robot011.png diff --git a/examples/pcc-transport/server/assets/robot012.png b/examples/pcc-transport-chatbot/server/assets/robot012.png similarity index 100% rename from examples/pcc-transport/server/assets/robot012.png rename to examples/pcc-transport-chatbot/server/assets/robot012.png diff --git a/examples/pcc-transport/server/assets/robot013.png b/examples/pcc-transport-chatbot/server/assets/robot013.png similarity index 100% rename from examples/pcc-transport/server/assets/robot013.png rename to examples/pcc-transport-chatbot/server/assets/robot013.png diff --git a/examples/pcc-transport/server/assets/robot014.png b/examples/pcc-transport-chatbot/server/assets/robot014.png similarity index 100% rename from examples/pcc-transport/server/assets/robot014.png rename to examples/pcc-transport-chatbot/server/assets/robot014.png diff --git a/examples/pcc-transport/server/assets/robot015.png b/examples/pcc-transport-chatbot/server/assets/robot015.png similarity index 100% rename from examples/pcc-transport/server/assets/robot015.png rename to examples/pcc-transport-chatbot/server/assets/robot015.png diff --git a/examples/pcc-transport/server/assets/robot016.png b/examples/pcc-transport-chatbot/server/assets/robot016.png similarity index 100% rename from examples/pcc-transport/server/assets/robot016.png rename to examples/pcc-transport-chatbot/server/assets/robot016.png diff --git a/examples/pcc-transport/server/assets/robot017.png b/examples/pcc-transport-chatbot/server/assets/robot017.png similarity index 100% rename from examples/pcc-transport/server/assets/robot017.png rename to examples/pcc-transport-chatbot/server/assets/robot017.png diff --git a/examples/pcc-transport/server/assets/robot018.png b/examples/pcc-transport-chatbot/server/assets/robot018.png similarity index 100% rename from examples/pcc-transport/server/assets/robot018.png rename to examples/pcc-transport-chatbot/server/assets/robot018.png diff --git a/examples/pcc-transport/server/assets/robot019.png b/examples/pcc-transport-chatbot/server/assets/robot019.png similarity index 100% rename from examples/pcc-transport/server/assets/robot019.png rename to examples/pcc-transport-chatbot/server/assets/robot019.png diff --git a/examples/pcc-transport/server/assets/robot02.png b/examples/pcc-transport-chatbot/server/assets/robot02.png similarity index 100% rename from examples/pcc-transport/server/assets/robot02.png rename to examples/pcc-transport-chatbot/server/assets/robot02.png diff --git a/examples/pcc-transport/server/assets/robot020.png b/examples/pcc-transport-chatbot/server/assets/robot020.png similarity index 100% rename from examples/pcc-transport/server/assets/robot020.png rename to examples/pcc-transport-chatbot/server/assets/robot020.png diff --git a/examples/pcc-transport/server/assets/robot021.png b/examples/pcc-transport-chatbot/server/assets/robot021.png similarity index 100% rename from examples/pcc-transport/server/assets/robot021.png rename to examples/pcc-transport-chatbot/server/assets/robot021.png diff --git a/examples/pcc-transport/server/assets/robot022.png b/examples/pcc-transport-chatbot/server/assets/robot022.png similarity index 100% rename from examples/pcc-transport/server/assets/robot022.png rename to examples/pcc-transport-chatbot/server/assets/robot022.png diff --git a/examples/pcc-transport/server/assets/robot023.png b/examples/pcc-transport-chatbot/server/assets/robot023.png similarity index 100% rename from examples/pcc-transport/server/assets/robot023.png rename to examples/pcc-transport-chatbot/server/assets/robot023.png diff --git a/examples/pcc-transport/server/assets/robot024.png b/examples/pcc-transport-chatbot/server/assets/robot024.png similarity index 100% rename from examples/pcc-transport/server/assets/robot024.png rename to examples/pcc-transport-chatbot/server/assets/robot024.png diff --git a/examples/pcc-transport/server/assets/robot025.png b/examples/pcc-transport-chatbot/server/assets/robot025.png similarity index 100% rename from examples/pcc-transport/server/assets/robot025.png rename to examples/pcc-transport-chatbot/server/assets/robot025.png diff --git a/examples/pcc-transport/server/assets/robot03.png b/examples/pcc-transport-chatbot/server/assets/robot03.png similarity index 100% rename from examples/pcc-transport/server/assets/robot03.png rename to examples/pcc-transport-chatbot/server/assets/robot03.png diff --git a/examples/pcc-transport/server/assets/robot04.png b/examples/pcc-transport-chatbot/server/assets/robot04.png similarity index 100% rename from examples/pcc-transport/server/assets/robot04.png rename to examples/pcc-transport-chatbot/server/assets/robot04.png diff --git a/examples/pcc-transport/server/assets/robot05.png b/examples/pcc-transport-chatbot/server/assets/robot05.png similarity index 100% rename from examples/pcc-transport/server/assets/robot05.png rename to examples/pcc-transport-chatbot/server/assets/robot05.png diff --git a/examples/pcc-transport/server/assets/robot06.png b/examples/pcc-transport-chatbot/server/assets/robot06.png similarity index 100% rename from examples/pcc-transport/server/assets/robot06.png rename to examples/pcc-transport-chatbot/server/assets/robot06.png diff --git a/examples/pcc-transport/server/assets/robot07.png b/examples/pcc-transport-chatbot/server/assets/robot07.png similarity index 100% rename from examples/pcc-transport/server/assets/robot07.png rename to examples/pcc-transport-chatbot/server/assets/robot07.png diff --git a/examples/pcc-transport/server/assets/robot08.png b/examples/pcc-transport-chatbot/server/assets/robot08.png similarity index 100% rename from examples/pcc-transport/server/assets/robot08.png rename to examples/pcc-transport-chatbot/server/assets/robot08.png diff --git a/examples/pcc-transport/server/assets/robot09.png b/examples/pcc-transport-chatbot/server/assets/robot09.png similarity index 100% rename from examples/pcc-transport/server/assets/robot09.png rename to examples/pcc-transport-chatbot/server/assets/robot09.png diff --git a/examples/pcc-transport/server/bot.py b/examples/pcc-transport-chatbot/server/bot.py similarity index 90% rename from examples/pcc-transport/server/bot.py rename to examples/pcc-transport-chatbot/server/bot.py index 0e3a8a85c..62c356d75 100644 --- a/examples/pcc-transport/server/bot.py +++ b/examples/pcc-transport-chatbot/server/bot.py @@ -18,13 +18,15 @@ the conversation flow. """ import os +import sys import aiohttp from dotenv import load_dotenv from loguru import logger from PIL import Image -from pipecatcloud.agent import DailySessionArguments -from pipecatcloud.agent import SessionArguments as PCCSessionArguments +from pipecatcloud.agent import ( + DailySessionArguments, +) from pipecat.adapters.schemas.function_schema import FunctionSchema from pipecat.adapters.schemas.tools_schema import ToolsSchema @@ -43,17 +45,20 @@ from pipecat.pipeline.task import PipelineParams, PipelineTask from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext from pipecat.processors.frame_processor import FrameDirection, FrameProcessor from pipecat.processors.frameworks.rtvi import RTVIConfig, RTVIObserver, RTVIProcessor -from pipecat.services.cartesia import CartesiaTTSService -from pipecat.services.gladia import GladiaSTTService -from pipecat.services.openai import OpenAILLMService -from pipecat.transports.services.daily import DailyParams, DailyTransport +from pipecat.services.cartesia.tts import CartesiaTTSService +from pipecat.services.gladia.stt import GladiaSTTService +from pipecat.services.openai.llm import OpenAILLMService +from pipecat.transports.services.daily import DailyTransport from pipecat.transports.services.pipecat_cloud import ( PipecatCloudParams, + PipecatCloudSessionArguments, PipecatCloudTransport, - SessionArguments, ) load_dotenv(override=True) +logger.add(sys.stderr, level="DEBUG") + +print(f"DailyTransport: {DailyTransport}") # Check if we're in local development mode LOCAL_RUN = os.getenv("LOCAL_RUN") @@ -67,7 +72,7 @@ if LOCAL_RUN: logger.error("Could not import local_runner module. Local development mode may not work.") # Logger for local dev -# logger.add(sys.stderr, level="DEBUG") +logger.add(sys.stderr, level="DEBUG") sprites = [] script_dir = os.path.dirname(__file__) @@ -133,7 +138,7 @@ async def fetch_weather_from_api(function_name, tool_call_id, args, llm, context await result_callback({"conditions": "nice", "temperature": "75"}) -async def main(session_args: SessionArguments): +async def main(session_args: PipecatCloudSessionArguments): """Main bot execution function. Sets up and runs the bot pipeline including: @@ -276,10 +281,16 @@ async def bot(args: DailySessionArguments): body: The configuration object from the request body session_id: The session ID for logging """ - logger.info(f"Bot process initialized {args.room_url} {args.token}") + pcc_args = PipecatCloudSessionArguments( + room_url=args.room.url, + token=args.token, + body=args.body, + session_id=args.session_id, + ) + logger.info(f"Bot process initialized {pcc_args.room_url} {pcc_args.token}") try: - await main(args) + await main(pcc_args) logger.info("Bot process completed") except Exception as e: logger.exception(f"Error in bot process: {str(e)}") @@ -293,19 +304,22 @@ async def local_daily(): try: async with aiohttp.ClientSession() as session: (room_url, token) = await configure(session) + args = PipecatCloudSessionArguments( + room_url=room_url, token=token, body={}, session_id=None + ) logger.warning("_") logger.warning("_") logger.warning(f"Talk to your voice agent here: {room_url}") logger.warning("_") logger.warning("_") webbrowser.open(room_url) - await main(room_url, token, config={}) + await main(args) except Exception as e: logger.exception(f"Error in local development mode: {e}") async def local_webrtc(webrtc_connection): - await main(SessionArguments(webrtc_connection=webrtc_connection)) + await main(PipecatCloudSessionArguments(webrtc_connection=webrtc_connection)) # Local development entry point diff --git a/examples/pcc-transport/server/build.sh b/examples/pcc-transport-chatbot/server/build.sh similarity index 87% rename from examples/pcc-transport/server/build.sh rename to examples/pcc-transport-chatbot/server/build.sh index 4c9ac004e..22e05bfc2 100755 --- a/examples/pcc-transport/server/build.sh +++ b/examples/pcc-transport-chatbot/server/build.sh @@ -1,9 +1,9 @@ #!/bin/bash set -e -VERSION="0.1" -DOCKER_USERNAME="your-docker-hub-username" -AGENT_NAME="simple-chatbot" +VERSION="0.2" +DOCKER_USERNAME="chadbailey59" +AGENT_NAME="pcc-transport-chatbot" # Build the Docker image with the correct context echo "Building Docker image..." diff --git a/examples/pcc-transport/server/env.example b/examples/pcc-transport-chatbot/server/env.example similarity index 100% rename from examples/pcc-transport/server/env.example rename to examples/pcc-transport-chatbot/server/env.example diff --git a/examples/pcc-transport/server/index.html b/examples/pcc-transport-chatbot/server/index.html similarity index 100% rename from examples/pcc-transport/server/index.html rename to examples/pcc-transport-chatbot/server/index.html diff --git a/examples/pcc-transport/server/local_runner.py b/examples/pcc-transport-chatbot/server/local_runner.py similarity index 100% rename from examples/pcc-transport/server/local_runner.py rename to examples/pcc-transport-chatbot/server/local_runner.py diff --git a/examples/pcc-transport-chatbot/server/pcc-deploy.toml b/examples/pcc-transport-chatbot/server/pcc-deploy.toml new file mode 100644 index 000000000..62a719acc --- /dev/null +++ b/examples/pcc-transport-chatbot/server/pcc-deploy.toml @@ -0,0 +1,7 @@ +agent_name = "pcc-transport-chatbot" +image = "chadbailey59/pcc-transport-chatbot:0.2" +secret_set = "pcc-transport-chatbot-secrets" + +[scaling] + min_instances = 0 + max_instances = 2 \ No newline at end of file diff --git a/examples/pcc-transport-chatbot/server/requirements.txt b/examples/pcc-transport-chatbot/server/requirements.txt new file mode 100644 index 000000000..bba3cfd2e --- /dev/null +++ b/examples/pcc-transport-chatbot/server/requirements.txt @@ -0,0 +1,5 @@ +python-dotenv +fastapi[all] +uvicorn +-e ./pipecat[daily,cartesia,openai,silero,gladia,webrtc] +pipecatcloud \ No newline at end of file diff --git a/examples/pcc-transport/server/server.py b/examples/pcc-transport-chatbot/server/server.py similarity index 100% rename from examples/pcc-transport/server/server.py rename to examples/pcc-transport-chatbot/server/server.py diff --git a/examples/pcc-transport/server/pcc-deploy.toml b/examples/pcc-transport/server/pcc-deploy.toml deleted file mode 100644 index 3eab1a630..000000000 --- a/examples/pcc-transport/server/pcc-deploy.toml +++ /dev/null @@ -1,6 +0,0 @@ -agent_name = "simple-chatbot" -image = "your-docker-hub-username/simple-chatbot:0.1" -secret_set = "simple-chatbot-secrets" - -[scaling] - min_instances = 0 \ No newline at end of file diff --git a/examples/pcc-transport/server/requirements.txt b/examples/pcc-transport/server/requirements.txt deleted file mode 100644 index 88c044f86..000000000 --- a/examples/pcc-transport/server/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -python-dotenv -fastapi[all] -uvicorn -pipecat-ai[daily,cartesia,openai,silero] -pipecatcloud \ No newline at end of file diff --git a/src/pipecat/transports/services/pipecat_cloud.py b/src/pipecat/transports/services/pipecat_cloud.py index ecca83b0f..a770179ea 100644 --- a/src/pipecat/transports/services/pipecat_cloud.py +++ b/src/pipecat/transports/services/pipecat_cloud.py @@ -1,11 +1,16 @@ +# +# Copyright (c) 2024–2025, Daily +# +# SPDX-License-Identifier: BSD 2-Clause License +# + import logging from dataclasses import dataclass from functools import wraps from typing import Any, Callable, Optional, Union from fastapi import WebSocket -from pipecatcloud.agent import DailySessionArguments, WebSocketSessionArguments -from pipecatcloud.agent import SessionArguments as PCCSessionArguments +from pipecatcloud.agent import DailySessionArguments, SessionArguments, WebSocketSessionArguments from pydantic import BaseModel, ConfigDict from pipecat.transports.base_transport import BaseTransport, TransportParams @@ -29,7 +34,7 @@ logger = logging.getLogger(__name__) @dataclass -class WebRTCSessionArguments(PCCSessionArguments): +class WebRTCSessionArguments(SessionArguments): """WebRTC based agent session arguments. The arguments are received by the bot() entry point. """ @@ -64,8 +69,14 @@ class PipecatCloudParams(TransportParams): def to_websocket_params(self) -> FastAPIWebsocketParams: """Convert to FastAPIWebsocketParams.""" + base_params = self.model_dump() + # Remove WebSocket-specific fields since we'll add them explicitly + websocket_fields = ["add_wav_header", "serializer", "session_timeout"] + for field in websocket_fields: + base_params.pop(field, None) + return FastAPIWebsocketParams( - **self.model_dump(), + **base_params, add_wav_header=self.add_wav_header, serializer=self.serializer, session_timeout=self.session_timeout, @@ -73,8 +84,20 @@ class PipecatCloudParams(TransportParams): def to_daily_params(self) -> DailyParams: """Convert to DailyParams.""" + base_params = self.model_dump() + # Remove Daily-specific fields since we'll add them explicitly + daily_fields = [ + "api_url", + "api_key", + "dialin_settings", + "transcription_enabled", + "transcription_settings", + ] + for field in daily_fields: + base_params.pop(field, None) + return DailyParams( - **self.model_dump(), + **base_params, api_url=self.api_url, api_key=self.api_key, dialin_settings=self.dialin_settings, @@ -83,7 +106,7 @@ class PipecatCloudParams(TransportParams): ) -class SessionArguments: +class PipecatCloudSessionArguments: """Arguments for creating a PipecatCloudTransport session. This class can be initialized with arguments for any of the supported transport types: @@ -98,16 +121,20 @@ class SessionArguments: websocket: Optional[WebSocket] = None, room_url: Optional[str] = None, token: Optional[str] = None, - bot_name: Optional[str] = None, webrtc_connection: Optional[SmallWebRTCConnection] = None, session_id: Optional[str] = None, + body: Optional[dict] = None, ): """Initialize session arguments for any supported transport type.""" if websocket is not None: self._args = WebSocketSessionArguments(websocket=websocket, session_id=session_id) - elif any(x is not None for x in (room_url, token, bot_name)): + elif room_url is not None: self._args = DailySessionArguments( - room_url=room_url, token=token, bot_name=bot_name, session_id=session_id + # TODO-CB: bot_name is missing from DailySessionArguments? + room_url=room_url, + token=token, + session_id=session_id, + body=body, ) elif webrtc_connection is not None: self._args = WebRTCSessionArguments( @@ -163,14 +190,13 @@ class PipecatCloudTransport(BaseTransport): def __init__( self, - session_args: SessionArguments, + session_args: PipecatCloudSessionArguments, params: Optional[Union[PipecatCloudParams, TransportParams]] = None, *, input_name: Optional[str] = None, output_name: Optional[str] = None, ): super().__init__(input_name=input_name, output_name=output_name) - logger.debug(f"SessionArguments: {session_args}") # Convert TransportParams to PipecatCloudParams if needed if isinstance(params, TransportParams): @@ -200,7 +226,8 @@ class PipecatCloudTransport(BaseTransport): self._transport = DailyTransport( args.room_url, args.token, - args.bot_name, + # TODO-CB: Bot name is missing from DailySessionArguments + "Bot", params=daily_params, input_name=input_name, output_name=output_name,