import os from transformers import AutoTokenizer from utils import ChatPromptProcessor, Dialogue CONTEXT = 'Below is an instruction that describes a task. Write a response that appropriately completes the request. Do not generate new instructions.' tokenizer = AutoTokenizer.from_pretrained(os.environ['PRETRAINED_PATH']) samples = [ ([ Dialogue( instruction='Who is the best player in the history of NBA?', response= 'The best player in the history of the NBA is widely considered to be Michael Jordan. He is one of the most successful players in the league, having won 6 NBA championships with the Chicago Bulls and 5 more with the Washington Wizards. He is a 5-time MVP, 1' ), Dialogue(instruction='continue this talk', response=''), ], 128, 'Below is an instruction that describes a task. Write a response that appropriately completes the request. Do not generate new instructions.\n\n### Instruction:\nWho is the best player in the history of NBA?\n\n### Response:\nThe best player in the history of the NBA is widely considered to be Michael Jordan. He is one of the most successful players in the league, having won 6 NBA championships with the Chicago Bulls and 5 more with the Washington Wizards. He is a 5-time MVP, 1\n\n### Instruction:\ncontinue this talk\n\n### Response:\n' ), ([ Dialogue( instruction='Who is the best player in the history of NBA?', response= 'The best player in the history of the NBA is widely considered to be Michael Jordan. He is one of the most successful players in the league, having won 6 NBA championships with the Chicago Bulls and 5 more with the Washington Wizards. He is a 5-time MVP, 1' ), Dialogue(instruction='continue this talk', response=''), ], 200, 'Below is an instruction that describes a task. Write a response that appropriately completes the request. Do not generate new instructions.\n\n### Instruction:\ncontinue this talk\n\n### Response:\n' ), ([ Dialogue( instruction='Who is the best player in the history of NBA?', response= 'The best player in the history of the NBA is widely considered to be Michael Jordan. He is one of the most successful players in the league, having won 6 NBA championships with the Chicago Bulls and 5 more with the Washington Wizards. He is a 5-time MVP, 1' ), Dialogue(instruction='continue this talk', response=''), ], 211, 'Below is an instruction that describes a task. Write a response that appropriately completes the request. Do not generate new instructions.\n\n### Instruction:\ncontinue this\n\n### Response:\n' ), ([ Dialogue(instruction='Who is the best player in the history of NBA?', response=''), ], 128, 'Below is an instruction that describes a task. Write a response that appropriately completes the request. Do not generate new instructions.\n\n### Instruction:\nWho is the best player in the history of NBA?\n\n### Response:\n' ), ] def test_chat_prompt_processor(): processor = ChatPromptProcessor(tokenizer, CONTEXT, 256) for history, max_new_tokens, result in samples: prompt = processor.preprocess_prompt(history, max_new_tokens) assert prompt == result if __name__ == '__main__': test_chat_prompt_processor()