def create_prompt_sequence()

in src/jobs/util/tab_titles.py [0:0]


    def create_prompt_sequence(self, test_data, sample_data, limit_samples=999) -> List[MessageSequenceItem]:
        def serialize_docs(docs: List[str]):
            return "\n".join(docs)

        def serialize_keywords(keywords: List[str]):
            return ", ".join(keywords)

        def get_prompt_msg(info, is_initial=False):
            return self.create_prompt_for_llm(
                serialize_docs(info["documents"][:3]),
                serialize_keywords(info["keywords"][:3]),
                is_initial
            )

        cur_sample_data = sample_data[:limit_samples]
        remaining_sample_data = cur_sample_data[1:]
        initial_item = cur_sample_data[0]
        prompt_list = []

        start_message = self.lm.user_message(get_prompt_msg(initial_item, is_initial=True))
        response_message = self.lm.assistant_message(initial_item["title"])
        prompt_list.append(start_message)
        prompt_list.append(response_message)

        for item in remaining_sample_data:
            query_message = self.lm.user_message(get_prompt_msg(item))
            response_message = self.lm.assistant_message(item["title"])
            prompt_list.append(query_message)
            prompt_list.append(response_message)

        final_query = self.lm.user_message(get_prompt_msg(test_data))
        prompt_list.append(final_query)
        return prompt_list