in src/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