File size: 688 Bytes
ad02fa3
 
 
5da61b4
 
 
ad02fa3
 
 
 
 
 
 
 
 
 
 
5da61b4
ad02fa3
 
5da61b4
ad02fa3
5da61b4
ad02fa3
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import {
	PUBLIC_ASSISTANT_MESSAGE_TOKEN,
	PUBLIC_SEP_TOKEN,
	PUBLIC_USER_MESSAGE_TOKEN,
} from "$env/static/public";
import type { Message } from "./types/Message";

/**
 * Convert [{user: "assistant", content: "hi"}, {user: "user", content: "hello"}] to:
 *
 * <|assistant|>hi<|endoftext|><|prompter|>hello<|endoftext|><|assistant|>
 */
export function buildPrompt(messages: Message[]): string {
	return (
		messages
			.map(
				(m) =>
					(m.from === "user"
						? PUBLIC_USER_MESSAGE_TOKEN + m.content
						: PUBLIC_ASSISTANT_MESSAGE_TOKEN + m.content) +
					(m.content.endsWith(PUBLIC_SEP_TOKEN) ? "" : PUBLIC_SEP_TOKEN)
			)
			.join("") + PUBLIC_ASSISTANT_MESSAGE_TOKEN
	);
}