| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- """
- Conversation Management System for Trixy
- This package provides comprehensive conversation management functionality for the Trixy
- voice assistant system, implementing multi-turn conversation workflows as specified
- in CLAUDE.md.
- Key Features:
- - Session management for multi-turn conversations
- - Conversation ID tracking across events
- - Context preservation and state management
- - Plugin integration for multi-turn workflows
- - Thread-safe operations for multi-satellite support
- - Conversation timeout handling and cleanup
- - Comprehensive logging and analytics
- Components:
- - ConversationManager: Main conversation management system
- - ConversationSession: Individual conversation session tracking
- - ConversationContext: Context management and preservation
- - ConversationState: State tracking and transitions
- Usage:
- from trixy_core.conversation import ConversationManager, ConversationState
-
- # Create conversation manager
- manager = ConversationManager(application)
-
- # Start a conversation
- session = manager.start_conversation(
- satellite_info=satellite_info,
- speaker_info=speaker_info,
- trigger_event="wakeword_received"
- )
-
- # Process conversation turns
- manager.process_audio_input(session.conversation_id, audio_data)
- manager.process_text_input(session.conversation_id, "order pizza")
- manager.process_intent(session.conversation_id, intent_data)
-
- # Plugin asks follow-up question
- manager.ask_question(session.conversation_id, "What kind of pizza?")
-
- # Continue conversation
- manager.process_text_input(session.conversation_id, "spicy one")
-
- # Complete conversation
- manager.complete_conversation(session.conversation_id, "Order placed!")
- """
- from .conversation_manager import (
- ConversationManager,
- ConversationManagerError,
- ConversationNotFoundError,
- ConversationTimeoutError,
- ConversationStateError,
- ConversationStats,
- create_conversation_manager
- )
- from .conversation_session import (
- ConversationSession,
- ConversationSessionError,
- ConversationSessionState,
- ConversationTurn,
- ConversationRole,
- create_conversation_session
- )
- from .conversation_context import (
- ConversationContext,
- ConversationContextError,
- ContextScope,
- ContextEntry,
- ContextRetentionPolicy,
- create_conversation_context
- )
- from .conversation_state import (
- ConversationState,
- ConversationStateManager,
- ConversationStateError,
- StateTransition,
- StateTransitionRules,
- ConversationPhase,
- create_state_manager
- )
- def pprint(message: str) -> None:
- """
- Conversation system logging function.
- Adapts based on debug mode as specified in CLAUDE.md.
- """
- print(f"[CONVERSATION] {message}")
- # Module exports
- __all__ = [
- # Main conversation manager
- "ConversationManager",
- "ConversationManagerError",
- "ConversationNotFoundError",
- "ConversationTimeoutError",
- "ConversationStateError",
- "ConversationStats",
- "create_conversation_manager",
-
- # Conversation session
- "ConversationSession",
- "ConversationSessionError",
- "ConversationSessionState",
- "ConversationTurn",
- "ConversationRole",
- "create_conversation_session",
-
- # Conversation context
- "ConversationContext",
- "ConversationContextError",
- "ContextScope",
- "ContextEntry",
- "ContextRetentionPolicy",
- "create_conversation_context",
-
- # Conversation state
- "ConversationState",
- "ConversationStateManager",
- "ConversationStateError",
- "StateTransition",
- "StateTransitionRules",
- "ConversationPhase",
- "create_state_manager",
-
- # Utility
- "pprint"
- ]
|