mindcraft/src/utils/text.js

27 lines
992 B
JavaScript
Raw Normal View History

2024-01-03 22:16:50 -08:00
export function stringifyTurns(turns) {
let res = '';
for (let turn of turns) {
if (turn.role === 'assistant') {
res += `\nYour output:\n${turn.content}`;
} else if (turn.role === 'system') {
res += `\nSystem output: ${turn.content}`;
} else {
res += `\nUser input: ${turn.content}`;
}
}
return res.trim();
2024-05-10 13:41:29 -05:00
}
export function toSinglePrompt(turns, system=null, stop_seq='***', model_nickname='assistant') {
2024-05-14 21:34:14 -05:00
let prompt = system ? `${system}${stop_seq}` : '';
let role = '';
turns.forEach((message) => {
2024-05-10 13:41:29 -05:00
role = message.role;
if (role === 'assistant') role = model_nickname;
prompt += `${role}: ${message.content}${stop_seq}`;
});
if (role !== model_nickname) // if the last message was from the user/system, add a prompt for the model. otherwise, pretend we are extending the model's own message
prompt += model_nickname + ": ";
return prompt;
2024-01-03 22:16:50 -08:00
}