extract_thread_messages.py 722 B

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