diff --git a/api/logging_config.py b/api/logging_config.py index d1e3a6d..82dfb73 100644 --- a/api/logging_config.py +++ b/api/logging_config.py @@ -1,10 +1,11 @@ -import os, sys +import os +import sys import loguru -from pipecat.utils.context import run_id_var, turn_var from api.enums import Environment from api.utils.worker import get_worker_id, is_worker_process +from pipecat.utils.context import run_id_var, turn_var ENVIRONMENT = os.getenv("ENVIRONMENT", Environment.LOCAL.value) ENABLE_TURN_LOGGING = os.getenv("ENABLE_TURN_LOGGING", "false").lower() == "true" diff --git a/api/routes/rtc_offer.py b/api/routes/rtc_offer.py index 7ebeaf6..5a40c22 100644 --- a/api/routes/rtc_offer.py +++ b/api/routes/rtc_offer.py @@ -2,13 +2,13 @@ from typing import Dict from fastapi import APIRouter, BackgroundTasks, Depends from loguru import logger -from pipecat.transports.smallwebrtc.connection import SmallWebRTCConnection -from pipecat.utils.context import set_current_run_id from pydantic import BaseModel from api.db.models import UserModel from api.services.auth.depends import get_user from api.services.pipecat.run_pipeline import run_pipeline_smallwebrtc +from pipecat.transports.smallwebrtc.connection import SmallWebRTCConnection +from pipecat.utils.context import set_current_run_id router = APIRouter(prefix="/pipecat") diff --git a/api/routes/webrtc_signaling.py b/api/routes/webrtc_signaling.py index afed147..522d862 100644 --- a/api/routes/webrtc_signaling.py +++ b/api/routes/webrtc_signaling.py @@ -5,12 +5,12 @@ from typing import Dict from fastapi import APIRouter, Depends, WebSocket, WebSocketDisconnect from loguru import logger -from pipecat.transports.smallwebrtc.connection import SmallWebRTCConnection -from pipecat.utils.context import set_current_run_id from api.db.models import UserModel from api.services.auth.depends import get_user_ws from api.services.pipecat.run_pipeline import run_pipeline_smallwebrtc +from pipecat.transports.smallwebrtc.connection import SmallWebRTCConnection +from pipecat.utils.context import set_current_run_id router = APIRouter(prefix="/ws") diff --git a/api/services/looptalk/core/pipeline_builder.py b/api/services/looptalk/core/pipeline_builder.py index 0d53235..6bbc62e 100644 --- a/api/services/looptalk/core/pipeline_builder.py +++ b/api/services/looptalk/core/pipeline_builder.py @@ -3,12 +3,6 @@ from typing import Any, Dict from loguru import logger -from pipecat.pipeline.pipeline import Pipeline -from pipecat.processors.filters.stt_mute_filter import ( - STTMuteConfig, - STTMuteFilter, - STTMuteStrategy, -) from api.db.db_client import DBClient from api.services.looptalk.audio_streamer import get_or_create_audio_streamer @@ -29,6 +23,12 @@ from api.services.pipecat.service_factory import ( from api.services.workflow.dto import ReactFlowDTO from api.services.workflow.pipecat_engine import PipecatEngine from api.services.workflow.workflow import WorkflowGraph +from pipecat.pipeline.pipeline import Pipeline +from pipecat.processors.filters.stt_mute_filter import ( + STTMuteConfig, + STTMuteFilter, + STTMuteStrategy, +) class LoopTalkPipelineBuilder: diff --git a/api/services/looptalk/internal_serializer.py b/api/services/looptalk/internal_serializer.py index ec14ca4..0f59b50 100644 --- a/api/services/looptalk/internal_serializer.py +++ b/api/services/looptalk/internal_serializer.py @@ -7,6 +7,7 @@ """Internal frame serializer for agent-to-agent communication.""" from loguru import logger + from pipecat.frames.frames import ( Frame, InputAudioRawFrame, diff --git a/api/services/looptalk/internal_transport.py b/api/services/looptalk/internal_transport.py index 00bfc93..756b499 100644 --- a/api/services/looptalk/internal_transport.py +++ b/api/services/looptalk/internal_transport.py @@ -11,6 +11,8 @@ import time from typing import Dict, Optional, Tuple from loguru import logger + +from api.services.looptalk.internal_serializer import InternalFrameSerializer from pipecat.frames.frames import ( CancelFrame, EndFrame, @@ -27,8 +29,6 @@ from pipecat.transports.base_input import BaseInputTransport from pipecat.transports.base_output import BaseOutputTransport from pipecat.transports.base_transport import BaseTransport, TransportParams -from api.services.looptalk.internal_serializer import InternalFrameSerializer - class InternalInputTransport(BaseInputTransport): """Input side of internal transport for agent-to-agent communication.""" diff --git a/api/services/looptalk/orchestrator.py b/api/services/looptalk/orchestrator.py index aed3852..eac0778 100644 --- a/api/services/looptalk/orchestrator.py +++ b/api/services/looptalk/orchestrator.py @@ -6,8 +6,6 @@ from pathlib import Path from typing import Any, Dict, Optional from loguru import logger -from pipecat.pipeline.task import PipelineTask -from pipecat.utils.context import set_current_run_id from api.db.db_client import DBClient from api.services.looptalk.internal_transport import ( @@ -15,6 +13,8 @@ from api.services.looptalk.internal_transport import ( InternalTransportManager, ) from api.services.pipecat.transport_setup import create_internal_transport +from pipecat.pipeline.task import PipelineTask +from pipecat.utils.context import set_current_run_id from .core.pipeline_builder import LoopTalkPipelineBuilder from .core.recording_manager import RecordingManager diff --git a/api/services/smart_turn/websocket_smart_turn.py b/api/services/smart_turn/websocket_smart_turn.py index 82a7e6f..4220d3c 100644 --- a/api/services/smart_turn/websocket_smart_turn.py +++ b/api/services/smart_turn/websocket_smart_turn.py @@ -20,6 +20,7 @@ from typing import Any, Dict, Optional import numpy as np import websockets from loguru import logger + from pipecat.audio.turn.smart_turn.base_smart_turn import ( BaseSmartTurn, SmartTurnTimeoutException, diff --git a/api/services/telephony/ari_manager.py b/api/services/telephony/ari_manager.py index 865006d..f8787e5 100644 --- a/api/services/telephony/ari_manager.py +++ b/api/services/telephony/ari_manager.py @@ -37,7 +37,6 @@ logging_queue_listener = setup_logging() import redis.asyncio as aioredis import redis.exceptions from loguru import logger -from pipecat.utils.enums import EndTaskReason from api.services.telephony.ari_client import Channel from api.services.telephony.ari_client_manager import ( @@ -45,6 +44,7 @@ from api.services.telephony.ari_client_manager import ( setup_ari_client_supervisor, ) from api.services.telephony.ari_manager_connection import ARIManagerConnection +from pipecat.utils.enums import EndTaskReason class ARIManager: diff --git a/api/services/telephony/ari_manager_connection.py b/api/services/telephony/ari_manager_connection.py index b11e88f..ac77b09 100644 --- a/api/services/telephony/ari_manager_connection.py +++ b/api/services/telephony/ari_manager_connection.py @@ -11,10 +11,10 @@ from typing import Optional import httpx from loguru import logger -from pipecat.utils.base_object import BaseObject from api.services.telephony.ari_client import AsyncARIClient, Bridge, Channel from api.services.telephony.ari_client_singleton import ari_client_singleton +from pipecat.utils.base_object import BaseObject class ARIManagerConnection(BaseObject): diff --git a/api/services/telephony/stasis_rtp_connection.py b/api/services/telephony/stasis_rtp_connection.py index 3a5e817..a592f35 100644 --- a/api/services/telephony/stasis_rtp_connection.py +++ b/api/services/telephony/stasis_rtp_connection.py @@ -8,7 +8,6 @@ from typing import Optional, Tuple import redis.asyncio as aioredis from loguru import logger -from pipecat.utils.base_object import BaseObject from api.services.telephony.stasis_event_protocol import ( DisconnectCommand, @@ -16,6 +15,7 @@ from api.services.telephony.stasis_event_protocol import ( SocketClosedCommand, TransferCommand, ) +from pipecat.utils.base_object import BaseObject class StasisRTPConnection(BaseObject): diff --git a/api/services/telephony/stasis_rtp_transport.py b/api/services/telephony/stasis_rtp_transport.py index ad1e719..110d508 100644 --- a/api/services/telephony/stasis_rtp_transport.py +++ b/api/services/telephony/stasis_rtp_transport.py @@ -7,6 +7,10 @@ import time from typing import Awaitable, Callable, Optional from loguru import logger +from pydantic import BaseModel + +from api.services.telephony.stasis_rtp_client import StasisRTPClient +from api.services.telephony.stasis_rtp_connection import StasisRTPConnection from pipecat.frames.frames import ( CancelFrame, EndFrame, @@ -23,10 +27,6 @@ from pipecat.transports.base_output import ( TransportClientNotConnectedException, ) from pipecat.transports.base_transport import BaseTransport, TransportParams -from pydantic import BaseModel - -from api.services.telephony.stasis_rtp_client import StasisRTPClient -from api.services.telephony.stasis_rtp_connection import StasisRTPConnection class StasisRTPTransportParams(TransportParams): diff --git a/api/services/telephony/worker_event_subscriber.py b/api/services/telephony/worker_event_subscriber.py index e8fac27..42afb39 100644 --- a/api/services/telephony/worker_event_subscriber.py +++ b/api/services/telephony/worker_event_subscriber.py @@ -12,7 +12,6 @@ from typing import Awaitable, Callable, Optional import redis.asyncio as aioredis from loguru import logger -from pipecat.utils.context import set_current_run_id from api.routes.stasis_rtp import on_stasis_call from api.services.telephony.stasis_event_protocol import ( @@ -24,6 +23,7 @@ from api.services.telephony.stasis_event_protocol import ( parse_event, ) from api.services.telephony.stasis_rtp_connection import StasisRTPConnection +from pipecat.utils.context import set_current_run_id class WorkerEventSubscriber: diff --git a/api/services/workflow/pipecat_engine_voicemail_detector.py b/api/services/workflow/pipecat_engine_voicemail_detector.py index 117e375..ff9efa8 100644 --- a/api/services/workflow/pipecat_engine_voicemail_detector.py +++ b/api/services/workflow/pipecat_engine_voicemail_detector.py @@ -12,13 +12,13 @@ from langfuse import get_client from loguru import logger from openai import AsyncOpenAI from opentelemetry import context as otel_context -from pipecat.utils.enums import EndTaskReason -from pipecat.utils.tracing.context_registry import get_current_turn_context from api.db import db_client from api.services.pipecat.tracing_config import is_tracing_enabled from api.tasks.arq import enqueue_job from api.tasks.function_names import FunctionNames +from pipecat.utils.enums import EndTaskReason +from pipecat.utils.tracing.context_registry import get_current_turn_context if TYPE_CHECKING: from api.services.workflow.pipecat_engine import PipecatEngine