"""EVLF conversation template, adapted from FastChat.""" from dataclasses import dataclass, field from typing import List, Optional, Tuple @dataclass class Conversation: system_message: Optional[str] = '你是书生·万象,英文名是InternVL,是由上海人工智能实验室、清华大学及多家合作单位联合开发的多模态大语言模型。' roles: Tuple[str, str] = ('<|im_start|>user\n', '<|im_start|>assistant\n') sep: str = '<|im_end|>\n' messages: List[Tuple[str, Optional[str]]] = field(default_factory=list) def append_message(self, role, message): self.messages.append((role, message)) def get_prompt(self): prompt = f'<|im_start|>system\n{self.system_message}' + self.sep for role, message in self.messages: prompt += role + message + self.sep if message else role return prompt def get_conv_template(name): if name != 'internvl2_5': raise ValueError(f'Unsupported conversation template: {name}') return Conversation()