a few other thoughts & suggestions for you, Sam: 1. Vector Database and Chunking Strategy: - Hierarchical Chunking: Consider a hierarchical approach to chunking your data. Start by chunking individual messages but also create embeddings for sequences of messages (like conversational turns). This way, you can capture both fine-grained and broader context. I've had success with unstructured.io for ingest, partitioning and chunking. - Metadata Enrichment: When creating embeddings, include rich metadata like property IDs, guest journey states, timestamps, and platform identifiers. This will help you filter and retrieve relevant information more effectively. - Separate but Connected Vector Spaces: You might benefit from using separate vector spaces for property-specific information and global policies but ensure they're connected through metadata. This allows you to search within a specific context while still accessing overarching policies when needed. 2. Temporal Relevance: - Time-Decayed Embeddings: Implement a temporal decay mechanism where the relevance of an embedding decreases over time unless specified otherwise. For instance, WiFi passwords might have a higher decay rate compared to static info like nearby parks. - Query Classification: Develop a system to classify queries based on their temporal sensitivity. This can help in deciding whether to prioritize recent data or include older conversations. 3. Context-Aware Retrieval: - State-Aware Retrieval: Incorporate the guest's journey state into your retrieval logic. For example, if a guest is in the "BEFORE_BOOKING" state, the system knows not to share sensitive info like lockbox codes. - Property Relationships: Use the metadata to understand property hierarchies and similarities. When a guest asks about an issue with Property X, the system can also retrieve information from similar properties in the same building. - Balancing Specific and Global Info: When retrieving data, pull both property-specific details and global policies, then let your response generation logic determine which information is most relevant to include.