Remove dependency on pipecatcloud, define new *RunnerArguments types
This commit is contained in:
@@ -26,19 +26,15 @@ from pipecat.pipeline.runner import PipelineRunner
|
||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
|
||||
from pipecat.processors.frameworks.rtvi import RTVIConfig, RTVIObserver, RTVIProcessor
|
||||
from pipecat.runner.run import SmallWebRTCSessionArguments
|
||||
from pipecat.runner.types import (
|
||||
DailyRunnerArguments,
|
||||
SmallWebRTCRunnerArguments,
|
||||
WebSocketRunnerArguments,
|
||||
)
|
||||
from pipecat.services.cartesia.tts import CartesiaTTSService
|
||||
from pipecat.services.deepgram.stt import DeepgramSTTService
|
||||
from pipecat.services.openai.llm import OpenAILLMService
|
||||
|
||||
try:
|
||||
from pipecatcloud.agent import DailySessionArguments, WebSocketSessionArguments
|
||||
except ImportError:
|
||||
raise ImportError(
|
||||
"pipecatcloud package is required for cloud-compatible bots. "
|
||||
"Install with: pip install pipecat-ai[pipecatcloud]"
|
||||
)
|
||||
|
||||
load_dotenv(override=True)
|
||||
|
||||
# Check if we're running locally
|
||||
@@ -108,11 +104,11 @@ async def run_bot(transport):
|
||||
|
||||
|
||||
async def bot(
|
||||
session_args: DailySessionArguments | SmallWebRTCSessionArguments | WebSocketSessionArguments,
|
||||
session_args: DailyRunnerArguments | SmallWebRTCRunnerArguments | WebSocketRunnerArguments,
|
||||
):
|
||||
"""Main bot entry point compatible with Pipecat Cloud."""
|
||||
|
||||
if isinstance(session_args, DailySessionArguments):
|
||||
if isinstance(session_args, DailyRunnerArguments):
|
||||
from pipecat.transports.services.daily import DailyParams, DailyTransport
|
||||
|
||||
if not IS_LOCAL_RUN:
|
||||
@@ -132,7 +128,7 @@ async def bot(
|
||||
),
|
||||
)
|
||||
|
||||
elif isinstance(session_args, SmallWebRTCSessionArguments):
|
||||
elif isinstance(session_args, SmallWebRTCRunnerArguments):
|
||||
from pipecat.transports.base_transport import TransportParams
|
||||
from pipecat.transports.network.small_webrtc import SmallWebRTCTransport
|
||||
|
||||
@@ -145,7 +141,7 @@ async def bot(
|
||||
webrtc_connection=session_args.webrtc_connection,
|
||||
)
|
||||
|
||||
elif isinstance(session_args, WebSocketSessionArguments):
|
||||
elif isinstance(session_args, WebSocketRunnerArguments):
|
||||
# Use the utility to parse WebSocket data
|
||||
from pipecat.runner.utils import parse_telephony_websocket
|
||||
|
||||
|
||||
@@ -26,6 +26,12 @@ from pipecat.pipeline.runner import PipelineRunner
|
||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
|
||||
from pipecat.processors.frameworks.rtvi import RTVIConfig, RTVIObserver, RTVIProcessor
|
||||
from pipecat.runner.types import (
|
||||
DailyRunnerArguments,
|
||||
SmallWebRTCRunnerArguments,
|
||||
WebSocketRunnerArguments,
|
||||
)
|
||||
from pipecat.runner.utils import create_transport
|
||||
from pipecat.services.cartesia.tts import CartesiaTTSService
|
||||
from pipecat.services.deepgram.stt import DeepgramSTTService
|
||||
from pipecat.services.openai.llm import OpenAILLMService
|
||||
@@ -33,14 +39,6 @@ from pipecat.transports.base_transport import TransportParams
|
||||
from pipecat.transports.network.fastapi_websocket import FastAPIWebsocketParams
|
||||
from pipecat.transports.services.daily import DailyParams
|
||||
|
||||
try:
|
||||
from pipecatcloud.agent import DailySessionArguments, WebSocketSessionArguments
|
||||
|
||||
from pipecat.runner.run import SmallWebRTCSessionArguments
|
||||
from pipecat.runner.utils import create_transport
|
||||
except ImportError:
|
||||
raise ImportError("Install with: pip install pipecat-ai[runner]")
|
||||
|
||||
load_dotenv(override=True)
|
||||
|
||||
# Define transport configurations using factory functions
|
||||
@@ -139,7 +137,7 @@ async def run_bot(transport):
|
||||
|
||||
|
||||
async def bot(
|
||||
session_args: DailySessionArguments | SmallWebRTCSessionArguments | WebSocketSessionArguments,
|
||||
session_args: DailyRunnerArguments | SmallWebRTCRunnerArguments | WebSocketRunnerArguments,
|
||||
):
|
||||
"""Main bot entry point compatible with Pipecat Cloud."""
|
||||
transport = await create_transport(session_args, transport_params)
|
||||
|
||||
@@ -19,19 +19,14 @@ from pipecat.pipeline.runner import PipelineRunner
|
||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
|
||||
from pipecat.processors.frameworks.rtvi import RTVIConfig, RTVIObserver, RTVIProcessor
|
||||
from pipecat.runner.run import SmallWebRTCSessionArguments
|
||||
from pipecat.runner.types import (
|
||||
DailyRunnerArguments,
|
||||
SmallWebRTCRunnerArguments,
|
||||
)
|
||||
from pipecat.services.cartesia.tts import CartesiaTTSService
|
||||
from pipecat.services.deepgram.stt import DeepgramSTTService
|
||||
from pipecat.services.openai.llm import OpenAILLMService
|
||||
|
||||
try:
|
||||
from pipecatcloud.agent import DailySessionArguments
|
||||
except ImportError:
|
||||
raise ImportError(
|
||||
"pipecatcloud package is required for cloud-compatible bots. "
|
||||
"Install with: pip install pipecat-ai[[pipecatcloud]]"
|
||||
)
|
||||
|
||||
load_dotenv(override=True)
|
||||
|
||||
|
||||
@@ -101,10 +96,10 @@ async def run_bot(transport):
|
||||
await runner.run(task)
|
||||
|
||||
|
||||
async def bot(session_args: DailySessionArguments | SmallWebRTCSessionArguments):
|
||||
async def bot(session_args: DailyRunnerArguments | SmallWebRTCRunnerArguments):
|
||||
"""Main bot entry point compatible with Pipecat Cloud."""
|
||||
|
||||
if isinstance(session_args, DailySessionArguments):
|
||||
if isinstance(session_args, DailyRunnerArguments):
|
||||
from pipecat.transports.services.daily import DailyParams, DailyTransport
|
||||
|
||||
if not IS_LOCAL_RUN:
|
||||
@@ -124,7 +119,7 @@ async def bot(session_args: DailySessionArguments | SmallWebRTCSessionArguments)
|
||||
),
|
||||
)
|
||||
|
||||
elif isinstance(session_args, SmallWebRTCSessionArguments):
|
||||
elif isinstance(session_args, SmallWebRTCRunnerArguments):
|
||||
from pipecat.transports.base_transport import TransportParams
|
||||
from pipecat.transports.network.small_webrtc import SmallWebRTCTransport
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ from pipecat.pipeline.runner import PipelineRunner
|
||||
from pipecat.pipeline.task import PipelineParams, PipelineTask
|
||||
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
|
||||
from pipecat.processors.frameworks.rtvi import RTVIConfig, RTVIObserver, RTVIProcessor
|
||||
from pipecat.runner.run import SmallWebRTCSessionArguments
|
||||
from pipecat.runner.types import SmallWebRTCRunnerArguments
|
||||
from pipecat.services.cartesia.tts import CartesiaTTSService
|
||||
from pipecat.services.deepgram.stt import DeepgramSTTService
|
||||
from pipecat.services.openai.llm import OpenAILLMService
|
||||
@@ -91,7 +91,7 @@ async def run_bot(transport):
|
||||
await runner.run(task)
|
||||
|
||||
|
||||
async def bot(session_args: SmallWebRTCSessionArguments):
|
||||
async def bot(session_args: SmallWebRTCRunnerArguments):
|
||||
"""Main bot entry point compatible with Pipecat Cloud."""
|
||||
|
||||
transport = SmallWebRTCTransport(
|
||||
|
||||
Reference in New Issue
Block a user