diff --git a/custom_components/groqd/conversation.py b/custom_components/groqd/conversation.py index c5309c5..9b311c3 100644 --- a/custom_components/groqd/conversation.py +++ b/custom_components/groqd/conversation.py @@ -193,6 +193,8 @@ class GroqdConversationEntity( if memory_scope == "device": if user_input.device_id: memory_key = f"device:{user_input.device_id}" + elif user_input.conversation_id: + memory_key = f"conv:{user_input.conversation_id}" elif user_input.context and user_input.context.user_id: memory_key = f"user:{user_input.context.user_id}" else: @@ -200,27 +202,21 @@ class GroqdConversationEntity( elif memory_scope == "user": if user_input.context and user_input.context.user_id: memory_key = f"user:{user_input.context.user_id}" + elif user_input.conversation_id: + memory_key = f"conv:{user_input.conversation_id}" else: memory_key = "global" elif memory_scope == "global": memory_key = "global" - if user_input.conversation_id is None: - if memory_key and memory_key in self._memory_index: - conversation_id = self._memory_index[memory_key] - history = self.history.get(conversation_id, []) - else: - conversation_id = ulid.ulid_now() - history = [] - elif user_input.conversation_id in self.history: + if user_input.conversation_id is not None: conversation_id = user_input.conversation_id - history = self.history[conversation_id] + history = self.history.get(conversation_id, []) + elif memory_key and memory_key in self._memory_index: + conversation_id = self._memory_index[memory_key] + history = self.history.get(conversation_id, []) else: - try: - ulid.ulid_to_bytes(user_input.conversation_id) - conversation_id = ulid.ulid_now() - except ValueError: - conversation_id = user_input.conversation_id + conversation_id = ulid.ulid_now() history = [] if (