extract_thread_messages.py 731 B

123456789101112131415161718192021222324
  1. from typing import Any
  2. from constants import UUID_NIL
  3. def extract_thread_messages(messages: list[Any]):
  4. thread_messages = []
  5. next_message = None
  6. for message in messages:
  7. if not message.parent_message_id:
  8. # If the message is regenerated and does not have a parent message, it is the start of a new thread
  9. thread_messages.append(message)
  10. break
  11. if not next_message:
  12. thread_messages.append(message)
  13. next_message = message.parent_message_id
  14. else:
  15. if next_message in {message.id, UUID_NIL}:
  16. thread_messages.append(message)
  17. next_message = message.parent_message_id
  18. return thread_messages