From 8adb38f87c55d8fb84cc7c71e7f031287616a20e Mon Sep 17 00:00:00 2001 From: Mark Backman Date: Thu, 2 Apr 2026 22:21:16 -0400 Subject: [PATCH] Remove unused imports across codebase --- examples/update-settings/llm/llm-sarvam.py | 1 - examples/update-settings/stt/stt-whisper-mlx.py | 1 - examples/update-settings/stt/stt-whisper.py | 1 - .../video-processing-custom-video-track.py | 1 - .../adapters/services/aws_nova_sonic_adapter.py | 2 +- .../adapters/services/grok_realtime_adapter.py | 2 +- .../adapters/services/open_ai_realtime_adapter.py | 2 +- .../adapters/services/open_ai_responses_adapter.py | 1 - src/pipecat/processors/aggregators/llm_context.py | 4 ++-- .../processors/audio/audio_buffer_processor.py | 2 -- src/pipecat/processors/frameworks/rtvi/frames.py | 2 +- src/pipecat/services/anthropic/llm.py | 12 ++---------- src/pipecat/services/aws/llm.py | 8 -------- src/pipecat/services/aws/nova_sonic/llm.py | 1 - src/pipecat/services/deepgram/flux/stt.py | 1 - src/pipecat/services/google/gemini_live/llm.py | 6 ------ src/pipecat/services/google/llm.py | 11 ----------- src/pipecat/services/llm_service.py | 1 - src/pipecat/services/openai/base_llm.py | 5 ++--- src/pipecat/services/openai/llm.py | 10 +--------- src/pipecat/services/openai/realtime/llm.py | 1 - src/pipecat/services/perplexity/llm.py | 2 -- src/pipecat/services/sarvam/tts.py | 2 -- src/pipecat/services/ultravox/llm.py | 1 - src/pipecat/services/xai/realtime/llm.py | 3 --- src/pipecat/transports/base_transport.py | 2 -- src/pipecat/transports/livekit/transport.py | 1 - src/pipecat/utils/tracing/service_decorators.py | 2 +- tests/test_run_inference.py | 1 - 29 files changed, 12 insertions(+), 77 deletions(-) diff --git a/examples/update-settings/llm/llm-sarvam.py b/examples/update-settings/llm/llm-sarvam.py index 227adb3cb..62102238f 100644 --- a/examples/update-settings/llm/llm-sarvam.py +++ b/examples/update-settings/llm/llm-sarvam.py @@ -6,7 +6,6 @@ import asyncio import os -from typing import Any from dotenv import load_dotenv from loguru import logger diff --git a/examples/update-settings/stt/stt-whisper-mlx.py b/examples/update-settings/stt/stt-whisper-mlx.py index f4a96fac6..a13c053cf 100644 --- a/examples/update-settings/stt/stt-whisper-mlx.py +++ b/examples/update-settings/stt/stt-whisper-mlx.py @@ -25,7 +25,6 @@ from pipecat.runner.utils import create_transport from pipecat.services.cartesia.tts import CartesiaTTSService from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.whisper.stt import MLXModel, WhisperSTTServiceMLX -from pipecat.transcriptions.language import Language from pipecat.transports.base_transport import BaseTransport, TransportParams from pipecat.transports.daily.transport import DailyParams from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams diff --git a/examples/update-settings/stt/stt-whisper.py b/examples/update-settings/stt/stt-whisper.py index f129c4c3b..d09c4f3b4 100644 --- a/examples/update-settings/stt/stt-whisper.py +++ b/examples/update-settings/stt/stt-whisper.py @@ -25,7 +25,6 @@ from pipecat.runner.utils import create_transport from pipecat.services.cartesia.tts import CartesiaTTSService from pipecat.services.openai.llm import OpenAILLMService from pipecat.services.whisper.stt import Model, WhisperSTTService -from pipecat.transcriptions.language import Language from pipecat.transports.base_transport import BaseTransport, TransportParams from pipecat.transports.daily.transport import DailyParams from pipecat.transports.websocket.fastapi import FastAPIWebsocketParams diff --git a/examples/video-processing/video-processing-custom-video-track.py b/examples/video-processing/video-processing-custom-video-track.py index 1e6190a3b..03b74b04f 100644 --- a/examples/video-processing/video-processing-custom-video-track.py +++ b/examples/video-processing/video-processing-custom-video-track.py @@ -28,7 +28,6 @@ from pipecat.frames.frames import ( Frame, OutputImageRawFrame, StartFrame, - SystemFrame, ) from pipecat.pipeline.pipeline import Pipeline from pipecat.pipeline.runner import PipelineRunner diff --git a/src/pipecat/adapters/services/aws_nova_sonic_adapter.py b/src/pipecat/adapters/services/aws_nova_sonic_adapter.py index e481f9971..d0dca53c0 100644 --- a/src/pipecat/adapters/services/aws_nova_sonic_adapter.py +++ b/src/pipecat/adapters/services/aws_nova_sonic_adapter.py @@ -16,7 +16,7 @@ from loguru import logger from pipecat.adapters.base_llm_adapter import BaseLLMAdapter from pipecat.adapters.schemas.function_schema import FunctionSchema -from pipecat.adapters.schemas.tools_schema import AdapterType, ToolsSchema +from pipecat.adapters.schemas.tools_schema import ToolsSchema from pipecat.processors.aggregators.llm_context import LLMContext, LLMContextMessage diff --git a/src/pipecat/adapters/services/grok_realtime_adapter.py b/src/pipecat/adapters/services/grok_realtime_adapter.py index 1c1f7336d..eadd4fdfb 100644 --- a/src/pipecat/adapters/services/grok_realtime_adapter.py +++ b/src/pipecat/adapters/services/grok_realtime_adapter.py @@ -19,7 +19,7 @@ from loguru import logger from pipecat.adapters.base_llm_adapter import BaseLLMAdapter from pipecat.adapters.schemas.function_schema import FunctionSchema -from pipecat.adapters.schemas.tools_schema import AdapterType, ToolsSchema +from pipecat.adapters.schemas.tools_schema import ToolsSchema from pipecat.processors.aggregators.llm_context import LLMContext, LLMContextMessage from pipecat.services.xai.realtime import events diff --git a/src/pipecat/adapters/services/open_ai_realtime_adapter.py b/src/pipecat/adapters/services/open_ai_realtime_adapter.py index 4732f70b7..64684e038 100644 --- a/src/pipecat/adapters/services/open_ai_realtime_adapter.py +++ b/src/pipecat/adapters/services/open_ai_realtime_adapter.py @@ -15,7 +15,7 @@ from loguru import logger from pipecat.adapters.base_llm_adapter import BaseLLMAdapter from pipecat.adapters.schemas.function_schema import FunctionSchema -from pipecat.adapters.schemas.tools_schema import AdapterType, ToolsSchema +from pipecat.adapters.schemas.tools_schema import ToolsSchema from pipecat.processors.aggregators.llm_context import LLMContext, LLMContextMessage from pipecat.services.openai.realtime import events diff --git a/src/pipecat/adapters/services/open_ai_responses_adapter.py b/src/pipecat/adapters/services/open_ai_responses_adapter.py index 9609f7b73..320bd11ef 100644 --- a/src/pipecat/adapters/services/open_ai_responses_adapter.py +++ b/src/pipecat/adapters/services/open_ai_responses_adapter.py @@ -18,7 +18,6 @@ from pipecat.processors.aggregators.llm_context import ( LLMContext, LLMContextMessage, LLMSpecificMessage, - NotGiven, ) diff --git a/src/pipecat/processors/aggregators/llm_context.py b/src/pipecat/processors/aggregators/llm_context.py index eb98571cc..b36aad4ca 100644 --- a/src/pipecat/processors/aggregators/llm_context.py +++ b/src/pipecat/processors/aggregators/llm_context.py @@ -19,7 +19,7 @@ import base64 import io import wave from dataclasses import dataclass -from typing import TYPE_CHECKING, Any, List, Optional, TypeAlias, Union +from typing import Any, List, Optional, TypeAlias, Union from loguru import logger from openai._types import NOT_GIVEN as OPEN_AI_NOT_GIVEN @@ -30,7 +30,7 @@ from openai.types.chat import ( ) from PIL import Image -from pipecat.adapters.schemas.tools_schema import AdapterType, ToolsSchema +from pipecat.adapters.schemas.tools_schema import ToolsSchema from pipecat.frames.frames import AudioRawFrame # "Re-export" types from OpenAI that we're using as universal context types. diff --git a/src/pipecat/processors/audio/audio_buffer_processor.py b/src/pipecat/processors/audio/audio_buffer_processor.py index 62d707fb8..40a907224 100644 --- a/src/pipecat/processors/audio/audio_buffer_processor.py +++ b/src/pipecat/processors/audio/audio_buffer_processor.py @@ -13,8 +13,6 @@ configurations and event-driven processing. from typing import Optional -from loguru import logger - from pipecat.audio.utils import create_stream_resampler, interleave_stereo_audio, mix_audio from pipecat.frames.frames import ( BotStartedSpeakingFrame, diff --git a/src/pipecat/processors/frameworks/rtvi/frames.py b/src/pipecat/processors/frameworks/rtvi/frames.py index f4d38ed7e..36070e6e8 100644 --- a/src/pipecat/processors/frameworks/rtvi/frames.py +++ b/src/pipecat/processors/frameworks/rtvi/frames.py @@ -9,7 +9,7 @@ from dataclasses import dataclass from typing import Any, Optional -from pipecat.frames.frames import DataFrame, SystemFrame +from pipecat.frames.frames import SystemFrame @dataclass diff --git a/src/pipecat/services/anthropic/llm.py b/src/pipecat/services/anthropic/llm.py index 0a5d5f140..f51e7927e 100644 --- a/src/pipecat/services/anthropic/llm.py +++ b/src/pipecat/services/anthropic/llm.py @@ -11,17 +11,13 @@ including support for function calling, vision, and prompt caching features. """ import asyncio -import base64 -import copy -import io import json import re from dataclasses import dataclass, field -from typing import Any, Dict, List, Literal, Optional, Union +from typing import Any, Dict, Literal, Optional, Union import httpx from loguru import logger -from PIL import Image from pydantic import BaseModel, Field from pipecat.adapters.services.anthropic_adapter import ( @@ -30,9 +26,6 @@ from pipecat.adapters.services.anthropic_adapter import ( ) from pipecat.frames.frames import ( Frame, - FunctionCallCancelFrame, - FunctionCallInProgressFrame, - FunctionCallResultFrame, LLMContextFrame, LLMEnablePromptCachingFrame, LLMFullResponseEndFrame, @@ -40,7 +33,6 @@ from pipecat.frames.frames import ( LLMThoughtEndFrame, LLMThoughtStartFrame, LLMThoughtTextFrame, - UserImageRawFrame, ) from pipecat.metrics.metrics import LLMTokenUsage from pipecat.processors.aggregators.llm_context import LLMContext @@ -51,7 +43,7 @@ from pipecat.services.settings import LLMSettings, _NotGiven, is_given from pipecat.utils.tracing.service_decorators import traced_llm try: - from anthropic import NOT_GIVEN, APITimeoutError, AsyncAnthropic, NotGiven + from anthropic import NOT_GIVEN, APITimeoutError, AsyncAnthropic except ModuleNotFoundError as e: logger.error(f"Exception: {e}") logger.error("In order to use Anthropic, you need to `pip install pipecat-ai[anthropic]`.") diff --git a/src/pipecat/services/aws/llm.py b/src/pipecat/services/aws/llm.py index 52c95070d..ef726e39b 100644 --- a/src/pipecat/services/aws/llm.py +++ b/src/pipecat/services/aws/llm.py @@ -12,9 +12,6 @@ function calling. """ import asyncio -import base64 -import copy -import io import json import os import re @@ -22,7 +19,6 @@ from dataclasses import dataclass, field from typing import Any, Dict, List, Optional from loguru import logger -from PIL import Image from pydantic import BaseModel, Field from pipecat.adapters.services.bedrock_adapter import ( @@ -31,15 +27,11 @@ from pipecat.adapters.services.bedrock_adapter import ( ) from pipecat.frames.frames import ( Frame, - FunctionCallCancelFrame, FunctionCallFromLLM, - FunctionCallInProgressFrame, - FunctionCallResultFrame, LLMContextFrame, LLMEnablePromptCachingFrame, LLMFullResponseEndFrame, LLMFullResponseStartFrame, - UserImageRawFrame, ) from pipecat.metrics.metrics import LLMTokenUsage from pipecat.processors.aggregators.llm_context import LLMContext diff --git a/src/pipecat/services/aws/nova_sonic/llm.py b/src/pipecat/services/aws/nova_sonic/llm.py index 2465624f5..fd35375c2 100644 --- a/src/pipecat/services/aws/nova_sonic/llm.py +++ b/src/pipecat/services/aws/nova_sonic/llm.py @@ -49,7 +49,6 @@ from pipecat.frames.frames import ( UserStoppedSpeakingFrame, ) from pipecat.processors.aggregators.llm_context import LLMContext -from pipecat.processors.aggregators.llm_response_universal import LLMContextAggregatorPair from pipecat.processors.frame_processor import FrameDirection from pipecat.services.llm_service import LLMService from pipecat.services.settings import NOT_GIVEN, LLMSettings, _NotGiven diff --git a/src/pipecat/services/deepgram/flux/stt.py b/src/pipecat/services/deepgram/flux/stt.py index cb8966769..32854f294 100644 --- a/src/pipecat/services/deepgram/flux/stt.py +++ b/src/pipecat/services/deepgram/flux/stt.py @@ -16,7 +16,6 @@ from pydantic import BaseModel from pipecat.frames.frames import ( ErrorFrame, Frame, - StartFrame, ) from pipecat.services.deepgram.flux.base import ( DeepgramFluxSTTBase, diff --git a/src/pipecat/services/google/gemini_live/llm.py b/src/pipecat/services/google/gemini_live/llm.py index b98cfa4d3..276120f7e 100644 --- a/src/pipecat/services/google/gemini_live/llm.py +++ b/src/pipecat/services/google/gemini_live/llm.py @@ -16,7 +16,6 @@ import base64 import io import time import uuid -import warnings from dataclasses import dataclass, field from enum import Enum from typing import Any, Dict, List, Optional, Union @@ -53,13 +52,11 @@ from pipecat.frames.frames import ( TTSStartedFrame, TTSStoppedFrame, TTSTextFrame, - UserImageRawFrame, UserStartedSpeakingFrame, UserStoppedSpeakingFrame, ) from pipecat.metrics.metrics import LLMTokenUsage from pipecat.processors.aggregators.llm_context import LLMContext -from pipecat.processors.aggregators.llm_response_universal import LLMContextAggregatorPair from pipecat.processors.frame_processor import FrameDirection from pipecat.services.google.frames import LLMSearchOrigin, LLMSearchResponseFrame, LLMSearchResult from pipecat.services.google.utils import update_google_client_http_options @@ -81,10 +78,8 @@ try: AudioTranscriptionConfig, AutomaticActivityDetection, Blob, - Content, ContextWindowCompressionConfig, EndSensitivity, - FileData, FunctionResponse, GenerationConfig, GroundingMetadata, @@ -94,7 +89,6 @@ try: LiveServerMessage, MediaResolution, Modality, - Part, ProactivityConfig, RealtimeInputConfig, SessionResumptionConfig, diff --git a/src/pipecat/services/google/llm.py b/src/pipecat/services/google/llm.py index b336fcef5..03f9d28ca 100644 --- a/src/pipecat/services/google/llm.py +++ b/src/pipecat/services/google/llm.py @@ -10,9 +10,7 @@ This module provides Google Gemini integration for the Pipecat framework, including LLM services, context management, and message aggregation. """ -import base64 import io -import json import os import uuid from dataclasses import dataclass, field @@ -25,11 +23,7 @@ from pydantic import BaseModel, Field from pipecat.adapters.services.gemini_adapter import GeminiLLMAdapter, GeminiLLMInvocationParams from pipecat.frames.frames import ( AssistantImageRawFrame, - AudioRawFrame, Frame, - FunctionCallCancelFrame, - FunctionCallInProgressFrame, - FunctionCallResultFrame, LLMContextFrame, LLMFullResponseEndFrame, LLMFullResponseStartFrame, @@ -59,14 +53,9 @@ try: from google import genai from google.api_core.exceptions import DeadlineExceeded from google.genai.types import ( - Blob, - Content, - FunctionCall, - FunctionResponse, GenerateContentConfig, GenerateContentResponse, HttpOptions, - Part, ) # Temporary hack to be able to process Nano Banana returned images. diff --git a/src/pipecat/services/llm_service.py b/src/pipecat/services/llm_service.py index 37d7d094a..2bcf0ba7c 100644 --- a/src/pipecat/services/llm_service.py +++ b/src/pipecat/services/llm_service.py @@ -7,7 +7,6 @@ """Base classes for Large Language Model services with function calling support.""" import asyncio -import inspect import json import warnings from dataclasses import dataclass diff --git a/src/pipecat/services/openai/base_llm.py b/src/pipecat/services/openai/base_llm.py index 76fab8f5f..f8b131511 100644 --- a/src/pipecat/services/openai/base_llm.py +++ b/src/pipecat/services/openai/base_llm.py @@ -7,11 +7,10 @@ """Base LLM service implementation for services that use the AsyncOpenAI client.""" import asyncio -import base64 import json from contextlib import asynccontextmanager from dataclasses import dataclass, field -from typing import Any, Dict, List, Mapping, Optional +from typing import Any, Dict, Mapping, Optional import httpx from loguru import logger @@ -22,7 +21,7 @@ from openai import ( AsyncStream, DefaultAsyncHttpxClient, ) -from openai.types.chat import ChatCompletionChunk, ChatCompletionMessageParam +from openai.types.chat import ChatCompletionChunk from pydantic import BaseModel, Field from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams diff --git a/src/pipecat/services/openai/llm.py b/src/pipecat/services/openai/llm.py index 24c2134fc..7f5bb7ca3 100644 --- a/src/pipecat/services/openai/llm.py +++ b/src/pipecat/services/openai/llm.py @@ -6,18 +6,10 @@ """OpenAI LLM service implementation with context aggregators.""" -import json -from dataclasses import dataclass -from typing import Any, Optional +from typing import Optional from openai import NOT_GIVEN -from pipecat.frames.frames import ( - FunctionCallCancelFrame, - FunctionCallInProgressFrame, - FunctionCallResultFrame, - UserImageRawFrame, -) from pipecat.services.openai.base_llm import BaseOpenAILLMService diff --git a/src/pipecat/services/openai/realtime/llm.py b/src/pipecat/services/openai/realtime/llm.py index a1e593ecd..5a219242c 100644 --- a/src/pipecat/services/openai/realtime/llm.py +++ b/src/pipecat/services/openai/realtime/llm.py @@ -48,7 +48,6 @@ from pipecat.frames.frames import ( ) from pipecat.metrics.metrics import LLMTokenUsage from pipecat.processors.aggregators.llm_context import LLMContext -from pipecat.processors.aggregators.llm_response_universal import LLMContextAggregatorPair from pipecat.processors.frame_processor import FrameDirection from pipecat.services.llm_service import FunctionCallFromLLM, LLMService from pipecat.services.settings import ( diff --git a/src/pipecat/services/perplexity/llm.py b/src/pipecat/services/perplexity/llm.py index 95ff23889..453db7f2d 100644 --- a/src/pipecat/services/perplexity/llm.py +++ b/src/pipecat/services/perplexity/llm.py @@ -14,8 +14,6 @@ reporting patterns while maintaining compatibility with the Pipecat framework. from dataclasses import dataclass from typing import Optional -from loguru import logger - from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams from pipecat.adapters.services.perplexity_adapter import PerplexityLLMAdapter from pipecat.metrics.metrics import LLMTokenUsage diff --git a/src/pipecat/services/sarvam/tts.py b/src/pipecat/services/sarvam/tts.py index 8bfeea8c6..9f768d0a1 100644 --- a/src/pipecat/services/sarvam/tts.py +++ b/src/pipecat/services/sarvam/tts.py @@ -53,12 +53,10 @@ from pipecat.frames.frames import ( EndFrame, ErrorFrame, Frame, - LLMFullResponseEndFrame, StartFrame, TTSAudioRawFrame, TTSStoppedFrame, ) -from pipecat.processors.frame_processor import FrameDirection from pipecat.services.sarvam._sdk import sdk_headers from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven from pipecat.services.tts_service import InterruptibleTTSService, TextAggregationMode, TTSService diff --git a/src/pipecat/services/ultravox/llm.py b/src/pipecat/services/ultravox/llm.py index 525da40c4..264241ca7 100644 --- a/src/pipecat/services/ultravox/llm.py +++ b/src/pipecat/services/ultravox/llm.py @@ -46,7 +46,6 @@ from pipecat.frames.frames import ( VADUserStoppedSpeakingFrame, ) from pipecat.processors.aggregators.llm_context import LLMContext -from pipecat.processors.aggregators.llm_response_universal import LLMContextAggregatorPair from pipecat.processors.frame_processor import FrameDirection from pipecat.services.llm_service import FunctionCallFromLLM, LLMService from pipecat.services.settings import NOT_GIVEN, LLMSettings, _NotGiven diff --git a/src/pipecat/services/xai/realtime/llm.py b/src/pipecat/services/xai/realtime/llm.py index 33dbe2f63..481fda547 100644 --- a/src/pipecat/services/xai/realtime/llm.py +++ b/src/pipecat/services/xai/realtime/llm.py @@ -46,9 +46,6 @@ from pipecat.frames.frames import ( ) from pipecat.metrics.metrics import LLMTokenUsage from pipecat.processors.aggregators.llm_context import LLMContext -from pipecat.processors.aggregators.llm_response_universal import ( - LLMContextAggregatorPair, -) from pipecat.processors.frame_processor import FrameDirection from pipecat.services.llm_service import FunctionCallFromLLM, LLMService from pipecat.services.settings import ( diff --git a/src/pipecat/transports/base_transport.py b/src/pipecat/transports/base_transport.py index 4d7d3caa0..9302323d1 100644 --- a/src/pipecat/transports/base_transport.py +++ b/src/pipecat/transports/base_transport.py @@ -18,8 +18,6 @@ from pydantic import BaseModel, ConfigDict, Field from pipecat.audio.filters.base_audio_filter import BaseAudioFilter from pipecat.audio.mixers.base_audio_mixer import BaseAudioMixer -from pipecat.audio.turn.base_turn_analyzer import BaseTurnAnalyzer -from pipecat.audio.vad.vad_analyzer import VADAnalyzer from pipecat.processors.frame_processor import FrameProcessor from pipecat.utils.base_object import BaseObject diff --git a/src/pipecat/transports/livekit/transport.py b/src/pipecat/transports/livekit/transport.py index 34a23f16d..dfb7e0565 100644 --- a/src/pipecat/transports/livekit/transport.py +++ b/src/pipecat/transports/livekit/transport.py @@ -20,7 +20,6 @@ from loguru import logger from pydantic import BaseModel from pipecat.audio.utils import create_stream_resampler -from pipecat.audio.vad.vad_analyzer import VADAnalyzer from pipecat.frames.frames import ( AudioRawFrame, BotConnectedFrame, diff --git a/src/pipecat/utils/tracing/service_decorators.py b/src/pipecat/utils/tracing/service_decorators.py index 256626e34..1922dd8f8 100644 --- a/src/pipecat/utils/tracing/service_decorators.py +++ b/src/pipecat/utils/tracing/service_decorators.py @@ -23,7 +23,7 @@ if TYPE_CHECKING: from opentelemetry import context as context_api from opentelemetry import trace -from pipecat.processors.aggregators.llm_context import NOT_GIVEN, LLMContext +from pipecat.processors.aggregators.llm_context import NOT_GIVEN from pipecat.utils.tracing.service_attributes import ( add_gemini_live_span_attributes, add_llm_span_attributes, diff --git a/tests/test_run_inference.py b/tests/test_run_inference.py index 2a7f7695e..e182fba18 100644 --- a/tests/test_run_inference.py +++ b/tests/test_run_inference.py @@ -7,7 +7,6 @@ from unittest.mock import AsyncMock, MagicMock, patch import pytest -from anthropic import NOT_GIVEN from openai import NotGiven from openai._types import NOT_GIVEN as OPENAI_NOT_GIVEN