Open Source framework for voice and multimodal conversational AI
This report presents the forensic synthetic code analysis of pipecat-ai/pipecat, a Python project with 13,416 GitHub stars. SynthScan v2.0 examined 320,790 lines of code across 1299 source files, recording 6476 pattern matches distributed across 26 syntactic categories. The overall adjusted score of 36.2 places this repository in the Strong AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 6476 distinct pattern matches across 26 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CONTRIBUTING.md | 0 | get the output audio sample rate. returns: the output sample rate in hz. | STRING |
| HIGH | src/pipecat/transports/base_input.py | 0 | get the output audio sample rate. returns: the output sample rate in hz. | STRING |
| HIGH | src/pipecat/transports/base_output.py | 0 | get the output audio sample rate. returns: the output sample rate in hz. | STRING |
| HIGH | src/pipecat/transports/lemonslice/transport.py | 0 | get the output audio sample rate. returns: the output sample rate in hz. | STRING |
| HIGH | src/pipecat/transports/tavus/transport.py | 0 | get the output audio sample rate. returns: the output sample rate in hz. | STRING |
| HIGH | src/pipecat/services/heygen/client.py | 0 | get the output audio sample rate. returns: the output sample rate in hz. | STRING |
| HIGH | src/pipecat/transports/daily/transport.py | 0 | get the output audio sample rate. returns: the output sample rate in hz. | STRING |
| HIGH | src/pipecat/audio/vad/vad_analyzer.py | 0 | get the output audio sample rate. returns: the output sample rate in hz. | STRING |
| HIGH | COMMUNITY_INTEGRATIONS.md | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/lmnt/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/cartesia/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/cartesia/turns/stt.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/inworld/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/asyncai/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/speechmatics/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/azure/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/rime/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/google/stt.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/soniox/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/soniox/stt.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/deepgram/stt.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/deepgram/flux/base.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/deepgram/sagemaker/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/deepgram/sagemaker/stt.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/camb/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/groq/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/tavus/video.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/smallest/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/minimax/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/elevenlabs/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/neuphonic/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/gradium/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/piper/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/nvidia/sagemaker/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/nvidia/sagemaker/stt.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/resembleai/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/sarvam/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/sarvam/stt.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/xtts/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/aws/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/fish/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/mistral/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/openai/tts.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/openai/base_llm.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | src/pipecat/services/openai/stt.py | 0 | check if this service can generate processing metrics. returns: true, as fish audio service supports metrics generation. | STRING |
| HIGH | tests/test_auto_register_tools.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| HIGH | examples/function-calling/function-calling-cerebras.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| HIGH | …ion-calling/function-calling-openai-responses-async.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| HIGH | examples/function-calling/function-calling-novita.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| HIGH | examples/function-calling/function-calling-sambanova.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| HIGH | examples/function-calling/function-calling-azure.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| HIGH | examples/function-calling/function-calling-inception.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| HIGH | examples/function-calling/function-calling-google.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| HIGH | …ples/function-calling/function-calling-google-async.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| HIGH | examples/function-calling/function-calling-nvidia.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| HIGH | …tion-calling/function-calling-openai-responses-http.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| HIGH | examples/function-calling/function-calling-grok.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| HIGH | …les/function-calling/function-calling-google-vertex.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| HIGH | …ples/function-calling/function-calling-openai-async.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| HIGH | examples/function-calling/function-calling-aws.py | 0 | get a restaurant recommendation. args: location: the city and state, e.g. "san francisco, ca". | STRING |
| 895 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CHANGELOG.md | 10293 | async def on_conversation_item_created(llm, item_id, item): | CODE |
| LOW | CHANGELOG.md | 10297 | async def on_conversation_item_updated(llm, item_id, item): | CODE |
| LOW⚡ | tests/test_async_tool_messages.py | 61 | def test_parses_completed_sentinel_result(self): | CODE |
| LOW⚡ | tests/test_async_tool_messages.py | 70 | def test_returns_none_for_regular_user_message(self): | CODE |
| LOW⚡ | tests/test_async_tool_messages.py | 73 | def test_returns_none_for_regular_assistant_message(self): | CODE |
| LOW⚡ | tests/test_async_tool_messages.py | 76 | def test_returns_none_for_regular_tool_message(self): | CODE |
| LOW⚡ | tests/test_async_tool_messages.py | 91 | def test_returns_none_for_developer_message_without_payload(self): | CODE |
| LOW⚡ | tests/test_async_tool_messages.py | 100 | def test_returns_none_for_invalid_json_content(self): | CODE |
| LOW⚡ | tests/test_async_tool_messages.py | 103 | def test_returns_none_for_non_dict_json(self): | CODE |
| LOW⚡ | tests/test_async_tool_messages.py | 106 | def test_returns_none_for_wrong_payload_type(self): | CODE |
| LOW | tests/test_async_tool_messages.py | 117 | def test_returns_none_when_tool_call_id_missing(self): | CODE |
| LOW | tests/test_async_tool_messages.py | 128 | def test_returns_none_when_status_invalid(self): | CODE |
| LOW⚡ | tests/test_async_tool_messages.py | 141 | def test_returns_none_for_non_string_content(self): | CODE |
| LOW⚡ | tests/test_async_tool_messages.py | 150 | def test_returns_none_for_missing_role(self): | CODE |
| LOW⚡ | tests/test_async_tool_messages.py | 157 | def test_started_message_shape(self): | CODE |
| LOW | tests/test_async_tool_messages.py | 170 | def test_intermediate_message_shape(self): | CODE |
| LOW | tests/test_async_tool_messages.py | 194 | def test_final_message_with_completed_sentinel(self): | CODE |
| LOW | tests/test_async_tool_messages.py | 216 | def test_intermediate_round_trip(self): | CODE |
| LOW⚡ | tests/test_openai_realtime_reasoning.py | 32 | def test_session_properties_accepts_reasoning_object(): | CODE |
| LOW⚡ | tests/test_openai_realtime_reasoning.py | 38 | def test_session_properties_coerces_reasoning_dict(): | CODE |
| LOW⚡ | tests/test_openai_realtime_reasoning.py | 45 | def test_reasoning_accepts_future_effort_strings(): | CODE |
| LOW⚡ | tests/test_openai_realtime_reasoning.py | 51 | def test_reasoning_serializes_into_session_update(): | CODE |
| LOW | tests/test_openai_realtime_reasoning.py | 89 | async def test_outgoing_session_update_strips_reasoning_on_unsupported_model(): | CODE |
| LOW | tests/test_openai_realtime_reasoning.py | 119 | async def test_outgoing_session_update_keeps_reasoning_on_supported_model(): | CODE |
| LOW | tests/test_openai_realtime_reasoning.py | 143 | async def test_supported_model_variant_keeps_reasoning(): | CODE |
| LOW | tests/test_openai_realtime_reasoning.py | 168 | async def test_no_warning_when_reasoning_is_unset_on_unsupported_model(): | CODE |
| LOW⚡ | tests/test_openai_realtime_reasoning.py | 193 | async def test_runtime_settings_update_with_reasoning_triggers_session_update(): | CODE |
| LOW | tests/test_openai_realtime_reasoning.py | 224 | async def test_runtime_settings_update_strips_reasoning_on_unsupported_model(): | CODE |
| LOW | tests/test_markdown_text_filter.py | 17 | async def test_basic_markdown_removal(self): | CODE |
| LOW | tests/test_markdown_text_filter.py | 59 | async def test_repeated_character_removal(self): | STRING |
| LOW | tests/test_markdown_text_filter.py | 81 | async def test_preserve_repeated_characters(self): | CODE |
| LOW | tests/test_markdown_text_filter.py | 96 | async def test_numbered_list_preservation(self): | CODE |
| LOW | tests/test_markdown_text_filter.py | 113 | async def test_html_entity_conversion(self): | CODE |
| LOW | tests/test_markdown_text_filter.py | 167 | async def test_numbered_list_marker_handling(self): | CODE |
| LOW | tests/test_markdown_text_filter.py | 185 | async def test_inline_code_handling(self): | CODE |
| LOW | tests/test_markdown_text_filter.py | 199 | async def test_simple_table_removal(self): | CODE |
| LOW | tests/test_markdown_text_filter.py | 283 | async def test_closed_atx_header_stripping(self): | CODE |
| LOW | tests/test_markdown_text_filter.py | 300 | async def test_header_trailing_space_preserved(self): | CODE |
| LOW | tests/test_markdown_text_filter.py | 318 | async def test_hash_in_content_not_treated_as_header(self): | CODE |
| LOW | tests/test_registry.py | 26 | async def test_register_remote_task(self): | CODE |
| LOW | tests/test_registry.py | 35 | async def test_duplicate_registration_returns_false(self): | CODE |
| LOW | tests/test_registry.py | 61 | async def test_get_unknown_task_returns_none(self): | CODE |
| LOW | tests/test_registry.py | 73 | async def test_watch_fires_on_registration(self): | CODE |
| LOW | tests/test_registry.py | 88 | async def test_watch_is_idempotent_for_same_handler(self): | CODE |
| LOW | tests/test_registry.py | 103 | async def test_watch_does_not_fire_for_other_tasks(self): | CODE |
| LOW | tests/test_registry.py | 117 | async def test_watch_does_not_fire_on_duplicate(self): | CODE |
| LOW | tests/test_registry.py | 152 | async def test_watch_fires_immediately_if_already_registered(self): | CODE |
| LOW | tests/test_registry.py | 167 | async def test_runner_name_property(self): | CODE |
| LOW | tests/test_registry.py | 171 | async def test_multiple_remote_runners(self): | CODE |
| LOW⚡ | tests/test_service_init.py | 71 | def _import_all_service_modules(): | CODE |
| LOW | tests/test_service_init.py | 115 | def _concrete_service_classes(): | CODE |
| LOW⚡ | tests/test_service_init.py | 140 | def test_delta_defaults_are_not_given(settings_cls): | CODE |
| LOW⚡ | tests/test_service_init.py | 163 | def test_service_settings_complete(service_cls): | CODE |
| LOW⚡ | tests/test_openai_realtime_audio_frames.py | 158 | async def test_single_item_response_unchanged(): | CODE |
| LOW⚡ | tests/test_openai_realtime_audio_frames.py | 199 | async def test_interrupt_during_single_item_truncates_against_that_item(): | CODE |
| LOW⚡ | tests/test_openai_realtime_audio_frames.py | 231 | async def test_multi_item_response_overlapping_emits_single_tts_turn(): | CODE |
| LOW⚡ | tests/test_openai_realtime_audio_frames.py | 285 | async def test_multi_item_response_non_overlapping_emits_single_tts_turn(): | CODE |
| LOW⚡ | tests/test_openai_realtime_audio_frames.py | 328 | async def test_interrupt_during_second_item_truncates_against_second_item(): | CODE |
| LOW | tests/test_pgmq_bus.py | 154 | async def test_send_publishes_to_pgmq(self): | CODE |
| LOW | tests/test_pgmq_bus.py | 168 | async def test_local_message_stays_local(self): | CODE |
| 3463 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_openai_realtime_reasoning.py | 27 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_reasoning.py | 29 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_reasoning.py | 58 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_reasoning.py | 60 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_reasoning.py | 187 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_reasoning.py | 189 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_service_init.py | 58 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_service_init.py | 60 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_service_init.py | 89 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_service_init.py | 91 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_service_init.py | 134 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_service_init.py | 136 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_service_init.py | 157 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_service_init.py | 159 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_openai_realtime_audio_frames.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_openai_realtime_audio_frames.py | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_audio_frames.py | 152 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_audio_frames.py | 154 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_audio_frames.py | 193 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_audio_frames.py | 195 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_audio_frames.py | 225 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_audio_frames.py | 227 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_audio_frames.py | 279 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_audio_frames.py | 281 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_audio_frames.py | 322 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_audio_frames.py | 324 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_elevenlabs_tts.py | 266 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_elevenlabs_tts.py | 273 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_service_language.py | 71 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_service_language.py | 73 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_service_language.py | 118 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_service_language.py | 120 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_service_language.py | 160 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_service_language.py | 162 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_service_language.py | 207 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_service_language.py | 209 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_service_language.py | 24 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_service_language.py | 26 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_responses_http.py | 89 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_responses_http.py | 91 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_responses_http.py | 190 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_responses_http.py | 192 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_openai_realtime_user_audio.py | 35 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_openai_realtime_user_audio.py | 37 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_user_audio.py | 91 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_user_audio.py | 93 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_user_audio.py | 190 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_openai_realtime_user_audio.py | 192 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_aggregated_frame_sequencer.py | 56 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_aggregated_frame_sequencer.py | 58 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_aggregated_frame_sequencer.py | 108 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_aggregated_frame_sequencer.py | 110 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_aggregated_frame_sequencer.py | 153 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_aggregated_frame_sequencer.py | 155 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_aggregated_frame_sequencer.py | 188 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_aggregated_frame_sequencer.py | 190 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_aggregated_frame_sequencer.py | 284 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_aggregated_frame_sequencer.py | 286 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_aggregated_frame_sequencer.py | 311 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_aggregated_frame_sequencer.py | 313 | # --------------------------------------------------------------------------- | COMMENT |
| 258 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | COMMUNITY_INTEGRATIONS.md | 624 | except Exception as e: | CODE |
| LOW⚡ | tests/test_service_init.py | 79 | except Exception: | CODE |
| LOW⚡ | tests/test_service_init.py | 171 | except Exception: | CODE |
| LOW | tests/test_pgmq_bus.py | 30 | except Exception: | CODE |
| LOW | tests/test_fastapi_websocket.py | 176 | except Exception: | CODE |
| MEDIUM | tests/test_fastapi_websocket.py | 172 | def receive_loop(): | CODE |
| LOW⚡ | tests/test_pgmq_backends.py | 35 | except Exception: | CODE |
| LOW | tests/test_redis_bus.py | 27 | except Exception: | CODE |
| LOW | docs/api/conf.py | 226 | except Exception as e: | CODE |
| LOW | examples/transcription/transcription-google-llm.py | 187 | except Exception as e: | STRING |
| LOW | examples/features/features-gpu-container-local-bot.py | 148 | except Exception as e: | CODE |
| MEDIUM | examples/features/features-gpu-container-local-bot.py | 130 | def on_app_message(transport, message, sender): | CODE |
| LOW | examples/multi-worker/code-assistant/code_worker.py | 84 | except Exception as e: | CODE |
| LOW | examples/multi-worker/code-assistant/code_worker.py | 106 | except Exception as e: | CODE |
| LOW | examples/rag/rag-mem0.py | 99 | except Exception as e: | CODE |
| LOW | examples/realtime/realtime-gemini-live-files-api.py | 155 | except Exception as e: | STRING |
| LOW | examples/realtime/realtime-gemini-live-files-api.py | 226 | except Exception as e: | STRING |
| LOW | examples/realtime/realtime-gemini-live-files-api.py | 233 | except Exception as e: | STRING |
| LOW | examples/voice/voice-aws-strands.py | 110 | except Exception as e: | CODE |
| LOW | …les/persistent-context/persistent-context-anthropic.py | 86 | except Exception as e: | CODE |
| LOW | …les/persistent-context/persistent-context-anthropic.py | 104 | except Exception as e: | CODE |
| LOW | …sistent-context/persistent-context-openai-responses.py | 86 | except Exception as e: | CODE |
| LOW | …sistent-context/persistent-context-openai-responses.py | 105 | except Exception as e: | CODE |
| LOW | …amples/persistent-context/persistent-context-gemini.py | 115 | except Exception as e: | CODE |
| LOW | …amples/persistent-context/persistent-context-gemini.py | 136 | except Exception as e: | CODE |
| LOW | …rsistent-context/persistent-context-openai-realtime.py | 90 | except Exception as e: | CODE |
| LOW | …rsistent-context/persistent-context-openai-realtime.py | 113 | except Exception as e: | CODE |
| LOW | …amples/persistent-context/persistent-context-openai.py | 86 | except Exception as e: | CODE |
| LOW | …amples/persistent-context/persistent-context-openai.py | 105 | except Exception as e: | CODE |
| LOW | …nt-context/persistent-context-openai-responses-http.py | 86 | except Exception as e: | CODE |
| LOW | …nt-context/persistent-context-openai-responses-http.py | 105 | except Exception as e: | CODE |
| LOW | …ersistent-context/persistent-context-aws-nova-sonic.py | 106 | except Exception as e: | CODE |
| LOW | …ersistent-context/persistent-context-aws-nova-sonic.py | 143 | except Exception as e: | CODE |
| LOW | …persistent-context/persistent-context-grok-realtime.py | 90 | except Exception as e: | CODE |
| LOW | …persistent-context/persistent-context-grok-realtime.py | 109 | except Exception as e: | CODE |
| LOW | …urn-management/turn-management-user-assistant-turns.py | 78 | except Exception as e: | CODE |
| LOW | scripts/cli/configs/config_generator.py | 112 | except Exception as e: | CODE |
| LOW | scripts/cli/configs/config_generator.py | 280 | except Exception as e: | CODE |
| LOW | scripts/daily/mock_tavus_server.py | 213 | except Exception as e: | CODE |
| MEDIUM | scripts/daily/mock_tavus_server.py | 21 | def set_result(future, *args): | CODE |
| MEDIUM | scripts/krisp/test_krisp_viva_filter_audiofile.py | 31 | print(f"Error: Missing required dependencies: {e}") | CODE |
| MEDIUM | scripts/krisp/test_krisp_viva_filter_audiofile.py | 47 | print(f"Error: Could not import Krisp VIVA filter: {e}") | CODE |
| MEDIUM | scripts/krisp/test_krisp_viva_filter_audiofile.py | 58 | print(f"Error: {env_var} environment variable not set") | CODE |
| MEDIUM | scripts/krisp/test_krisp_viva_filter_audiofile.py | 64 | print(f"Error: Model file not found: {model_path}") | CODE |
| MEDIUM | scripts/krisp/test_krisp_viva_filter_audiofile.py | 83 | print(f"Error: TTS model file not found: {path}") | CODE |
| MEDIUM | scripts/krisp/test_krisp_viva_filter_audiofile.py | 258 | print("Error: No filtered audio produced") | CODE |
| MEDIUM | scripts/krisp/test_krisp_viva_filter_audiofile.py | 341 | print(f"Error: Input file not found: {args.input}") | STRING |
| MEDIUM | scripts/krisp/test_krisp_viva_turn_audiofile.py | 29 | print(f"Error: Missing required dependencies: {e}") | CODE |
| MEDIUM | scripts/krisp/test_krisp_viva_turn_audiofile.py | 45 | print(f"Error: Could not import Krisp VIVA turn analyzer: {e}") | CODE |
| MEDIUM | scripts/krisp/test_krisp_viva_turn_audiofile.py | 56 | print(f"Error: {env_var} environment variable not set") | CODE |
| MEDIUM | scripts/krisp/test_krisp_viva_turn_audiofile.py | 62 | print(f"Error: Model file not found: {model_path}") | CODE |
| MEDIUM | scripts/krisp/test_krisp_viva_turn_audiofile.py | 311 | print(f"Error: Input file not found: {args.input}") | STRING |
| MEDIUM | scripts/krisp/test_krisp_viva_turn_audiofile.py | 316 | print(f"Error: Threshold must be between 0.0 and 1.0, got {args.threshold}") | STRING |
| MEDIUM | scripts/krisp/audio_file_utils.py | 57 | print(f"Error: Unsupported audio format: {info.subtype}") | CODE |
| LOW | src/pipecat/evals/harness.py | 489 | except Exception as e: | CODE |
| LOW | src/pipecat/evals/harness.py | 688 | except Exception: | CODE |
| LOW | src/pipecat/evals/suite.py | 481 | except Exception as e: | CODE |
| LOW | src/pipecat/evals/judge.py | 255 | except Exception as e: | CODE |
| LOW | src/pipecat/evals/speech.py | 265 | except Exception as e: | CODE |
| LOW | src/pipecat/runner/run.py | 291 | except Exception: | CODE |
| 548 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .claude/skills/docstring/SKILL.md | 136 | One-line summary of what method does. [Longer description if behavior isn't obvious.] Args: param1: De | STRING |
| HIGH | .claude/skills/cleanup/SKILL.md | 104 | Process incoming data with optional configuration. Args: data: The input data to process. options: | STRING |
| HIGH | examples/flows/utils.py | 18 | Create an LLM service instance based on environment configuration. Args: provider: LLM provider name. If No | STRING |
| HIGH | scripts/krisp/audio_file_utils.py | 14 | Read an audio file and convert to int16 mono format. This function: - Detects the audio format from the file he | STRING |
| HIGH | src/pipecat/evals/scenario.py | 343 | Parse a scenario YAML file into an :class:`EvalScenario`. Args: path: Path to a YAML file with the | STRING |
| HIGH | src/pipecat/evals/judge.py | 133 | Build an :class:`EvalJudge` from a scenario's ``judge.eval:`` config block. Honors a custom ``factory`` (dotted | STRING |
| HIGH | src/pipecat/runner/utils.py | 112 | Parse telephony WebSocket messages and return transport type and call data. Args: websocket: FastAPI WebSoc | STRING |
| HIGH | src/pipecat/runner/utils.py | 460 | Get transport parameters from factory function. Args: transport_key: The transport key to look up t | STRING |
| HIGH | src/pipecat/runner/utils.py | 598 | Create a transport from runner arguments using factory functions. This function uses the clean transport_params fac | STRING |
| HIGH | src/pipecat/runner/daily.py | 93 | Configure Daily room URL and token with optional SIP capabilities. This function will either: 1. Use an existin | STRING |
| HIGH | src/pipecat/runner/livekit.py | 101 | Configure LiveKit room with command-line argument parsing. Args: parser: Optional argument parser. If None, | STRING |
| HIGH | src/pipecat/transports/lemonslice/api.py | 51 | Create a new session with the specified agent_id or agent_image_url. Args: agent_image_url: The URL | STRING |
| HIGH | src/pipecat/transports/smallwebrtc/transport.py | 101 | Add audio bytes to the buffer for transmission. Args: audio_bytes: Raw audio data to queue for tran | STRING |
| HIGH | src/pipecat/transports/smallwebrtc/transport.py | 264 | Convert a video frame to RGB format based on the input format. Args: frame_array: The input frame a | STRING |
| HIGH | src/pipecat/transports/smallwebrtc/request_handler.py | 165 | Handle a SmallWebRTC request and resolve the pending answer. This method will: - Reuse an existing We | STRING |
| HIGH | src/pipecat/transports/daily/utils.py | 272 | Create a new Daily room. Args: params: Room configuration parameters. Returns: | STRING |
| HIGH | src/pipecat/transports/daily/utils.py | 309 | Generate a meeting token for user to join a Daily room. Args: room_url: Daily room URL. | STRING |
| HIGH | src/pipecat/transports/daily/utils.py | 378 | Delete a room using its name. Args: room_name: Name of the room to delete. Returns: | STRING |
| HIGH | src/pipecat/transports/livekit/utils.py | 68 | Delete a LiveKit room by name. This will forcibly disconnect all participants currently in the room. A | STRING |
| HIGH | src/pipecat/transports/whatsapp/client.py | 132 | Handle a verify webhook request from WhatsApp. Args: params: Dictionary containing webhook paramete | STRING |
| HIGH | src/pipecat/transports/whatsapp/client.py | 193 | Handle a webhook request from WhatsApp. This method processes incoming webhook requests and handles both | STRING |
| HIGH | src/pipecat/transports/whatsapp/client.py | 318 | Handle a CONNECT event by establishing WebRTC connection and accepting the call. This method: 1. Create | STRING |
| HIGH | src/pipecat/tests/utils.py | 136 | Run a test pipeline with the specified processor and validate frame flow. This function creates a test pipeline wit | STRING |
| HIGH | src/pipecat/utils/asyncio/task_manager.py | 170 | Creates and schedules a new asyncio Task that runs the given coroutine. The task is added to a global set of cr | STRING |
| HIGH | src/pipecat/cli/registry/service_loader.py | 18 | Extract the extra names from a package string. Args: package: Package string like "pipecat-ai[deepgram]", " | STRING |
| HIGH | src/pipecat/cli/generators/project.py | 76 | Generate the complete project structure. Args: output_dir: Optional directory to create project in | STRING |
| HIGH | src/pipecat/adapters/services/gemini_adapter.py | 338 | Convert standard universal context message to Google Content object. Handles conversion of text, images, and fu | STRING |
| HIGH | src/pipecat/adapters/services/bedrock_adapter.py | 181 | Convert standard format message to AWS Bedrock format. Handles conversion of text content, tool calls, and tool | STRING |
| HIGH | src/pipecat/adapters/services/anthropic_adapter.py | 255 | Convert standard universal context message to Anthropic format. Handles conversion of text content, tool calls, | STRING |
| HIGH | src/pipecat/serializers/telnyx.py | 128 | Serializes a Pipecat frame to Telnyx WebSocket format. Handles conversion of various frame types to Telnyx WebS | STRING |
| HIGH | src/pipecat/serializers/telnyx.py | 237 | Deserializes Telnyx WebSocket data to Pipecat frames. Handles conversion of Telnyx media events to appropriate | STRING |
| HIGH | src/pipecat/serializers/genesys.py | 315 | Create a protocol message with common fields. Based on the Genesys AudioHook protocol, responses include: | STRING |
| HIGH | src/pipecat/audio/krisp_instance.py | 45 | Convert integer sample rate to Krisp SDK enum value. Args: sample_rate: Sample rate in Hz (e.g., 16000, 240 | STRING |
| HIGH | src/pipecat/audio/krisp_instance.py | 65 | Convert integer frame duration to Krisp SDK enum value. Args: frame_duration_ms: Frame duration in millisec | STRING |
| HIGH | src/pipecat/audio/filters/aic_filter.py | 133 | Get or load a Model and increment its reference count. Call this when starting a filter. Store the returned key | STRING |
| HIGH | src/pipecat/audio/filters/aic_filter.py | 315 | Return an analyzer that will lazily instantiate the AIC VAD when ready. .. deprecated:: 1.4.0 Const | STRING |
| HIGH | src/pipecat/audio/turn/krisp_viva_turn.py | 162 | Create a turn detection session with the specified sample rate. Args: sample_rate: Sample rate for | STRING |
| HIGH | src/pipecat/audio/vad/krisp_viva_vad.py | 100 | Create a Krisp VAD session with a specific sample rate. Args: sample_rate: Sample rate for the sess | STRING |
| HIGH | src/pipecat/transcriptions/language.py | 586 | Resolve a Language enum to a service-specific language code. Checks the language map first, then falls back to extr | STRING |
| HIGH | src/pipecat/workers/base_worker.py | 877 | Wait for workers to be ready, create a job group, and send requests. Waits for all workers to be registered as | STRING |
| HIGH | src/pipecat/flows/manager.py | 292 | Initialize the flow manager. Args: initial_node: Optional initial node configuration. If provided, | STRING |
| HIGH | src/pipecat/services/llm_service.py | 681 | Generate a compressed summary of conversation context. Uses the message selection logic to identify which messa | STRING |
| HIGH | src/pipecat/services/settings.py | 121 | Extract a store-mode settings field, asserting it isn't ``NOT_GIVEN``. Intended for reads from a store-mode setting | STRING |
| HIGH | src/pipecat/services/settings.py | 227 | Merge a delta-mode object into this store-mode object. Only fields in *delta* that are **given** (i.e. not ``NO | STRING |
| HIGH | src/pipecat/services/settings.py | 277 | Build a **delta-mode** settings object from a plain dictionary. This exists for backward compatibility with cod | STRING |
| HIGH | src/pipecat/services/inworld/realtime/events.py | 867 | Parse a server event from JSON string. Args: data: JSON string containing the server event. Returns: | STRING |
| HIGH | src/pipecat/services/google/tts.py | 698 | Create authenticated Google Text-to-Speech client. Args: credentials: JSON string with service acco | STRING |
| HIGH | src/pipecat/services/google/tts.py | 898 | Create authenticated Google Text-to-Speech client. Args: credentials: JSON string with service acco | STRING |
| HIGH | src/pipecat/services/google/image.py | 147 | Generate images from a text prompt using Google's Imagen model. Args: prompt: The text description | STRING |
| HIGH | src/pipecat/services/google/vertex/llm.py | 193 | Retrieve Credentials using Google service account credentials. Supports multiple authentication methods: | STRING |
| HIGH | src/pipecat/services/google/gemini_live/vertex/llm.py | 263 | Retrieve Credentials using Google service account credentials JSON. Supports multiple authentication methods: | STRING |
| HIGH | src/pipecat/services/deepgram/flux/stt.py | 122 | Initialize the Deepgram Flux STT service. Args: api_key: Deepgram API key for authentication. Requi | STRING |
| HIGH | src/pipecat/services/deepgram/flux/stt.py | 382 | Send audio data to Deepgram Flux for transcription. Transmits raw audio bytes to the Deepgram Flux API for real | STRING |
| HIGH | src/pipecat/services/xai/realtime/events.py | 859 | Parse a server event from JSON string. Args: data: JSON string containing the server event. Returns: | STRING |
| HIGH | src/pipecat/services/elevenlabs/stt.py | 334 | Upload audio data to ElevenLabs and get transcription result. Args: audio_data: Raw audio bytes in | STRING |
| HIGH | src/pipecat/services/nvidia/llm.py | 271 | Handle ``reasoning_content`` and leading ``<think>`` tags in a chunk stream. Inspects each chunk for a ``reason | STRING |
| HIGH | src/pipecat/services/heygen/api_interactive_avatar.py | 157 | Make a POST request to the HeyGen API. Args: path: API endpoint path. params: JSON-seri | STRING |
| HIGH | src/pipecat/services/heygen/api_interactive_avatar.py | 245 | Start the streaming session. https://docs.heygen.com/reference/start-session Args: session | STRING |
| HIGH | src/pipecat/services/heygen/api_interactive_avatar.py | 267 | Terminate an active the streaming session. https://docs.heygen.com/reference/close-session Args: | STRING |
| HIGH | src/pipecat/services/heygen/api_liveavatar.py | 192 | Make a request to the LiveAvatar API. Args: method: HTTP method (GET, POST, etc.). path | STRING |
| 7 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_markdown_text_filter.py | 216 | # Create a filter with all features disabled | COMMENT |
| MEDIUM | tests/test_frame_processor.py | 292 | # Create a frame with mutable fields to test shallow copying | COMMENT |
| MEDIUM | tests/test_ivr_navigation.py | 28 | # Create a mock LLM service | COMMENT |
| MEDIUM | tests/test_krisp_viva_filter.py | 53 | # Create a temporary .kef model file for testing | COMMENT |
| MEDIUM | tests/test_piper_tts.py | 63 | # Create an aiohttp test server | COMMENT |
| MEDIUM | tests/test_krisp_viva_vad.py | 55 | # Create a temporary .kef model file for testing | COMMENT |
| MEDIUM⚡ | tests/test_vonage_video_connector.py | 972 | # Create an event that will block but can be interrupted | COMMENT |
| MEDIUM⚡ | tests/test_vonage_video_connector.py | 2852 | # Create a simple RGB image with distinct colors | COMMENT |
| MEDIUM | tests/test_vonage_video_connector.py | 762 | # Create an event that will block but can be interrupted | COMMENT |
| MEDIUM | tests/test_vonage_video_connector.py | 1051 | # Create a mock coroutine to queue | COMMENT |
| MEDIUM | tests/test_vonage_video_connector.py | 1188 | # Create a test RGB image (640x480, 3 channels) | COMMENT |
| MEDIUM | tests/test_vonage_video_connector.py | 1838 | # Create a test RGB video frame (4x4, 3 channels) | COMMENT |
| MEDIUM | tests/test_vonage_video_connector.py | 2084 | # Create a mock audio frame | COMMENT |
| MEDIUM | tests/test_vonage_video_connector.py | 2102 | # Create a test video frame | COMMENT |
| MEDIUM | tests/test_vonage_video_connector.py | 2134 | # Create a test video frame | COMMENT |
| MEDIUM | tests/test_vonage_video_connector.py | 2165 | # Create a video frame with incorrect size | COMMENT |
| MEDIUM | tests/test_vonage_video_connector.py | 2191 | # Create a video frame with incorrect size | COMMENT |
| MEDIUM | tests/test_vonage_video_connector.py | 2319 | # Create a StartFrame with specific sample rates | COMMENT |
| MEDIUM | tests/test_vonage_video_connector.py | 2349 | # Create a StartFrame with different sample rates | COMMENT |
| MEDIUM⚡ | tests/test_aic_vad.py | 57 | # Create a mock VAD context for testing | COMMENT |
| MEDIUM | tests/test_service_switcher.py | 404 | # Create a pipeline with both switchers: switcher1 -> switcher2 | COMMENT |
| MEDIUM | tests/test_openai_llm_timeout.py | 68 | # Create a context frame to process | COMMENT |
| MEDIUM | tests/test_context_summarization.py | 649 | # Create a minimal LLM service - base class raises NotImplementedError | COMMENT |
| MEDIUM | tests/test_get_llm_invocation_params.py | 162 | # Create a message with complex content structure (text + image) | COMMENT |
| MEDIUM | tests/test_get_llm_invocation_params.py | 174 | # Create a message with multiple text blocks | COMMENT |
| MEDIUM | tests/test_get_llm_invocation_params.py | 472 | # Create a message with complex content structure (text + image) | COMMENT |
| MEDIUM | tests/test_get_llm_invocation_params.py | 487 | # Create a message with multiple text blocks | COMMENT |
| MEDIUM | tests/test_get_llm_invocation_params.py | 497 | # Create a message with audio input (text + audio) | COMMENT |
| MEDIUM | tests/test_get_llm_invocation_params.py | 931 | # Create a complex message with both text and image content | COMMENT |
| MEDIUM | tests/test_get_llm_invocation_params.py | 1314 | # Create a complex message with both text and image content | COMMENT |
| MEDIUM | …tegration/test_integration_unified_function_calling.py | 48 | # Create a mock weather function | COMMENT |
| MEDIUM | …ideo-processing/video-processing-custom-video-track.py | 157 | # Create a blue-tinted copy for the custom destination. | COMMENT |
| MEDIUM | examples/transports/transports-small-webrtc.py | 56 | # Create a transport using the WebRTC connection | COMMENT |
| MEDIUM | examples/rag/rag-mem0.py | 84 | # Create a personalized greeting based on memories | COMMENT |
| MEDIUM | examples/realtime/realtime-openai.py | 148 | # Create a standard OpenAI LLM context object using the normal messages format. The | COMMENT |
| MEDIUM | examples/realtime/realtime-openai-text.py | 145 | # Create a standard OpenAI LLM context object using the normal messages format. The | COMMENT |
| MEDIUM | examples/realtime/realtime-inworld.py | 109 | # Create the Inworld Realtime LLM service. | COMMENT |
| MEDIUM | examples/realtime/realtime-grok.py | 151 | # Create the Grok Realtime LLM service | COMMENT |
| MEDIUM | …es/realtime/realtime-gemini-live-grounding-metadata.py | 120 | # Create a processor to capture grounding metadata | COMMENT |
| MEDIUM | examples/realtime/realtime-azure.py | 135 | # Create a standard LLM context object using the normal messages format. The | COMMENT |
| MEDIUM | examples/realtime/realtime-aws-nova-sonic.py | 94 | # Create the AWS Nova Sonic LLM service | COMMENT |
| MEDIUM | examples/realtime/realtime-openai-live-video.py | 103 | # Create a standard OpenAI LLM context object using the normal messages format. The | COMMENT |
| MEDIUM | examples/realtime/realtime-gemini-live-files-api.py | 86 | # Create a temporary file | STRING |
| MEDIUM | examples/realtime/realtime-gemini-live-files-api.py | 95 | # Create a sample file to upload | STRING |
| MEDIUM | examples/update-settings/stt/stt-whisper-api.py | 59 | # This file is meant to exercise Whisper API-based STT services, so we use | COMMENT |
| MEDIUM | examples/getting-started/04-sync-speech-and-image.py | 114 | # Create an HTTP session for API calls | COMMENT |
| MEDIUM | examples/voice/voice-neuphonic-http.py | 62 | # Create an HTTP session | COMMENT |
| MEDIUM | examples/voice/voice-elevenlabs-http.py | 62 | # Create an HTTP session | COMMENT |
| MEDIUM | examples/voice/voice-aicoustics.py | 150 | # Create the WAV file | COMMENT |
| MEDIUM | examples/voice/voice-xtts.py | 61 | # Create an HTTP session | COMMENT |
| MEDIUM | examples/voice/voice-sarvam-http.py | 63 | # Create an HTTP session | COMMENT |
| MEDIUM | examples/voice/voice-asyncai-http.py | 62 | # Create an HTTP session | COMMENT |
| MEDIUM | examples/voice/voice-minimax.py | 63 | # Create an HTTP session | COMMENT |
| MEDIUM | examples/voice/voice-rime-http.py | 62 | # Create an HTTP session | COMMENT |
| MEDIUM | …persistent-context/persistent-context-grok-realtime.py | 115 | # Define the tools schema | COMMENT |
| MEDIUM | scripts/cli/imports/update_imports.py | 173 | # Create the complete file content | STRING |
| MEDIUM | .github/workflows/update-docs.yml | 146 | ### Creating the docs PR | COMMENT |
| MEDIUM | src/pipecat/runner/daily.py | 208 | # Create a new room | COMMENT |
| MEDIUM | src/pipecat/transports/websocket/server.py | 251 | # Create a task to monitor the websocket connection | COMMENT |
| MEDIUM | src/pipecat/utils/base_object.py | 255 | # Create the task. Note that this is a task per each function | COMMENT |
| 29 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_get_llm_invocation_params.py | 467 | CODE | |
| LOW | tests/test_gemini_live_user_audio.py | 53 | CODE | |
| LOW | tests/cli/test_client_generation.py | 202 | CODE | |
| LOW | tests/cli/test_project_generation.py | 60 | CODE | |
| LOW | tests/cli/test_project_generation.py | 415 | CODE | |
| LOW | examples/transcription/transcription-google-llm.py | 94 | CODE | |
| LOW | examples/transcription/transcription-google-llm.py | 131 | CODE | |
| LOW | examples/features/features-custom-frame-processor.py | 39 | CODE | |
| LOW | examples/multi-worker/code-assistant/code_worker.py | 80 | CODE | |
| LOW | …es/realtime/realtime-gemini-live-grounding-metadata.py | 79 | CODE | |
| LOW | examples/voice/voice-google-audio-in.py | 86 | CODE | |
| LOW | examples/voice/voice-google-audio-in.py | 128 | CODE | |
| LOW | examples/voice/voice-aicoustics-vad-only.py | 120 | CODE | |
| LOW | examples/flows/llm_switching.py | 95 | CODE | |
| LOW | scripts/cli/imports/import_generator.py | 19 | CODE | |
| LOW | scripts/cli/imports/import_generator.py | 56 | CODE | |
| LOW | scripts/cli/imports/import_generator.py | 138 | CODE | |
| LOW | scripts/cli/imports/import_generator.py | 285 | CODE | |
| LOW | scripts/cli/imports/import_generator.py | 381 | CODE | |
| LOW | scripts/cli/configs/config_generator.py | 256 | CODE | |
| LOW | scripts/cli/configs/config_generator.py | 375 | CODE | |
| LOW | scripts/krisp/test_krisp_viva_filter_audiofile.py | 88 | CODE | |
| LOW | scripts/krisp/test_krisp_viva_turn_audiofile.py | 68 | CODE | |
| LOW | scripts/deprecations/scan.py | 128 | CODE | |
| LOW | scripts/deprecations/scan.py | 296 | CODE | |
| LOW | scripts/deprecations/scan.py | 308 | CODE | |
| LOW | src/pipecat/pipeline/worker.py | 227 | CODE | |
| LOW | src/pipecat/pipeline/worker.py | 808 | CODE | |
| LOW | src/pipecat/pipeline/worker.py | 1112 | CODE | |
| LOW | src/pipecat/pipeline/worker.py | 1160 | CODE | |
| LOW | src/pipecat/pipeline/job_decorator.py | 51 | CODE | |
| LOW | src/pipecat/pipeline/sync_parallel_pipeline.py | 252 | CODE | |
| LOW | src/pipecat/pipeline/sync_parallel_pipeline.py | 291 | CODE | |
| LOW | src/pipecat/pipeline/worker_observer.py | 174 | CODE | |
| LOW | src/pipecat/pipeline/worker_ready_decorator.py | 37 | CODE | |
| LOW | src/pipecat/evals/harness.py | 386 | CODE | |
| LOW | src/pipecat/evals/harness.py | 579 | CODE | |
| LOW | src/pipecat/evals/harness.py | 761 | CODE | |
| LOW | src/pipecat/evals/scenario.py | 464 | CODE | |
| LOW | src/pipecat/runner/run.py | 327 | CODE | |
| LOW | src/pipecat/runner/run.py | 386 | CODE | |
| LOW | src/pipecat/runner/run.py | 540 | CODE | |
| LOW | src/pipecat/runner/run.py | 757 | CODE | |
| LOW | src/pipecat/runner/run.py | 573 | CODE | |
| LOW | src/pipecat/runner/run.py | 838 | CODE | |
| LOW | src/pipecat/runner/utils.py | 111 | CODE | |
| LOW | src/pipecat/runner/utils.py | 483 | CODE | |
| LOW | src/pipecat/runner/utils.py | 595 | CODE | |
| LOW | src/pipecat/transports/base_input.py | 208 | CODE | |
| LOW | src/pipecat/transports/base_output.py | 326 | CODE | |
| LOW | src/pipecat/transports/base_output.py | 361 | CODE | |
| LOW | src/pipecat/transports/base_output.py | 789 | CODE | |
| LOW | src/pipecat/transports/websocket/fastapi.py | 558 | CODE | |
| LOW | src/pipecat/transports/smallwebrtc/transport.py | 701 | CODE | |
| LOW | src/pipecat/transports/smallwebrtc/connection.py | 327 | CODE | |
| LOW | src/pipecat/transports/smallwebrtc/connection.py | 331 | CODE | |
| LOW | src/pipecat/transports/smallwebrtc/connection.py | 341 | CODE | |
| LOW | src/pipecat/transports/tavus/transport.py | 530 | CODE | |
| LOW | src/pipecat/transports/daily/transport.py | 2267 | CODE | |
| LOW | src/pipecat/transports/heygen/transport.py | 227 | CODE | |
| 222 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_flows_context_strategies.py | 19 | CODE | |
| LOW | tests/test_flows_context_strategies.py | 21 | CODE | |
| LOW | tests/test_flows_direct_functions.py | 9 | CODE | |
| LOW | tests/test_flows_direct_functions.py | 9 | CODE | |
| LOW | tests/test_aic_vad_deprecation.py | 13 | CODE | |
| LOW | tests/test_flows_manager.py | 35 | CODE | |
| LOW | tests/test_aic_filter_vad_factory_deprecation.py | 13 | CODE | |
| LOW | tests/test_runner_utils.py | 24 | CODE | |
| LOW | tests/test_app_resources.py | 7 | CODE | |
| LOW | tests/test_bus_network.py | 14 | CODE | |
| LOW | tests/test_bus_network.py | 21 | CODE | |
| LOW | examples/flows/assets/hold_music/hold_music.py | 13 | CODE | |
| LOW | scripts/release-changelog.py | 24 | CODE | |
| LOW | scripts/krisp/test_krisp_viva_filter_audiofile.py | 28 | CODE | |
| LOW | scripts/krisp/test_krisp_viva_turn_audiofile.py | 26 | CODE | |
| LOW | scripts/deprecations/generate.py | 23 | CODE | |
| LOW | scripts/deprecations/scan.py | 20 | CODE | |
| LOW | scripts/deprecations/generate_removals.py | 30 | CODE | |
| LOW | src/pipecat/pipeline/job_context.py | 9 | CODE | |
| LOW | src/pipecat/pipeline/task.py | 15 | CODE | |
| LOW | src/pipecat/pipeline/task.py | 15 | CODE | |
| LOW | src/pipecat/pipeline/task.py | 15 | CODE | |
| LOW | src/pipecat/pipeline/task.py | 15 | CODE | |
| LOW | src/pipecat/pipeline/task.py | 15 | CODE | |
| LOW | src/pipecat/runner/utils.py | 57 | CODE | |
| LOW | src/pipecat/transports/vonage/video_connector.py | 41 | CODE | |
| LOW | src/pipecat/bus/bridge_processor.py | 35 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 22 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 23 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 24 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 25 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 54 | CODE | |
| LOW | src/pipecat/bus/__init__.py | 55 | CODE | |
| LOW | src/pipecat/bus/messages.py | 13 | CODE | |
| 141 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_pipeline.py | 408 | # is a guaranteed lower bound, so this is robust to scheduling jitter while | COMMENT |
| MEDIUM | tests/cli/test_project_generation.py | 855 | # schema (EvalScenario.load is the validator the harness itself uses). | COMMENT |
| MEDIUM | tests/cli/test_project_generation.py | 864 | # The project env carries what the harness needs via the `evals` extra: the | COMMENT |
| LOW | …s/function-calling/function-calling-moondream-video.py | 98 | # For all other frames, just pass them through | COMMENT |
| LOW | examples/transcription/transcription-google-llm.py | 155 | # keep the token count down, but for now, we'll just use the whole thing. | STRING |
| MEDIUM | examples/features/features-add-tool-change-messages.py | 121 | # what we want for this validation harness. Pull it with | COMMENT |
| MEDIUM | examples/realtime/realtime-aws-nova-sonic.py | 112 | # Session continuation is enabled by default, allowing seamless | COMMENT |
| MEDIUM | scripts/release-evals/manifest.yaml | 268 | # LLM responds to, so the harness can assert on the resulting transcription and | COMMENT |
| MEDIUM | …ripts/release-evals/scenarios/food_ordering_sushi.yaml | 28 | # pipeline down before the farewell llm_response reaches the harness. | COMMENT |
| MEDIUM | scripts/release-evals/scenarios/hello_world.yaml | 11 | # pipeline down before the farewell llm_response reaches the harness. | COMMENT |
| MEDIUM | …-evals/scenarios/restaurant_reservation_available.yaml | 28 | # pipeline down before the farewell llm_response reaches the harness. | COMMENT |
| MEDIUM | …ripts/release-evals/scenarios/food_ordering_pizza.yaml | 36 | # pipeline down before the farewell llm_response reaches the harness. | COMMENT |
| MEDIUM | scripts/release-evals/scenarios/insurance_quote.yaml | 42 | # pipeline down before the farewell llm_response reaches the harness. | COMMENT |
| MEDIUM | …/scenarios/restaurant_reservation_no_availability.yaml | 36 | # pipeline down before the farewell llm_response reaches the harness. | COMMENT |
| MEDIUM | …ipts/release-evals/scenarios/multi_worker_handoff.yaml | 36 | # pipeline down before the farewell llm_response reaches the harness. | COMMENT |
| MEDIUM | scripts/release-evals/scenarios/capital_question.yaml | 8 | # robust to transcription than arithmetic: numbers are homophone-prone on both | COMMENT |
| MEDIUM | src/pipecat/evals/harness.py | 109 | # harness doesn't pace frames — and no continuous frame stream crosses the wire. | COMMENT |
| MEDIUM | src/pipecat/evals/harness.py | 261 | # Timestamped trace of the harness's own decisions, for diagnosing flakes. | COMMENT |
| MEDIUM | src/pipecat/evals/harness.py | 290 | # response (audio modality): the harness captures the bot's actual audio | COMMENT |
| MEDIUM | src/pipecat/evals/harness.py | 490 | # An unexpected harness-side error (a sub-pipeline failing to start | COMMENT |
| MEDIUM | src/pipecat/evals/harness.py | 516 | # attributed to it rather than leaking into the harness catch-all. | COMMENT |
| MEDIUM⚡ | src/pipecat/evals/suite.py | 63 | # How long to wait for a freshly spawned bot to start listening (the harness | COMMENT |
| MEDIUM⚡ | src/pipecat/evals/suite.py | 66 | # How long to wait for a bot subprocess to exit after the harness asks it to | COMMENT |
| MEDIUM⚡ | src/pipecat/evals/suite.py | 72 | # The harness runs three sub-pipelines in-process and tags each one's logs with an | COMMENT |
| MEDIUM⚡ | src/pipecat/evals/suite.py | 73 | # ``eval_pipeline`` context value via logger.contextualize (see harness.py), | COMMENT |
| MEDIUM⚡ | src/pipecat/evals/suite.py | 75 | # connection, harness internals) falls through to "harness". The label is the | COMMENT |
| MEDIUM | src/pipecat/evals/suite.py | 464 | # Under --debug, capture the harness's own logs (transcription / voice | COMMENT |
| MEDIUM | src/pipecat/evals/suite.py | 505 | # Save the harness's own decision trace next to the bot log. | COMMENT |
| MEDIUM | src/pipecat/evals/transport.py | 315 | # The harness sends the image encoded over the wire, but a real camera | COMMENT |
| MEDIUM | src/pipecat/evals/transcribe.py | 80 | # Optional sink for timing diagnostics; the harness points this at its | COMMENT |
| MEDIUM | src/pipecat/evals/judge.py | 77 | # harness; this just poses the question and is never stored in that context. | COMMENT |
| MEDIUM | src/pipecat/evals/judge.py | 126 | # The conversation the judge evaluates against, grown by the harness over | COMMENT |
| MEDIUM⚡ | src/pipecat/evals/serializer.py | 67 | # ``CancelWorkerFrame``, so the harness can end a scenario by gracefully tearing down the | COMMENT |
| MEDIUM⚡ | src/pipecat/evals/serializer.py | 76 | # without a real camera. The harness sends the image encoded over the wire; the | COMMENT |
| MEDIUM⚡ | src/pipecat/evals/serializer.py | 83 | # so the harness reader sees it; the harness transcribes the audio locally. | COMMENT |
| MEDIUM⚡ | src/pipecat/evals/serializer.py | 102 | # wire so the harness can observe semantic events. | COMMENT |
| MEDIUM⚡ | src/pipecat/evals/serializer.py | 108 | # The most recent image the harness registered (still-encoded bytes, MIME | COMMENT |
| MEDIUM | src/pipecat/runner/utils.py | 177 | # (transport_type, call_data) tuple; isinstance keeps this robust against | COMMENT |
| MEDIUM | src/pipecat/runner/utils.py | 715 | # harness connects as an RTVI client; the bot pipeline must include an | COMMENT |
| MEDIUM | src/pipecat/cli/generators/project.py | 350 | # The `evals` extra bundles the `pipecat eval` command and the harness's | COMMENT |
| LOW | src/pipecat/adapters/services/bedrock_adapter.py | 78 | # To avoid refactoring in AWSBedrockLLMService, we just pass through tool_choice. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_markdown_text_filter.py | 52 | # Check if spaces are in the same positions | STRING |
| LOW | tests/test_flows_context_strategies.py | 301 | # Set nodes to trigger summary generation | COMMENT |
| LOW | tests/test_flows_context_strategies.py | 337 | # Set nodes to trigger summary generation | COMMENT |
| LOW | tests/test_aic_vad.py | 20 | # Check if aic_sdk is available | COMMENT |
| LOW | tests/test_get_llm_invocation_params.py | 546 | # Check if it's image or audio based on the text content | COMMENT |
| LOW | tests/test_aic_filter.py | 26 | # Check if aic_sdk is available | COMMENT |
| LOW | tests/test_aic_quail_vad.py | 12 | # Check if aic_sdk is available | COMMENT |
| LOW | docs/api/build-docs.sh | 15 | # Check if sphinx-build is available | COMMENT |
| LOW | examples/flows/restaurant_reservation.py | 94 | # Check if time is booked | COMMENT |
| LOW | scripts/cli/imports/import_generator.py | 89 | # Check if this file contains the class | COMMENT |
| LOW | scripts/cli/imports/import_generator.py | 336 | # Check if this is a standard library module that should be imported directly | COMMENT |
| LOW | scripts/cli/configs/config_generator.py | 181 | # Check if parameter has a default value | COMMENT |
| LOW | scripts/cli/configs/config_generator.py | 258 | # Check if this service has manual_config flag in metadata | COMMENT |
| LOW | scripts/cli/configs/config_generator.py | 262 | # Check if this is a special case that needs manual handling | COMMENT |
| LOW | scripts/cli/configs/config_generator.py | 284 | # Check if this service uses the Settings pattern | COMMENT |
| LOW | scripts/cli/configs/config_generator.py | 358 | # Check if this service has a manual config | COMMENT |
| LOW | scripts/cli/configs/config_generator.py | 396 | # Check if multi-line | COMMENT |
| LOW | scripts/krisp/test_krisp_viva_filter_audiofile.py | 119 | # Check if sample rate is supported | COMMENT |
| LOW | scripts/krisp/test_krisp_viva_turn_audiofile.py | 92 | # Check if sample rate is supported | COMMENT |
| LOW | scripts/krisp/test_krisp_viva_turn_audiofile.py | 214 | # Print results | COMMENT |
| LOW | .github/workflows/generate-changelog.yml | 103 | # Check if type is valid | COMMENT |
| LOW | src/pipecat/pipeline/worker_observer.py | 84 | # Add the observer to the list. | COMMENT |
| LOW | src/pipecat/runner/run.py | 393 | # Check if it has a bot function | COMMENT |
| LOW | src/pipecat/transports/base_output.py | 494 | # Check if we have an audio mixer for our destination. | COMMENT |
| LOW | src/pipecat/transports/smallwebrtc/transport.py | 713 | # Check if there are any pending image requests and create | COMMENT |
| LOW | src/pipecat/transports/livekit/transport.py | 277 | # Check if there are already participants in the room | COMMENT |
| LOW | src/pipecat/utils/string.py | 209 | # Check if any start tag appears in the text | COMMENT |
| LOW | src/pipecat/utils/tracing/setup.py | 16 | # Check if OpenTelemetry is available | COMMENT |
| LOW | src/pipecat/utils/tracing/service_decorators.py | 831 | # Check if tools is not None and not NOT_GIVEN | COMMENT |
| LOW | src/pipecat/utils/context/llm_context_summarization.py | 532 | # Check if the first message is a system message (initial system prompt). | COMMENT |
| LOW | src/pipecat/utils/text/pattern_pair_aggregator.py | 228 | # Check if this pattern was already processed | COMMENT |
| LOW | src/pipecat/utils/text/pattern_pair_aggregator.py | 325 | # Check if we have incomplete patterns | COMMENT |
| LOW | src/pipecat/utils/text/simple_text_aggregator.py | 100 | # Check if the new character is non-whitespace | COMMENT |
| LOW | src/pipecat/utils/text/simple_text_aggregator.py | 116 | # Check if we just added sentence-ending punctuation | COMMENT |
| LOW | src/pipecat/cli/registry/service_loader.py | 169 | # Check if it's in SERVICE_CONFIGS | COMMENT |
| LOW | src/pipecat/cli/registry/service_loader.py | 173 | # Check if it's a transport | COMMENT |
| LOW | src/pipecat/cli/registry/service_loader.py | 294 | # Check if config exists | COMMENT |
| LOW | src/pipecat/cli/registry/service_loader.py | 298 | # Check if imports exist | COMMENT |
| LOW | src/pipecat/cli/generators/project.py | 63 | # Check if the new name is available | COMMENT |
| LOW | src/pipecat/cli/generators/project.py | 117 | # Check if project already exists | COMMENT |
| LOW | src/pipecat/cli/generators/project.py | 247 | # Check if any service config contains "session=" parameter | COMMENT |
| LOW | src/pipecat/cli/generators/project.py | 251 | # Check if the config contains session= or aiohttp_session= | COMMENT |
| LOW | src/pipecat/cli/generators/project.py | 295 | # Check if we need aiohttp session and add import if needed | COMMENT |
| LOW | src/pipecat/cli/generators/project.py | 531 | # Check if this is Daily PSTN or Twilio + Daily SIP (special handling) | COMMENT |
| LOW | src/pipecat/adapters/services/gemini_adapter.py | 312 | # Check if we only have function-related messages (no regular text) | COMMENT |
| LOW | …pecat/processors/aggregators/llm_response_universal.py | 1854 | # Check if this image is a result of a function call. | COMMENT |
| LOW | …pecat/processors/aggregators/llm_context_summarizer.py | 238 | # Check if we've reached the token limit | COMMENT |
| LOW | …pecat/processors/aggregators/llm_context_summarizer.py | 242 | # Check if we've exceeded max unsummarized messages | COMMENT |
| LOW | …pecat/processors/aggregators/llm_context_summarizer.py | 371 | # Check if this is the result we're waiting for. Both auto and manual | COMMENT |
| LOW | …pecat/processors/aggregators/llm_context_summarizer.py | 406 | # Check if we still have enough messages | COMMENT |
| LOW | src/pipecat/serializers/vonage.py | 128 | # Check if this is binary audio data | COMMENT |
| LOW | src/pipecat/audio/filters/rnnoise_filter.py | 134 | # Check if output is float (needs scaling) or int16 (ready) | COMMENT |
| LOW | src/pipecat/audio/turn/krisp_viva_turn.py | 319 | # Check if turn is complete based on probability threshold | COMMENT |
| LOW | src/pipecat/audio/turn/smart_turn/http_smart_turn.py | 75 | # Check if successful | COMMENT |
| LOW | src/pipecat/transcriptions/language.py | 614 | # Check if language is in the verified map | COMMENT |
| LOW | src/pipecat/observers/loggers/metrics_log_observer.py | 113 | # Check if this metrics type should be logged | COMMENT |
| LOW | src/pipecat/observers/loggers/debug_log_observer.py | 151 | # Check if this frame type is in our filters | COMMENT |
| LOW | src/pipecat/observers/loggers/debug_log_observer.py | 182 | # Check if we should log this frame | COMMENT |
| LOW⚡ | src/pipecat/flows/manager.py | 533 | # Check if all function calls are complete using Pipecat's state | COMMENT |
| LOW | src/pipecat/services/websocket_service.py | 166 | # Check if the connection died too quickly after being established. This | COMMENT |
| 21 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 203 | # CLI project-scaffolding templates (jinja + client TS/JS/JSON/CSS trees). The | COMMENT |
| MEDIUM | README.md | 50 | The [Pipecat CLI](https://docs.pipecat.ai/api-reference/cli/overview) ships with `pipecat-ai` — install it with `uv tool | CODE |
| MEDIUM | README.md | 62 | Use [Pipecat Skills](https://github.com/pipecat-ai/skills) with [Claude Code](https://claude.ai/code) to scaffold projec | CODE |
| MEDIUM | tests/test_llm_service.py | 122 | # The tool was not advertised, so this is treated as a hallucination | COMMENT |
| MEDIUM⚡ | tests/cli/test_quickstart.py | 49 | # quickstart is a fixed preset; combining it with scaffold flags should warn rather | COMMENT |
| MEDIUM⚡ | tests/cli/test_quickstart.py | 50 | # than silently ignore them — but still scaffold the canned (web) bot. | COMMENT |
| MEDIUM | tests/cli/test_init_interactive.py | 53 | # The build-method prompt returns "scaffold", so init runs the wizard in-place, | COMMENT |
| MEDIUM | tests/cli/test_init_interactive.py | 70 | # init initializes for agent-led dev before scaffolding. | COMMENT |
| MEDIUM | tests/cli/test_project_generation.py | 674 | # Mirror the scaffold_quickstart config from cli/scaffold.py. | COMMENT |
| MEDIUM⚡ | tests/cli/test_init_agent_ready.py | 216 | # Its one still-useful piece (Context Hub setup) lives in the scaffold's README. | COMMENT |
| MEDIUM⚡ | tests/cli/test_init_agent_ready.py | 260 | # The scaffold lands in init's target dir, in-place, named after it. | COMMENT |
| MEDIUM⚡ | tests/cli/test_init_agent_ready.py | 263 | # skipped — its place is taken by the scaffold's README (see test_quickstart_*). | COMMENT |
| MEDIUM | tests/cli/test_init_agent_ready.py | 157 | # The scaffold path skips the from-scratch developer guide. | COMMENT |
| MEDIUM | tests/cli/test_init_agent_ready.py | 284 | # Re-running init to refresh the guide in a scaffolded project must not offer to scaffold. | COMMENT |
| MEDIUM⚡ | tests/cli/test_init_in_place.py | 51 | # The scaffold path skips GETTING_STARTED.md — the README is the start-here. | COMMENT |
| MEDIUM | examples/features/features-add-tool-change-messages.py | 120 | # hallucination-prone of the easily accessible models — exactly | COMMENT |
| MEDIUM | src/pipecat/evals/transcribe.py | 49 | # and offset words. Kept short so it can't trigger silence hallucinations. | COMMENT |
| MEDIUM | src/pipecat/cli/main.py | 74 | # coding-agent guide and can scaffold a runnable bot (interactively or from flags/a | COMMENT |
| MEDIUM | src/pipecat/cli/commands/init.py | 65 | # `--help` panels grouping the scaffold flags, so `pipecat init --help` reads as | COMMENT |
| MEDIUM | src/pipecat/cli/commands/init.py | 289 | # Scaffold now: run the wizard in-place. The scaffold lands in the same directory that | COMMENT |
| MEDIUM | src/pipecat/cli/commands/init.py | 338 | # Scaffold options that, when present, switch `init` to non-interactive scaffolding. | COMMENT |
| MEDIUM | src/pipecat/cli/commands/init.py | 349 | # Every scaffold/feature option, by parameter name — used to detect flags the user | COMMENT |
| MEDIUM⚡ | src/pipecat/cli/commands/init.py | 535 | pipecat init my-bot --config project-config.json # scaffold from a config file | CODE |
| MEDIUM⚡ | src/pipecat/cli/commands/init.py | 539 | # `pipecat init quickstart`: scaffold the canned bot in-place, with the coding-agent guide. | STRING |
| MEDIUM⚡ | src/pipecat/cli/commands/init.py | 541 | # quickstart is a fixed preset — scaffold flags don't apply. Say so instead of | STRING |
| MEDIUM | src/pipecat/cli/commands/init.py | 593 | # No scaffold options: write the guide and route to a build method. | STRING |
| MEDIUM | src/pipecat/cli/agent_templates/AGENTS.md | 19 | ## 1. Start by scaffolding | COMMENT |
| MEDIUM | src/pipecat/cli/agent_templates/AGENTS.md | 31 | # Headless: any scaffold flag (--bot-type, a service, or --config) switches off the wizard. | COMMENT |
| MEDIUM | src/pipecat/cli/agent_templates/AGENTS.md | 257 | [Pipecat Cloud](https://www.daily.co/products/pipecat-cloud/) is a **hosted** option — deploying there is optional (run | CODE |
| MEDIUM | src/pipecat/services/google/gemini_live/llm.py | 1135 | # Add context window compression to configuration, if enabled. | COMMENT |
| MEDIUM | src/pipecat/services/google/gemini_live/llm.py | 284 | trigger_tokens: int | None = Field(default=None) # None = use default (80% of context window) | CODE |
| MEDIUM | src/pipecat/services/whisper/stt.py | 532 | # Drop likely hallucinations | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_word_completion_tracker.py | 1741 | """After the first Chinese group the cursor sits at the right position.""" | COMMENT |
| LOW | tests/test_websocket_transport.py | 1 | # | COMMENT |
| LOW | tests/test_websocket_transport.py | 21 | # self.serialized_sample_frame = self.transport._serializer.serialize( | COMMENT |
| LOW | tests/test_websocket_transport.py | 41 | # mock_websocket.send.call_args[0][0], self.serialized_sample_frame) | COMMENT |
| LOW | tests/test_websocket_transport.py | 61 | # TTSStartFrame(), | COMMENT |
| LOW | tests/test_websocket_transport.py | 81 | # async def test_serializer_parameter(self): | COMMENT |
| LOW | tests/test_websocket_transport.py | 101 | # self.transport = WebsocketTransport( | COMMENT |
| LOW | examples/features/features-user-email-gathering.py | 81 | ) | COMMENT |
| LOW | examples/mcp/mcp-streamable-http-gemini-live.py | 81 | system_instruction=system, | COMMENT |
| LOW | …/multi-worker/ui-worker/document-review/client/main.js | 41 | // In-flight review groups, keyed by job_id. Rendered as cards above | COMMENT |
| LOW | examples/rag/rag-mem0.py | 181 | # "model": "claude-3-5-sonnet-20240620", | COMMENT |
| LOW | examples/realtime/realtime-openai.py | 201 | # await worker.queue_frames( | COMMENT |
| LOW | examples/realtime/realtime-openai.py | 221 | # LLMUpdateSettingsFrame( | COMMENT |
| LOW | examples/realtime/realtime-gemini-live.py | 141 | # frames, but you can add supplemental local turn frames for consumption | COMMENT |
| LOW | examples/realtime/realtime-grok.py | 181 | ) | COMMENT |
| LOW | examples/realtime/realtime-grok.py | 201 | # start=[ | COMMENT |
| LOW | examples/realtime/realtime-ultravox.py | 181 | # | COMMENT |
| LOW | …es/realtime/realtime-gemini-live-grounding-metadata.py | 121 | grounding_processor = GroundingMetadataProcessor() | COMMENT |
| LOW | examples/realtime/realtime-azure.py | 121 | transcription=InputAudioTranscription(model="whisper-1"), | COMMENT |
| LOW | examples/realtime/realtime-aws-nova-sonic.py | 101 | # - us-west-2 | COMMENT |
| LOW | examples/realtime/realtime-aws-nova-sonic.py | 121 | ), | COMMENT |
| LOW | examples/realtime/realtime-aws-nova-sonic.py | 181 | ) | COMMENT |
| LOW | examples/realtime/realtime-gemini-live-files-api.py | 161 | "role": "developer", | COMMENT |
| LOW | examples/update-settings/llm/llm-gemini-live.py | 61 | context = LLMContext() | COMMENT |
| LOW | examples/update-settings/llm/llm-gemini-live-vertex.py | 61 | ) | COMMENT |
| LOW | examples/getting-started/04-sync-speech-and-image.py | 141 | # them basically in order (e.g. I1 A1 A1 A1 I2 A2 A2 A2 A2 I3 A3). To do | COMMENT |
| LOW | …management-filter-incomplete-turns-function-calling.py | 121 | # fires only when the LLM confirms ✓. The LLM marks each response | COMMENT |
| LOW | …-management/turn-management-smart-turn-local-coreml.py | 41 | # Example setup: | COMMENT |
| LOW | examples/flows/warm_transfer.py | 81 | COMMENT | |
| LOW | examples/flows/warm_transfer.py | 101 | # - continued_customer_interaction | COMMENT |
| LOW | scripts/deprecations/scan.py | 41 | # The first reference in a directive body (role or backtick) — the replacement, | COMMENT |
| LOW | scripts/release-evals/run.sh | 1 | #!/usr/bin/env sh | COMMENT |
| LOW | .github/PULL_REQUEST_TEMPLATE.md | 1 | #### Please describe the changes in your PR. If it is addressing an issue, please reference that as well. | COMMENT |
| LOW | src/pipecat/pipeline/parallel_pipeline.py | 141 | """ | COMMENT |
| LOW | src/pipecat/evals/serializer.py | 61 | # ``RTVIConfigureObserverFrame``. This is the trust boundary for raising the | COMMENT |
| LOW | src/pipecat/transports/smallwebrtc/connection.py | 41 | # Clamp aiortc's SCTP DATA-chunk payload size so the on-wire UDP packet fits | COMMENT |
| LOW | src/pipecat/utils/tracing/__init__.py | 1 | # | COMMENT |
| LOW | src/pipecat/utils/context/text_segment_map.py | 181 | # | COMMENT |
| LOW | src/pipecat/utils/context/text_segment_map.py | 201 | # TextSegment( | COMMENT |
| LOW | src/pipecat/utils/text/transforms/_alnum_utils.py | 41 | # Unicode category "Mn" means: | COMMENT |
| LOW | …pipecat/adapters/services/open_ai_responses_adapter.py | 81 | "input": input_items, | COMMENT |
| LOW | src/pipecat/adapters/services/anthropic_adapter.py | 401 | # - The marker at the most recent user message tells Anthropic to | COMMENT |
| LOW | src/pipecat/processors/frame_processor.py | 241 | COMMENT | |
| LOW | …pecat/processors/aggregators/llm_response_universal.py | 681 | # frames report end-of-speech. | COMMENT |
| LOW | …pecat/processors/aggregators/llm_response_universal.py | 701 | # context-writing purposes, then waits up to this many seconds | COMMENT |
| LOW | …pecat/processors/aggregators/llm_response_universal.py | 1961 | # own assistant message. Used when the marker is the entire | COMMENT |
| LOW | src/pipecat/processors/audio/audio_buffer_processor.py | 241 | ) | COMMENT |
| LOW | src/pipecat/processors/frameworks/rtvi/models.py | 661 | label: MessageLiteral = MESSAGE_LABEL | COMMENT |
| LOW | src/pipecat/processors/frameworks/rtvi/models.py | 681 | # wire format directly via custom tools that emit typed RTVI messages | COMMENT |
| LOW | src/pipecat/workers/ui/ui_worker.py | 181 | self._auto_inject_ui_state = auto_inject_ui_state | COMMENT |
| LOW | src/pipecat/workers/ui/ui_worker.py | 201 | # update / response messages should be forwarded to the | COMMENT |
| LOW | src/pipecat/turns/user_idle_controller.py | 81 | """ | COMMENT |
| LOW | src/pipecat/turns/user_turn_completion_mixin.py | 241 | Args: | COMMENT |
| LOW | src/pipecat/turns/user_turn_completion_mixin.py | 401 | elif isinstance(frame, VADUserStartedSpeakingFrame): | COMMENT |
| LOW | src/pipecat/turns/user_turn_completion_mixin.py | 521 | COMMENT | |
| LOW | src/pipecat/flows/actions.py | 261 | upcoming_action_type: Type of the next action to execute, or None if | COMMENT |
| LOW | src/pipecat/flows/actions.py | 281 | # pipeline. | COMMENT |
| LOW | src/pipecat/services/tts_service.py | 321 | self._word_last_pts: int = 0 | COMMENT |
| LOW | src/pipecat/services/tts_service.py | 341 | # | COMMENT |
| LOW | src/pipecat/services/tts_service.py | 1061 | # is spoken, so we set append_to_context to False. | COMMENT |
| 21 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/pipecat/pipeline/worker.py | 227 | CODE | |
| LOW | src/pipecat/evals/harness.py | 193 | CODE | |
| LOW | src/pipecat/evals/harness.py | 301 | CODE | |
| LOW | src/pipecat/evals/suite.py | 190 | CODE | |
| LOW | src/pipecat/runner/daily.py | 77 | CODE | |
| LOW | src/pipecat/transports/lemonslice/api.py | 38 | CODE | |
| LOW | src/pipecat/tests/utils.py | 123 | CODE | |
| LOW | src/pipecat/bus/network/pgmq.py | 80 | CODE | |
| LOW | src/pipecat/utils/string.py | 303 | CODE | |
| LOW | src/pipecat/utils/tracing/service_attributes.py | 121 | CODE | |
| LOW | src/pipecat/utils/tracing/service_attributes.py | 185 | CODE | |
| LOW | src/pipecat/utils/tracing/service_attributes.py | 278 | CODE | |
| LOW | src/pipecat/utils/tracing/service_attributes.py | 383 | CODE | |
| LOW | src/pipecat/utils/text/transforms/voice_formatter.py | 32 | CODE | |
| LOW | src/pipecat/cli/config_validator.py | 38 | CODE | |
| LOW | src/pipecat/cli/commands/eval.py | 269 | CODE | |
| LOW | src/pipecat/cli/commands/eval.py | 592 | CODE | |
| LOW | src/pipecat/cli/commands/init.py | 371 | CODE | |
| LOW | src/pipecat/audio/resamplers/resampy_resampler.py | 59 | CODE | |
| LOW | src/pipecat/audio/resamplers/soxr_stream_resampler.py | 117 | CODE | |
| LOW | src/pipecat/audio/resamplers/soxr_resampler.py | 59 | CODE | |
| LOW | src/pipecat/audio/vad/aic_quail_vad.py | 85 | CODE | |
| LOW | src/pipecat/workers/runner.py | 110 | CODE | |
| LOW | src/pipecat/services/tts_service.py | 144 | CODE | |
| LOW | src/pipecat/services/cartesia/tts.py | 225 | CODE | |
| LOW | src/pipecat/services/cartesia/tts.py | 758 | CODE | |
| LOW | src/pipecat/services/inworld/tts.py | 155 | CODE | |
| LOW | src/pipecat/services/inworld/tts.py | 601 | CODE | |
| LOW | src/pipecat/services/inworld/realtime/llm.py | 257 | CODE | |
| LOW | src/pipecat/services/asyncai/tts.py | 104 | CODE | |
| LOW | src/pipecat/services/asyncai/tts.py | 496 | CODE | |
| LOW | src/pipecat/services/speechmatics/stt.py | 384 | CODE | |
| LOW | src/pipecat/services/azure/tts.py | 264 | CODE | |
| LOW | src/pipecat/services/rime/tts.py | 170 | CODE | |
| LOW | src/pipecat/services/rime/tts.py | 950 | CODE | |
| LOW | src/pipecat/services/gladia/stt.py | 217 | CODE | |
| LOW | src/pipecat/services/google/tts.py | 1062 | CODE | |
| LOW | src/pipecat/services/google/tts.py | 1288 | CODE | |
| LOW | src/pipecat/services/google/stt.py | 765 | CODE | |
| LOW | src/pipecat/services/google/vertex/llm.py | 63 | CODE | |
| LOW | src/pipecat/services/google/gemini_live/llm.py | 423 | CODE | |
| LOW | src/pipecat/services/google/gemini_live/vertex/llm.py | 60 | CODE | |
| LOW | src/pipecat/services/soniox/stt.py | 278 | CODE | |
| LOW | src/pipecat/services/fal/stt.py | 188 | CODE | |
| LOW | src/pipecat/services/deepgram/stt.py | 72 | CODE | |
| LOW | src/pipecat/services/deepgram/stt.py | 301 | CODE | |
| LOW | src/pipecat/services/deepgram/flux/stt.py | 106 | CODE | |
| LOW | src/pipecat/services/deepgram/sagemaker/stt.py | 85 | CODE | |
| LOW | src/pipecat/services/groq/stt.py | 40 | CODE | |
| LOW | src/pipecat/services/elevenlabs/tts.py | 440 | CODE | |
| LOW | src/pipecat/services/elevenlabs/tts.py | 1080 | CODE | |
| LOW | src/pipecat/services/elevenlabs/stt.py | 504 | CODE | |
| LOW | src/pipecat/services/neuphonic/tts.py | 109 | CODE | |
| LOW | src/pipecat/services/nvidia/tts.py | 144 | CODE | |
| LOW | src/pipecat/services/nvidia/stt.py | 253 | CODE | |
| LOW | src/pipecat/services/nvidia/stt.py | 694 | CODE | |
| LOW | src/pipecat/services/heygen/api_liveavatar.py | 331 | CODE | |
| LOW | src/pipecat/services/sarvam/tts.py | 812 | CODE | |
| LOW | src/pipecat/services/sarvam/stt.py | 246 | CODE | |
| LOW | src/pipecat/services/assemblyai/stt.py | 229 | CODE | |
| 12 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_ui_worker.py | 69 | async def _settle() -> None: | CODE |
| LOW | tests/test_vonage_video_connector.py | 353 | def _setup_audio_ready_callback(self, client: VonageClient, call_ready_for_audio: bool) -> None: | CODE |
| LOW | tests/test_vonage_video_connector.py | 375 | def _setup_subscriber_callbacks(self, client: VonageClient) -> None: | CODE |
| LOW | tests/test_vonage_video_connector.py | 437 | async def set_event_when_drained() -> None: | CODE |
| LOW | tests/aic_mocks.py | 48 | def set_parameter(self, param: Any, value: float) -> None: | CODE |
| LOW | tests/aic_mocks.py | 65 | def set_parameter(self, param: Any, value: float) -> None: | CODE |
| LOW | examples/multi-worker/sensor-controller/sensor.py | 98 | def set_target(self, value: float) -> None: | CODE |
| LOW | examples/multi-worker/sensor-controller/sensor.py | 102 | def set_response_rate(self, rate: float) -> None: | CODE |
| LOW | src/pipecat/pipeline/task.py | 23 | __all__ = [ | CODE |
| LOW | src/pipecat/pipeline/runner.py | 20 | __all__ = ["PipelineRunner", "WorkerRunner"] | CODE |
| LOW⚡ | src/pipecat/evals/serializer.py | 112 | def set_capture_audio(self, capture: bool) -> None: | CODE |
| LOW | src/pipecat/transports/smallwebrtc/connection.py | 148 | def set_enabled(self, enabled: bool) -> None: | CODE |
| LOW | src/pipecat/bus/__init__.py | 57 | __all__ = [ | CODE |
| LOW | src/pipecat/bus/ui/__init__.py | 19 | __all__ = [ | CODE |
| LOW | src/pipecat/bus/network/pgmq_backends.py | 342 | __all__ = [ | CODE |
| LOW | src/pipecat/bus/network/__init__.py | 20 | __all__ = ["PgmqBus", "RedisBus"] | CODE |
| LOW | src/pipecat/bus/local/__init__.py | 11 | __all__ = ["AsyncQueueBus"] | CODE |
| LOW | src/pipecat/bus/adapters/__init__.py | 17 | __all__ = [ | CODE |
| LOW | src/pipecat/bus/serializers/__init__.py | 16 | __all__ = [ | CODE |
| LOW | src/pipecat/utils/deprecation.py | 68 | __all__ = ["DEPRECATION_MESSAGE_RE", "deprecated"] | CODE |
| LOW | src/pipecat/utils/text/transforms/__init__.py | 38 | __all__ = [ | CODE |
| LOW | src/pipecat/cli/registry/__init__.py | 19 | __all__ = [ | CODE |
| LOW | src/pipecat/cli/prompts/__init__.py | 11 | __all__ = ["ProjectConfig", "ask_project_questions"] | CODE |
| LOW | src/pipecat/cli/commands/__init__.py | 11 | __all__ = ["init"] | CODE |
| LOW | src/pipecat/cli/generators/__init__.py | 11 | __all__ = ["ProjectGenerator"] | CODE |
| LOW | src/pipecat/extensions/ivr/ivr_navigator.py | 101 | def update_saved_messages(self, messages: list[LLMContextMessage]) -> None: | CODE |
| LOW | src/pipecat/processors/frameworks/rtvi/__init__.py | 27 | __all__ = [ | CODE |
| LOW | src/pipecat/serializers/genesys.py | 243 | def set_output_variables(self, variables: dict[str, Any]) -> None: | CODE |
| LOW | src/pipecat/audio/vad/aic_quail_vad.py | 260 | def set_sample_rate(self, sample_rate: int) -> None: | CODE |
| LOW | src/pipecat/registry/__init__.py | 11 | __all__ = [ | CODE |
| LOW | src/pipecat/workers/runner.py | 363 | async def _setup_session(self) -> None: | CODE |
| LOW | src/pipecat/workers/runner.py | 493 | def _setup_sigint(self) -> None: | CODE |
| LOW | src/pipecat/workers/runner.py | 502 | def _setup_sigterm(self) -> None: | CODE |
| LOW | src/pipecat/workers/ui/__init__.py | 33 | __all__ = [ | CODE |
| LOW | src/pipecat/workers/llm/__init__.py | 13 | __all__ = [ | CODE |
| LOW | src/pipecat/workers/proxy/__init__.py | 14 | __all__ = [ | CODE |
| LOW | src/pipecat/workers/proxy/websocket/__init__.py | 12 | __all__ = [ | CODE |
| LOW | src/pipecat/turns/user_start/__init__.py | 19 | __all__ = [ | CODE |
| LOW | src/pipecat/turns/user_stop/__init__.py | 15 | __all__ = [ | CODE |
| LOW | src/pipecat/turns/user_mute/__init__.py | 15 | __all__ = [ | CODE |
| LOW | src/pipecat/flows/__init__.py | 47 | __all__ = [ | CODE |
| LOW | src/pipecat/flows/manager.py | 591 | async def set_node_from_config(self, node_config: NodeConfig) -> None: | CODE |
| LOW | src/pipecat/flows/manager.py | 605 | async def _set_node(self, node_id: str, node_config: NodeConfig) -> None: | CODE |
| LOW | src/pipecat/services/deepgram/flux/stt.py | 32 | __all__ = [ | CODE |
| LOW | src/pipecat/services/hume/tts.py | 260 | async def update_setting(self, key: str, value: Any) -> None: | CODE |
| LOW | src/pipecat/services/openai/responses/llm.py | 1329 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/test_run_inference.py | 73 | service._client.chat.completions.create.assert_called_once_with( | CODE |
| CRITICAL | tests/test_run_inference.py | 181 | service._client.beta.messages.create.assert_called_once_with( | CODE |
| CRITICAL | tests/test_run_inference.py | 253 | service._client.aio.models.generate_content.assert_called_once() | CODE |
| CRITICAL | src/pipecat/services/openai/tts.py | 273 | async with self._client.audio.speech.with_streaming_response.create( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | COMMUNITY_INTEGRATIONS.md | 17 | ### Step 1: Build Your Integration | COMMENT |
| LOW | COMMUNITY_INTEGRATIONS.md | 21 | ### Step 2: Set Up Your Repository | COMMENT |
| LOW | COMMUNITY_INTEGRATIONS.md | 39 | ### Step 3: Join Discord | COMMENT |
| LOW | COMMUNITY_INTEGRATIONS.md | 43 | ### Step 4: Submit Your Documentation | COMMENT |
| LOW | .claude/skills/update-docs/SKILL.md | 23 | ### Step 1: Resolve docs path | COMMENT |
| LOW | .claude/skills/update-docs/SKILL.md | 29 | ### Step 2: Create docs branch | COMMENT |
| LOW | .claude/skills/update-docs/SKILL.md | 47 | ### Step 3: Detect changed source files | COMMENT |
| LOW | .claude/skills/update-docs/SKILL.md | 69 | ### Step 4: Map source files to doc pages | COMMENT |
| LOW | .claude/skills/update-docs/SKILL.md | 73 | ### Step 5: Analyze each source-doc pair | COMMENT |
| LOW | .claude/skills/update-docs/SKILL.md | 89 | ### Step 6: Make targeted edits | COMMENT |
| LOW | .claude/skills/update-docs/SKILL.md | 140 | ### Step 7: Update guides | COMMENT |
| LOW | .claude/skills/update-docs/SKILL.md | 165 | ### Step 8: Identify doc gaps | COMMENT |
| LOW | .claude/skills/update-docs/SKILL.md | 282 | ### Step 9: Output summary | COMMENT |
| LOW | src/pipecat/adapters/services/perplexity_adapter.py | 129 | # Step 1: Convert non-initial system messages to "user". | COMMENT |
| LOW | src/pipecat/adapters/services/perplexity_adapter.py | 140 | # Step 2: Merge consecutive same-role messages. | COMMENT |
| LOW | src/pipecat/adapters/services/perplexity_adapter.py | 166 | # Step 3: Remove trailing assistant messages. | COMMENT |
| LOW⚡ | src/pipecat/adapters/services/mistral_adapter.py | 109 | # Step 1: ensure every "tool" message is followed by an "assistant". | COMMENT |
| LOW⚡ | src/pipecat/adapters/services/mistral_adapter.py | 119 | # Step 2: convert non-initial system messages to "user". | COMMENT |
| LOW⚡ | src/pipecat/adapters/services/mistral_adapter.py | 129 | # Step 3: set prefix on a trailing assistant message so Mistral will | COMMENT |
| LOW⚡ | src/pipecat/services/google/gemini_live/file_api.py | 73 | # Step 1: Initial resumable request to get upload URL | COMMENT |
| LOW | src/pipecat/services/google/gemini_live/file_api.py | 99 | # Step 2: Upload the actual file data | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/pipecat/services/together/tts.py | 65 | api_key="your-api-key", | STRING |
| HIGH | src/pipecat/services/together/stt.py | 60 | api_key="your-api-key", | STRING |
| HIGH | src/pipecat/services/deepgram/flux/stt.py | 155 | stt = DeepgramFluxSTTService(api_key="your-api-key") | STRING |
| HIGH | src/pipecat/services/deepgram/flux/stt.py | 160 | api_key="your-api-key", | STRING |
| HIGH | src/pipecat/services/deepgram/flux/stt.py | 173 | api_key="your-api-key", | STRING |
| HIGH | src/pipecat/services/camb/tts.py | 170 | api_key="your-api-key", | STRING |
| HIGH | src/pipecat/services/camb/tts.py | 178 | api_key="your-api-key", | STRING |
| HIGH | src/pipecat/services/smallest/tts.py | 109 | api_key="your-api-key", | STRING |
| HIGH | src/pipecat/services/smallest/stt.py | 137 | api_key="your-api-key", | STRING |
| HIGH | src/pipecat/services/sarvam/tts.py | 322 | api_key="your-api-key", | STRING |
| HIGH | src/pipecat/services/sarvam/tts.py | 336 | api_key="your-api-key", | STRING |
| HIGH | src/pipecat/services/sarvam/tts.py | 691 | api_key="your-api-key", | STRING |
| HIGH | src/pipecat/services/sarvam/tts.py | 704 | api_key="your-api-key", | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_flows_direct_functions.py | 27 | async def my_function(flow_manager: FlowManager): | CODE |
| LOW⚡ | tests/test_flows_direct_functions.py | 249 | async def my_function(flow_manager: DummyFlowManager, name: str, age: int): | CODE |
| LOW⚡ | tests/test_flows_direct_functions.py | 270 | async def my_function(flow_manager: FlowManager): | CODE |
| LOW⚡ | tests/test_flows_direct_functions.py | 280 | async def my_function(flow_manager: FlowManager): | CODE |
| LOW⚡ | tests/test_flows_direct_functions.py | 290 | async def my_function(flow_manager: FlowManager): | CODE |
| LOW⚡ | tests/test_flows_direct_functions.py | 320 | async def my_function(flow_manager: FlowManager): | CODE |
| LOW⚡ | tests/test_flows_direct_functions.py | 330 | async def my_function(flow_manager: FlowManager): | CODE |
| LOW⚡ | tests/test_flows_direct_functions.py | 366 | async def my_function(flow_manager: FlowManager): | CODE |
| LOW⚡ | tests/test_flows_direct_functions.py | 381 | async def my_function(flow_manager: FlowManager): | CODE |
| LOW | tests/test_flows_direct_functions.py | 190 | async def my_function(flow_manager: FlowManager, name: str, age: int, height: float | None): | CODE |
| LOW⚡ | tests/test_direct_functions.py | 17 | async def my_function(params: FunctionCallParams): | CODE |
| LOW | tests/test_direct_functions.py | 156 | async def my_function( | CODE |
| LOW⚡ | tests/test_direct_functions.py | 212 | async def my_function(params: DummyParams, name: str, age: int): | CODE |
| LOW | …js/src/app/api/sessions/[sessionId]/[...path]/route.ts | 3 | async function handleRequest( | CODE |
| LOW | src/pipecat/workers/llm/llm_worker.py | 62 | async def my_function(self, params, arg: str): | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/pipecat/adapters/services/perplexity_adapter.py | 129 | # Step 1: Convert non-initial system messages to "user". | COMMENT |
| LOW | src/pipecat/adapters/services/perplexity_adapter.py | 140 | # Step 2: Merge consecutive same-role messages. | COMMENT |
| LOW | src/pipecat/adapters/services/perplexity_adapter.py | 166 | # Step 3: Remove trailing assistant messages. | COMMENT |
| LOW⚡ | src/pipecat/adapters/services/mistral_adapter.py | 109 | # Step 1: ensure every "tool" message is followed by an "assistant". | COMMENT |
| LOW⚡ | src/pipecat/adapters/services/mistral_adapter.py | 119 | # Step 2: convert non-initial system messages to "user". | COMMENT |
| LOW⚡ | src/pipecat/adapters/services/mistral_adapter.py | 129 | # Step 3: set prefix on a trailing assistant message so Mistral will | COMMENT |
| LOW⚡ | src/pipecat/services/google/gemini_live/file_api.py | 73 | # Step 1: Initial resumable request to get upload URL | COMMENT |
| LOW | src/pipecat/services/google/gemini_live/file_api.py | 99 | # Step 2: Upload the actual file data | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_voice_formatting.py | 257 | result = await email_to_speech("user@example.com", "*") | CODE |
| LOW⚡ | tests/test_voice_formatting.py | 262 | result = await email_to_speech("user@example.com", "*") | CODE |
| LOW | tests/test_get_llm_invocation_params.py | 817 | "source": {"type": "base64", "media_type": "image/jpeg", "data": "fake_data"}, | CODE |
| LOW | tests/genesys/conftest.py | 129 | "name": "John Doe", | CODE |
| LOW⚡ | tests/genesys/test_genesys_serializer.py | 304 | assert serializer.participant["name"] == "John Doe" | CODE |
| LOW | examples/features/features-text-transforms.py | 24 | - email_to_speech "user@example.com" → "user at example dot com" | STRING |
| LOW | …ipecat/cli/templates/client/vanilla-js-vite/src/app.js | 53 | 'placeholder', | CODE |
| LOW | …ipecat/cli/templates/client/vanilla-js-vite/src/app.js | 192 | if (role === 'placeholder') { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | examples/realtime/realtime-openai-live-video.py | 96 | # In this example we provide tools through the context, but you could | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | src/pipecat/services/openai/realtime/llm.py | 1128 | - return true | STRING |
| HIGH⚡ | src/pipecat/services/openai/realtime/llm.py | 1130 | - return false | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_segmented_stt.py | 47 | CODE | |
| MEDIUM | src/pipecat/services/vision_service.py | 63 | CODE | |
| MEDIUM | src/pipecat/services/image_service.py | 61 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | examples/realtime/realtime-gemini-live.py | 141 | # frames, but you can add supplemental local turn frames for consumption | STRING |
| MEDIUM | examples/realtime/realtime-ultravox.py | 184 | # frames, but you can add supplemental local turn frames for consumption | STRING |
| MEDIUM | examples/realtime/realtime-aws-nova-sonic.py | 130 | # frames, but you can add supplemental local turn frames for consumption | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/pipecat/services/google/gemini_live/llm.py | 865 | # TODO: implement runtime tool updates for Gemini Live. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/pipecat/services/piper/tts.py | 188 | # Usage: | COMMENT |