__init__.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. """
  2. Conversation Management System for Trixy
  3. This package provides comprehensive conversation management functionality for the Trixy
  4. voice assistant system, implementing multi-turn conversation workflows as specified
  5. in CLAUDE.md.
  6. Key Features:
  7. - Session management for multi-turn conversations
  8. - Conversation ID tracking across events
  9. - Context preservation and state management
  10. - Plugin integration for multi-turn workflows
  11. - Thread-safe operations for multi-satellite support
  12. - Conversation timeout handling and cleanup
  13. - Comprehensive logging and analytics
  14. Components:
  15. - ConversationManager: Main conversation management system
  16. - ConversationSession: Individual conversation session tracking
  17. - ConversationContext: Context management and preservation
  18. - ConversationState: State tracking and transitions
  19. Usage:
  20. from trixy_core.conversation import ConversationManager, ConversationState
  21. # Create conversation manager
  22. manager = ConversationManager(application)
  23. # Start a conversation
  24. session = manager.start_conversation(
  25. satellite_info=satellite_info,
  26. speaker_info=speaker_info,
  27. trigger_event="wakeword_received"
  28. )
  29. # Process conversation turns
  30. manager.process_audio_input(session.conversation_id, audio_data)
  31. manager.process_text_input(session.conversation_id, "order pizza")
  32. manager.process_intent(session.conversation_id, intent_data)
  33. # Plugin asks follow-up question
  34. manager.ask_question(session.conversation_id, "What kind of pizza?")
  35. # Continue conversation
  36. manager.process_text_input(session.conversation_id, "spicy one")
  37. # Complete conversation
  38. manager.complete_conversation(session.conversation_id, "Order placed!")
  39. """
  40. from .conversation_manager import (
  41. ConversationManager,
  42. ConversationManagerError,
  43. ConversationNotFoundError,
  44. ConversationTimeoutError,
  45. ConversationStateError,
  46. ConversationStats,
  47. create_conversation_manager
  48. )
  49. from .conversation_session import (
  50. ConversationSession,
  51. ConversationSessionError,
  52. ConversationSessionState,
  53. ConversationTurn,
  54. ConversationRole,
  55. create_conversation_session
  56. )
  57. from .conversation_context import (
  58. ConversationContext,
  59. ConversationContextError,
  60. ContextScope,
  61. ContextEntry,
  62. ContextRetentionPolicy,
  63. create_conversation_context
  64. )
  65. from .conversation_state import (
  66. ConversationState,
  67. ConversationStateManager,
  68. ConversationStateError,
  69. StateTransition,
  70. StateTransitionRules,
  71. ConversationPhase,
  72. create_state_manager
  73. )
  74. def pprint(message: str) -> None:
  75. """
  76. Conversation system logging function.
  77. Adapts based on debug mode as specified in CLAUDE.md.
  78. """
  79. print(f"[CONVERSATION] {message}")
  80. # Module exports
  81. __all__ = [
  82. # Main conversation manager
  83. "ConversationManager",
  84. "ConversationManagerError",
  85. "ConversationNotFoundError",
  86. "ConversationTimeoutError",
  87. "ConversationStateError",
  88. "ConversationStats",
  89. "create_conversation_manager",
  90. # Conversation session
  91. "ConversationSession",
  92. "ConversationSessionError",
  93. "ConversationSessionState",
  94. "ConversationTurn",
  95. "ConversationRole",
  96. "create_conversation_session",
  97. # Conversation context
  98. "ConversationContext",
  99. "ConversationContextError",
  100. "ContextScope",
  101. "ContextEntry",
  102. "ContextRetentionPolicy",
  103. "create_conversation_context",
  104. # Conversation state
  105. "ConversationState",
  106. "ConversationStateManager",
  107. "ConversationStateError",
  108. "StateTransition",
  109. "StateTransitionRules",
  110. "ConversationPhase",
  111. "create_state_manager",
  112. # Utility
  113. "pprint"
  114. ]