EVLF-FM / code /internvl /conversation.py
yangbai123's picture
Initial EVLF-FM release
d2a0a4e verified
Raw History Blame Contribute Delete
1.04 kB
"""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()