В настоящее время моя реализация использует TwilioInputTransport. Я использую сервер FastAPI, который принимает прямое соединение WebSocket от Twilio Media Streams для обработки ввода/вывода звука.
Вот фрагмент моей текущей реализации:
Код: Выделить всё
from fastapi import WebSocket
from pipecat.pipeline.pipeline import Pipeline
from pipecat.pipeline.runner import PipelineRunner
from src.services.twilio_transport_service import create_twilio_transport
async def run_twilio_bot(websocket: WebSocket, stream_sid: str, call_sid: str):
# I am initializing the transport using the incoming WebSocket
transport = create_twilio_transport(websocket, stream_sid, call_sid)
# ... Setup services (STT, LLM, TTS) ...
pipeline = Pipeline([
transport.input(),
# ... processors ...
transport.output(),
])
runner = PipelineRunner()
await runner.run(task)
Насколько я понимаю, Pipecat Cloud обычно организует ботов для присоединения к Daily Rooms (WebRTC). Однако я хочу избежать использования моста SIP в Daily Room и вместо этого сохранить свою прямую архитектуру WebSocket, чтобы минимизировать задержку и сложность.
Мой вопрос:
Поддерживает ли инфраструктура Pipecat Cloud контейнеры, на которых размещаются собственные серверы WebSocket для TwilioInputTransport? Или это жесткое требование, чтобы любой бот, развернутый в Pipecat Cloud, использовал DailyTransport и подключался через Daily Room?
Если я буду придерживаться прямого подхода WebSocket, нужно ли мне размещать это самостоятельно (например, Fly.io/AWS) вместо использования Pipecat Cloud?
Подробнее здесь: https://stackoverflow.com/questions/798 ... pipecat-cl
Мобильная версия