TurnStartStrategies: set user and bot strategies defaults if None
This commit is contained in:
@@ -47,14 +47,7 @@ from pipecat.pipeline.base_task import BasePipelineTask, PipelineTaskParams
|
|||||||
from pipecat.pipeline.pipeline import Pipeline, PipelineSink, PipelineSource
|
from pipecat.pipeline.pipeline import Pipeline, PipelineSink, PipelineSource
|
||||||
from pipecat.pipeline.task_observer import TaskObserver
|
from pipecat.pipeline.task_observer import TaskObserver
|
||||||
from pipecat.processors.frame_processor import FrameDirection, FrameProcessor, FrameProcessorSetup
|
from pipecat.processors.frame_processor import FrameDirection, FrameProcessor, FrameProcessorSetup
|
||||||
from pipecat.turns.bot.transcription_bot_turn_start_strategy import (
|
|
||||||
TranscriptionBotTurnStartStrategy,
|
|
||||||
)
|
|
||||||
from pipecat.turns.turn_start_strategies import TurnStartStrategies
|
from pipecat.turns.turn_start_strategies import TurnStartStrategies
|
||||||
from pipecat.turns.user.transcription_user_turn_start_strategy import (
|
|
||||||
TranscriptionUserTurnStartStrategy,
|
|
||||||
)
|
|
||||||
from pipecat.turns.user.vad_user_turn_start_strategy import VADUserTurnStartStrategy
|
|
||||||
from pipecat.utils.asyncio.task_manager import BaseTaskManager, TaskManager, TaskManagerParams
|
from pipecat.utils.asyncio.task_manager import BaseTaskManager, TaskManager, TaskManagerParams
|
||||||
from pipecat.utils.tracing.setup import is_tracing_available
|
from pipecat.utils.tracing.setup import is_tracing_available
|
||||||
from pipecat.utils.tracing.turn_trace_observer import TurnTraceObserver
|
from pipecat.utils.tracing.turn_trace_observer import TurnTraceObserver
|
||||||
@@ -295,10 +288,7 @@ class PipelineTask(BasePipelineTask):
|
|||||||
|
|
||||||
# Initialize default user and bot turn start strategies.
|
# Initialize default user and bot turn start strategies.
|
||||||
if not self._params.turn_start_strategies:
|
if not self._params.turn_start_strategies:
|
||||||
self._params.turn_start_strategies = TurnStartStrategies(
|
self._params.turn_start_strategies = TurnStartStrategies()
|
||||||
user=[VADUserTurnStartStrategy(), TranscriptionUserTurnStartStrategy()],
|
|
||||||
bot=[TranscriptionBotTurnStartStrategy()],
|
|
||||||
)
|
|
||||||
|
|
||||||
self._finished = False
|
self._finished = False
|
||||||
self._cancelled = False
|
self._cancelled = False
|
||||||
|
|||||||
@@ -7,10 +7,17 @@
|
|||||||
"""Turn start strategy configuration."""
|
"""Turn start strategy configuration."""
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import List
|
from typing import List, Optional
|
||||||
|
|
||||||
from pipecat.turns.bot.base_bot_turn_start_strategy import BaseBotTurnStartStrategy
|
from pipecat.turns.bot.base_bot_turn_start_strategy import BaseBotTurnStartStrategy
|
||||||
|
from pipecat.turns.bot.transcription_bot_turn_start_strategy import (
|
||||||
|
TranscriptionBotTurnStartStrategy,
|
||||||
|
)
|
||||||
from pipecat.turns.user.base_user_turn_start_strategy import BaseUserTurnStartStrategy
|
from pipecat.turns.user.base_user_turn_start_strategy import BaseUserTurnStartStrategy
|
||||||
|
from pipecat.turns.user.transcription_user_turn_start_strategy import (
|
||||||
|
TranscriptionUserTurnStartStrategy,
|
||||||
|
)
|
||||||
|
from pipecat.turns.user.vad_user_turn_start_strategy import VADUserTurnStartStrategy
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -20,12 +27,25 @@ class TurnStartStrategies:
|
|||||||
This class groups the configured turn start strategies for both the user
|
This class groups the configured turn start strategies for both the user
|
||||||
and the bot.
|
and the bot.
|
||||||
|
|
||||||
|
If no strategies are specified for the user or the bot, the following
|
||||||
|
defaults are used:
|
||||||
|
|
||||||
|
user: [VADUserTurnStartStrategy, TranscriptionUserTurnStartStrategy]
|
||||||
|
bot: [TranscriptionBotTurnStartStrategy]
|
||||||
|
|
||||||
Attributes:
|
Attributes:
|
||||||
user: A list of user turn start strategies used to detect when the
|
user: A list of user turn start strategies used to detect when the
|
||||||
user starts speaking.
|
user starts speaking.
|
||||||
bot: A list of bot turn start strategies used to decide when the bot
|
bot: A list of bot turn start strategies used to decide when the bot
|
||||||
should start speaking.
|
should start speaking.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
user: List[BaseUserTurnStartStrategy]
|
user: Optional[List[BaseUserTurnStartStrategy]] = None
|
||||||
bot: List[BaseBotTurnStartStrategy]
|
bot: Optional[List[BaseBotTurnStartStrategy]] = None
|
||||||
|
|
||||||
|
def __post_init__(self):
|
||||||
|
if not self.user:
|
||||||
|
self.user = [VADUserTurnStartStrategy(), TranscriptionUserTurnStartStrategy()]
|
||||||
|
if not self.bot:
|
||||||
|
self.bot = [TranscriptionBotTurnStartStrategy()]
|
||||||
|
|||||||
Reference in New Issue
Block a user